Le pedí a ChatGPT que escribiera un plugin de WordPress que necesitaba. Lo hizo en menos de 5 minutos

gettyimages-1246766124.jpg

No quiero ser demasiado insistente, pero estoy bastante asustado. Como experimento, le pedí a ChatGPT que escribiera un complemento que pudiera ahorrarle tiempo a mi esposa al administrar su sitio web. Escribí una breve descripción y ChatGPT lo escribió todo: la interfaz de usuario, la lógica y todo.

En menos de cinco minutos.

También: Los mejores chatbots de IA: ChatGPT y otras alternativas divertidas para probar

Hay implicaciones. Llegaremos a eso en unos minutos. Primero, déjame llevarte a través de la experiencia y lo que sucedió.

La necesidad

line-randomizer-paypal-demo-wordpress-2023-01-31-23-41-28.jpg

Mi esposa es la propietaria de un sitio de comercio electrónico basado en WordPress centrado en un pasatiempo popular. También administra un grupo activo en Facebook para los clientes de su sitio. Cada mes ella hace una lista de nombres al azar y luego realiza una animación de giro de rueda virtual, utilizando esa lista aleatoria, para el grupo de Facebook. Ha estado utilizando un sitio en internet que hace un trabajo aceptable al aleatorizar las líneas, pero cobra un poco más de lo que vale por exportar la lista.

También: ¿Pueden los detectores de IA salvarnos de ChatGPT? Probé 3 herramientas en línea para averiguarlo

Mientras la observaba esforzarse por recuperar los nombres aleatorizados, pensé que podría ser útil si escribiera un plugin de WordPress rápido que pudiéramos instalar en su sitio. Ella está en el panel de control todos los días, así que tener eso como una herramienta sería útil.

Pero incluso un simple plugin me llevaría unos días escribirlo, con los elementos de interfaz de usuario y el código lógico, y actualmente tengo bastante trabajo con otros proyectos.

Y entonces pensé en ChatGPT. Ha habido algo de discusión sobre ChatGPT como una herramienta de programación en los medios, así que decidí probarlo.

El mensaje

La clave para hacer que ChatGPT genere cualquier cosa es una indicación cuidadosamente redactada. En el caso de la programación, piénsalo como ser un jefe o cliente. Debes describir claramente lo que necesitas para obtener lo que quieres. Comencé con una indicación muy básica, solo para ver si funcionaba. Aquí está la indicación que usé:

código.jpg

Escribe un plugin de WordPress compatible con PHP 8 que proporcione un campo de entrada de texto donde se pueden pegar una lista de líneas y un botón que, al presionarlo, aleatoriza las líneas de la lista y presenta los resultados en un segundo campo de entrada de texto.

En menos de un minuto, se generó el código que ves a la derecha. Copié el código generado en un archivo .php, lo coloqué en una carpeta con el mismo nombre raíz que el archivo .php, lo comprimí y lo subí a su servidor. Funcionó.

También: Hackers rusos están intentando infiltrarse en ChatGPT, según Check Point

Cuando se lo enseñé a mi esposa, quedó debidamente impresionada y sorprendida. Pero luego empezó a pensar y me pidió una nueva función: asegurarse de que los nombres duplicados no estén uno al lado del otro.

Para su solicitud, a veces necesitará incluir el nombre de alguien en una lista muchas veces. Pero no quiere que esos duplicados se agrupen.

Modifiqué mi solicitud original, agregando las siguientes condiciones adicionales:

...se asegura de que no haya dos entradas idénticas juntas (a menos que no haya otra opción)...con el número de líneas enviadas y el número de líneas en el resultado idénticos entre sí.

Incluí la frase "a menos que no haya otra opción" y el requisito de contar exactamente porque quería asegurarme de que se incluyeran todos los nombres, y me preocupaba que se priorizara la necesidad de que no hubiera dos nombres juntos en lugar de mantener todos los nombres.

