Introducción

Recentemente vin un vídeo de Anfaia, no que xeraban un proxecto enteiro tan só en base ao prompt que lle proporcionaban á IA. Como xa fai algún tempo que teño unha licenza gratuíta de Windsurf, antes Codeium, decidín facer a mesma proba. Para o meu proxecto de auto hospedaxe quería utilizar RabbitMQ para comunicar distintas aplicacións, ou mesmo utilizalo para que as mensaxes das mesmas vaian por el. Por exemplo os Commands e Queries dun proxecto con Symfony.

Así que a ocasión era perfecta para probar a IA con algo máis que chatear. Si, ata o de agora, só utilizaba a función de chat e o código desenvolvíao eu. Para mín esa é a parte divertida, para que a vou delegar nun proxecto persoal 😆.

Xerando o Prompt

Cando escribimos un prompt hai unhas guías básicas que debemos cumprir para obter unha saída máis predecible. Se nos limitamos a pedir que nos xere un texto, informe ou código sen máis, a saída ten máis posibilidades de ser “aleatoria” por así dicilo. Se por exemplo lle pedimos iso cinco veces, pode darnos cinco saídas distintas. E algunhas nin serán o que lle pedimos. Así que imos ao seguinte:

  1. Definir un rol: cando lle pidamos algo é bo que lle asignemos un papel á IA. Por exemplo podemos indicarlle que asuma o papel dun mestre de matemáticas, dun experto en moda, dun DevOps ou dun programador experto en Cobol.
  2. Darlle un contexto: se lle pedimos que nos xere un informe sobre economía, de aí pode saír calquer cousa. É preciso acotar o contexto. Por exemplo pedíndolle que xere un informe sobre a crise do 2008 en España no sector lácteo, dende o punto de vista dunha granxa familiar. Ou no caso do desenvolvemento, aportándolle as especificacións que queremos que teña o proxecto, con que APIs debe contar, etc.
  3. Formato de saída: no caso de que queiramos iniciar un proxecto de software, isto podería incluír a linguaxe de programación e a arquitectura a utilizar. Por exemplo indicando que queremos un proxecto en PHP, con Symfony, seguindo a arquitectura hexagonal. No caso do exemplo anterior, poderíamos pedir o informe en formato presentación, incluíndo gráficos para facilitar o entendemento do que se está a ver. Por exemplo cunha saída en diapositivas.

Así seguindo estas pautas básicas iniciei o meu test.

Escenario

Primeira iteración

O primeiro foi decidir o proxecto que quería. Malamente lle podemos pedir algo á IA se non temos claro o que queremos.

Como xa comentei, por coíncidencia, douse que precisaba de configurar un RabbitMQ. Non é que sexa algo moi complexo, pero tamén por iso decidín que fose a proba actual. Se ben no vídeo da charla, deseñaban unha web de comercio, pensei en comezar con algo máis sinxelo.

Entre os requisitos que lle quería pedir estaban, que o servizo estivese contido nun docker, que levase unha configuración inicial de colas e que utilizase variables de entorno. Nada de meter cadeas que houbese que editar a man nos despregues. Tamén lle pedín que xerase o Makefile, o README e un ficheiro de saída cos erros e solucións.

Aquí podedes ver o prompt que utilicei Enlace ao ficheiro co prompt inicial

Este sería o resultado deste primeiro prompt Enlace ao commit en Codeberg

Segunda iteración

Neste punto o proxecto en local xa funcionaba. Tiña acceso a web de administración e as colas que lle indicaba aparecían correctamente, ca configuración que lle indiquei. Sen nengún tipo de edición manual pola miña parte.

O seguinte paso era integrar este contenedor co que xa tiña montado, que fose accesible a través de Traefik. Para que quedase paso a paso xerei un novo ficheiro de prompt cos novos requerimentos. Nel indico á configuración de Traefik á que quero conectar. Enlace ao novo prompt e resultado da execución

Aquí si que xa non estivo tan fina e se ben, podería ter insistido afinando o prompt, os cambios necesarios eran tan pequenos que pareceume máis rápido facelos a man, para botalo andar.

Conclusión

Tal vez para proxectos máis grandes ou proxectos que xa existan, o uso das IAs non sexa tan doado como para iniciar algo. Pero se queremos iniciar un servicio ou un proxecto, co prompt axeitado podemos ter unha boa base de partida.

Tamén considero que non fai falla perder o sentido co uso da IA. Se por exemplo lle pedimos un código e o resultado non é perfecto, ou non funciona á prieira. Ás veces compre botar un ollo e correxilo a man, en lugar de estar probando a xerar un prompt tras outro. A fin de contas son desenvolvedor de aplicacións, sei programar, a IA é tan só unha ferramenta a utilizar. Se realmente chegase con crear un prompt para que nos dé a aplicación perfecta, debería comezar a buscar outro emprego.

Fontes

Charla de Anfaia: Vídeo en YouTube
GitHub da charla: Repositorio na conta de David Ibañez
A miña proba con RabbitMQ: Enlace ao proxecto en Codeberg