Cómo detectar código escrito por inteligencia artificial con ChatGPT

Autor:

Publicado:

Actualizado:

Un robot de dibujos animados con antenas está sentado en un escritorio, examinando un código en la pantalla de un ordenador a través de una lupa.

En el mundo actual, cada vez más desarrolladores utilizan herramientas de IA como ChatGPT para escribir código.

Esta guía le ayudará a entender los signos de código escrito por IA y cómo comprobar si el código ha sido creado por ChatGPT o herramientas de IA similares.

Aquí tienes un simple prompt que puedes copiar y usar con ChatGPT cuando quieras comprobar si algún código ha sido escrito por AI:

Plantilla para la detección de códigos AI:

Necesito que analices este fragmento de código para determinar si es probable que haya sido generado por una IA:

[Pegue el código aquí]

Por favor, evalúen:

  1. Estructura y patrones del código
  2. Convenciones de nomenclatura de variables
  3. Estilo y frecuencia de los comentarios
  4. Tratamiento de errores
  5. Coherencia global

Proporcionar:

  • Nivel de confianza de la generación de IA (porcentaje)
  • Indicadores específicos encontrados
  • Explicación detallada del razonamiento

Signos comunes del código generado por IA

1. Nombres de variables demasiado genéricos

Los modelos de IA suelen utilizar nombres de variables muy básicos, como "data", "result" o "temp". Los desarrolladores humanos suelen elegir nombres más específicos que reflejan el contenido real de la variable. Por ejemplo:

El código escrito por humanos podría utilizar:

total_ventas_mensuales = calcular_ventas(datos_enero)

Mientras que el código generado por IA podría utilizar:

resultado = calcular(datos)

2. Patrones de formato coherentes

ChatGPT tiende a escribir código con un formato muy consistente. Aunque esto pueda parecer bueno, en realidad puede ser una pista. Los humanos suelen tener pequeñas variaciones en su estilo de codificación, incluso cuando siguen guías de estilo. El código generado por IA a menudo parece "demasiado perfecto" en su formato.

3. Tratamiento básico de errores

Los modelos de IA suelen implementar un tratamiento de errores muy sencillo. Suelen utilizar bloques try-catch básicos sin tipos de error específicos ni mensajes de error detallados. Los desarrolladores humanos suelen incluir una gestión de errores más detallada basada en su experiencia con problemas del mundo real.

Ejemplo de tratamiento de errores generado por la IA:

probar:
    # hacer algo
excepto:
    print("Se ha producido un error")

Ejemplo de tratamiento de errores escrito por humanos:

probar:
    # hacer algo
excepto FileNotFoundError:
    logger.error("Falta el archivo de configuración en la ruta: %s", config_path)
    raise ConfigurationError("Falta el fichero de configuración requerido")
except PermissionError:
    logger.error("No hay permiso para acceder al fichero: %s", config_path)
    raise AccessDeniedError("No se puede acceder al archivo de configuración")

4. Soluciones estándar

ChatGPT suele ofrecer la solución más común o estándar a un problema, incluso cuando puede haber alternativas mejores. Tiende a utilizar patrones de diseño bien conocidos y funciones de biblioteca comunes en lugar de soluciones creativas o específicas para cada situación.

5. Comentarios limitados

El código generado por la IA suele incluir comentarios muy básicos o demasiados comentarios obvios. Los desarrolladores humanos suelen escribir comentarios que explican el "por qué" de la lógica compleja, mientras que la IA tiende a comentar el "qué" que ya está claro en el código.

Ejemplo de comentarios generados por la IA:

# Recorre el array
for i in range(len(array)):
    # Añade el número actual a la suma
    suma += array[i]

Ejemplo de comentarios escritos por personas:

# Omitir el primer elemento para evitar contar la fila de cabecera
# Ver ticket PROJ-123 para más información
for i in range(1, len(array)):
    suma += array[i]

Patrones comunes en el código ChatGPT

1. Boilerplate Heavy

A ChatGPT le encanta incluir mucho código repetitivo. A menudo genera estructuras de clases completas y declaraciones de importación, incluso para ejemplos sencillos. Esto puede hacer que el código parezca más profesional, pero también más estandarizado y menos adaptado a necesidades específicas.

2. Estructura predecible

El código generado por la IA suele seguir patrones muy predecibles en la estructuración de funciones y clases. Por ejemplo, puede colocar siempre las variables de clase en el mismo orden u organizar los métodos de una forma específica.

3. Uso limitado de funciones avanzadas

ChatGPT tiende a ceñirse a las características básicas del lenguaje y a evitar las más complejas o nuevas. Esto se debe a que fue entrenado en bases de código antiguas y patrones comunes. Por ejemplo, en Python, es posible que no utilice las funciones más recientes, como los operadores morsa o la concordancia de patrones.

Métodos técnicos de detección

Los sistemas de detección avanzados utilizan mediciones de perplejidad para identificar el código creado por IA. Las puntuaciones de perplejidad más bajas suelen indicar la generación de IA, ya que los modelos de IA tienden a producir patrones de código más predecibles.

La eficacia de la detección varía en función de la longitud del código. Los estudios demuestran que la precisión de la detección mejora con muestras de código más largas, que suelen requerir al menos 100 tokens para un análisis fiable.

Buenas prácticas de detección