Alrededor de 30 segundos después, tenía un nuevo complemento. Lo subí al servidor y lo probé. Funcionó, pero la salida incluía algunas líneas en blanco. Así que añadí esta condición a mi anterior indicación:

...sin líneas en blanco...

Para entonces, me había acostumbrado al tiempo de respuesta, que siempre era inferior a un minuto. Una carga y una prueba más, y nuevamente, funcionó.

También: Cómo usar ChatGPT

Quería una última característica, solo para confirmar cuántas líneas se habían procesado. Quería que el complemento mostrara un recuento de las líneas para los campos de entrada y salida. Aquí está esa adición de instrucciones:

...Bajo el primer campo, muestra un texto que dice "Línea para aleatorizar: " con el número de líneas no vacías en el campo de origen. Bajo el segundo campo, muestra un texto que dice "Líneas que se han aleatorizado: " con el número de líneas no vacías en el campo de destino.

Esto funcionó, en su mayoría. Antes de ejecutar, el campo de salida muestra una línea. Pero una vez que se completa el proceso de aleatorización, muestra el número exacto correcto de líneas en ambos campos.

La calidad del código

En general, la calidad del código era limpia. Solo estoy presentando la respuesta original porque de lo contrario no cabría en el artículo. El programa generó correctamente el bloque de encabezado de WordPress y escribió la interfaz de usuario del tablero para el complemento, así como la lógica de procesamiento del complemento.

Colocó mis líneas de resumen por encima de los campos, aunque especifiqué abajo, pero eso no es una queja importante. Es el mismo tipo de error que un cliente podría recibir de un contratista humano, y luego requerir un poco de retrabajo para solucionarlo.

También: ¿Puede el asistente de escritura de Notion AI escribir este artículo?

La codificación funcionó, pero no incorporó todas las mejores prácticas para la programación en WordPress. Por ejemplo, no sanitizó la entrada del usuario. La comunidad de WordPress es rigurosa en la sanitización de la entrada para evitar que los hackers puedan llenar campos con datos que puedan corromper un sitio y este código no tenía nada de eso.

Como prueba posterior, le pedí al Ai que sanitizara la entrada de datos, y lo hizo... hasta cierto punto. Sanitizó la entrada de datos dentro de la función PHP, pero no sanitizó la entrada de datos al llamar a PHP dentro de HTML. Eso definitivamente habría dejado una brecha para los hackers.

También colocó el elemento del menú del plugin en Configuración. Probablemente lo habría puesto en Herramientas o le habría dado una entrada de menú propia. Como no especifiqué desde dónde debía invocarse, creo que ChatGPT tomó una decisión aceptable al colocar el elemento del menú donde lo hizo.

Agregué un requisito final a mi indicación, solicitando que la IA le dé un nombre al complemento:

Escribe un plugin de WordPress compatible con PHP 8 llamado "Robo Randomizer" que...

Curiosamente, la IA me dio un complemento completamente diferente, generando un complemento que proporciona un código abreviado en lugar de una interfaz de panel de control. Permítanme explicarlo a los usuarios que no utilizan WordPress, porque es interesante.

Cuando se escribe algo como esto, se puede hacer disponible en el sitio web para los visitantes (llamado frontend) o para aquellos que inician sesión en el panel de control del sitio para mantener el lado (el backend). En mi conjunto original de indicaciones, no especificé frontend ni backend, pero la IA escribió lo que quería, que era una interfaz de backend y panel de control para la herramienta.

También: OpenAI está contratando desarrolladores para mejorar ChatGPT en la programación

Pero esta última vez, decidió escribir el complemento como una herramienta frontend, haciéndolo ejecutar a través de un código corto. En WordPress, puedes incrustar un código corto (algo como [aleatorizar líneas]) dentro de una publicación y se ejecutará el código en un complemento. La última versión que produjo la IA me dio un código corto como ese, lo que habría permitido presentar la función de aleatorizar líneas a los visitantes del sitio.

Después de esto, ChatGPT se desvió un poco. No pude obtener características adicionales agregadas al plugin original y ChatGPT en su mayoría solo repetía generando la versión abreviada del código. Claramente, el mantenimiento de código no es una fortaleza principal de ChatGPT.

Implicaciones

Obviamente, este es un plugin sencillo. Tiene aproximadamente el tamaño de las tareas que les daba a mis estudiantes de primer año de programación cuando enseñaba en UC Berkeley. No se acerca a la complejidad de los plugins de WordPress de código abierto mucho, mucho más grandes que mantengo para más de 50,000 usuarios.

También: ¿Estamos buscando respuestas en todos los lugares equivocados con los chatbots de IA?

La semana pasada, cuando utilicé por primera vez ChatGPT para crear el complemento rápido para mi esposa y lo compartí en Twitter, recibí críticas de algunos de mis seguidores en redes sociales. Estas fueron algunas de sus preocupaciones:

¿Es malicioso? Una persona estaba preocupada de que la IA podría incrustar información maliciosa (o al menos promocional) en el plugin y un usuario no programador nunca lo sabría. Pero el hecho es que, si no eres programador y no puedes leer código, incluso si contratas a otro humano, realmente no sabes qué hay dentro. Todo se reduce a confiar en la reputación o conseguir que alguien en quien confías revise el código. En el caso del código producido en mi experimento, estaba limpio.

¿Es lo mejor que puede ser? Aquí de nuevo, la gente estaba evaluando el código de la IA con un estándar diferente incluso al de los programadores humanos. Soy un buen programador pero mi código tiene errores. No es lo mejor que puede ser... al menos al principio. Pero con los humanos, el código mejora con el tiempo. No estoy seguro si una IA puede tomar código existente, mejorarlo, depurarlo y realzarlo. Sin embargo, a veces las cosas solo necesitan ser funcionales. No siempre importa si son lo mejor de lo mejor. A menudo, lo suficientemente bueno es suficientemente bueno. Y generó un código que era suficientemente bueno.

¿Reducirá la cantidad de empleos de programación humana? Casi sin duda. Me entristece ver que una máquina se lleve el trabajo de cualquier persona (especialmente si es uno que yo podría querer). La IA definitivamente es una opción para proyectos rápidos y sencillos, ya sea para escribir o programar. Sin duda, los salarios de las personas se verán afectados.

He estado estudiando Inteligencia Artificial durante décadas. Hice una tesis sobre IA. Pero incluso con todo ese trasfondo, este auge en la IA generativa de alta calidad me ha sorprendido. Dicho esto, lo que estamos viendo ahora es el nivel "suficientemente bueno" de productividad. Desafortunadamente, eso es lo que muchos clientes exigen.

Pero -- al menos por ahora -- ChatGPT y sus amigos no pueden escribir artículos de análisis superdetallados como este, porque reflejan opiniones, anécdotas y años de experiencia. Y aunque probablemente podrían escribir subrutinas y funciones para proyectos de programación más grandes, simplemente no son capaces de escribir proyectos de programación importantes.

También: La demostración del competidor de ChatGPT de Google sale mal

Por ejemplo, he tenido que tener 20-30 reuniones durante el último año con un proveedor API importante para integrar su servicio en el mío. La mayoría de esas reuniones mezclaban temas comerciales con requisitos técnicos y políticas de licencia. Desafío a cualquier IA a aguantar, entender las sutilezas y satisfacer los requisitos del socio en ese tipo de situación burocrática, y luego ser capaz de producir módulos de código con los que todos puedan estar de acuerdo.

Así que sí, estoy un poco preocupado por lo bueno que era el plugin que "hice" para mi mujer. Pero la IA aún tiene un largo camino por recorrer antes de quitar trabajo a desarrolladores y escritores experimentados, siempre y cuando los clientes quieran el tipo de trabajo que producen los desarrolladores y escritores experimentados. Y eso, amigos míos, es algo que me preocupa.

Artículos relacionados

Ver más >>

¡Desbloquea el poder de la IA con HIX.AI!