1. Análisis exhaustivo
Examinar múltiples aspectos del código:

  • Reconocimiento de patrones
  • Análisis sintáctico
  • Errores lógicos e incoherencias
  • Estilo de documentación

2. Consideración del contexto

Tenga en cuenta el lenguaje de programación y el contexto del proyecto al analizar el código, ya que la precisión de la detección puede variar según los distintos lenguajes y marcos de trabajo.

Cómo comprobar si el código está generado por inteligencia artificial

1. Comprobación de la documentación

Fíjate en cómo está documentado el código. La documentación generada por IA suele incluir:

  • Descripciones muy genéricas
  • Falta el contexto del mundo real
  • No hay referencias a la lógica empresarial ni a casos de uso específicos
  • Formato perfecto pero poco profundo

2. Buscar patrones de complejidad

El código generado por IA suele mostrar estos patrones:

  • Soluciones demasiado simplificadas para problemas complejos
  • Falta la gestión de casos extremos
  • Consideraciones básicas de seguridad
  • Uso de bibliotecas estándar en lugar de soluciones especializadas

3. Casos de error de prueba

Intenta descifrar el código:

  • Aportaciones inesperadas
  • Prueba de casos extremos
  • Comprobación del tratamiento de errores
  • Cómo trata los valores nulos o indefinidos

El código generado por IA suele fallar de forma inesperada cuando se enfrenta a estas situaciones.

Buenas prácticas al utilizar código generado por IA

1. Revisar y modificar siempre

Cuando trabajes con código generado por IA, nunca lo utilices sin comprobarlo antes. Tómate tu tiempo para leer el código y entender lo que hace.

Empieza por cambiar los nombres básicos de las variables por otros que tengan sentido para tu proyecto. Mientras revisas, fíjate en cómo maneja el código los errores y mejóralo donde sea necesario: añade mensajes de error claros que te ayuden a localizar problemas más adelante.

Los buenos comentarios son esenciales: escribe unos que expliquen por qué el código funciona como funciona, no sólo lo que hace.

Acuérdate de probar el código con distintos tipos de datos para asegurarte de que funciona en todas las situaciones. Y lo que es más importante, adapta el código a las necesidades específicas de tu empresa, ya que la IA no conoce tu situación exacta.

2. Utilizar la IA como punto de partida

Piensa en el código generado por la IA como un borrador o esquema. Te da un buen punto de partida, pero tienes que construir sobre él.

El código de las herramientas de IA suele tener un tratamiento de errores muy básico, por lo que tendrás que mejorarlo añadiendo comprobaciones de errores específicas y mensajes de error útiles.

Dedica tiempo a estudiar detenidamente los problemas de seguridad y añade protección adicional cuando sea necesario. Recuerda que la IA te proporciona código de uso general, pero tu proyecto necesita soluciones específicas.

Añade un registro adecuado para poder hacer un seguimiento de lo que ocurre cuando el código se ejecuta en el mundo real, y establece formas de controlar si todo funciona correctamente.

3. Documentar el uso de la IA

Una buena documentación es clave cuando se trabaja con código generado por IA. Añade comentarios al principio de las secciones generadas por IA para marcarlas claramente.

Cuando hagas cambios, anota qué has cambiado y por qué: esto ayuda a otros desarrolladores (o a ti mismo en el futuro) a entender mejor el código.

Lleva la cuenta de qué partes fueron escritas por humanos y cuáles proceden de la IA. Así será mucho más fácil mantener el código más adelante.

Escribe cómo has probado el código y qué resultados has obtenido, para que todo el mundo entienda qué hace el código y hasta qué punto es fiable.

Recuerda que la IA es una herramienta que te ayuda a escribir código más rápido, pero no debe sustituir a la revisión cuidadosa y la adaptación a tus necesidades específicas. Una buena documentación y pruebas son tan importantes con el código generado por IA como con el código escrito por humanos.

Siguiendo estas prácticas, obtendrá los mejores resultados del uso de la IA al tiempo que mantiene un código fiable y de alta calidad.

Sobre el autor

Últimas entradas

  • Cómo diseñar un logotipo con ChatGPT

    Cómo diseñar un logotipo con ChatGPT

    Want to make a logo but don’t want to spend a lot of money? This guide shows you how to create your own logo using ChatGPT’s help. You’ll learn simple ways to tell ChatGPT what kind of logo you want, pick the right colors, and make sure your logo looks great. Best ChatGPT Prompts for

    Read more →

  • Cómo utilizar ChatGPT para mnemotecnia

    Cómo utilizar ChatGPT para mnemotecnia

    This article will show you how to use ChatGPT to make learning easier and more fun through mnemonics. Here are the five ChatGPT prompts that will help you create memorable mnemonics: 1. Prompt: List-to-Mnemonic I need to memorize this list of [items/concepts/terms]: [Insert list] Please create: Choose the most effective method based on the content.

    Read more →

  • Cómo detectar código escrito por inteligencia artificial con ChatGPT

    Cómo detectar código escrito por inteligencia artificial con ChatGPT

    In today’s world, more and more developers are using AI tools like ChatGPT to write code. This guide will help you understand the signs of AI-written code and how to check if code was created by ChatGPT or similar AI tools. Here’s a simple prompt you can copy and use with ChatGPT when you want

    Read more →