Solo controla cuán creativo será el siguiente token en el flujo de salida. Así que funciona bien para trabajos verdaderamente creativos, como una publicación de blog, o escribir poesía, o incluso generar imágenes o música. Pero para algo tan determinista como la programación, en mi experimentación encontré que siempre producía los mejores resultados simplemente dejándolo en 1. Así que te voy a ahorrar tiempo y te diré que simplemente lo dejes en 1, y no te molestes en ajustar ese parámetro, porque lo más probable es que no te ayude.
De todos modos, teniendo casos de prueba, quería pedirle a la IA que generara el code mod real y luego pensé, tomar esos casos de prueba para verificar que el code mod realmente haga lo que quiero que haga. Así que ejecutaría los casos de prueba, y si hubiera algún error, construiría un nuevo prompt, lo alimentaría de nuevo a la IA, y le pediría que generara un nuevo code mod con el caso de prueba corregido. Así que con el prompt, volvería, generaría un nuevo code mod, y luego lo ejecutaría todo de nuevo. Desafortunadamente, nunca pude lograr que la IA generara una muy buena lista de descripciones de casos de prueba, o casos de prueba correctos para esas descripciones. Así que este plan nunca funcionó para mí. Así que tuve que revisarlo, y este es el plan final que se me ocurrió y lo que he implementado.
De todos modos, el primer paso es el mismo. Dejo que el usuario proporcione la entrada, la salida esperada y una descripción. Para el segundo paso, en lugar de pedirle que genere descripciones de casos de prueba, simplemente le pedí a la IA que generara otras posibles entradas, como dado esta entrada, ¿cómo podría posiblemente verse en un proyecto real de un usuario? Así que pauso la ejecución del programa, y le pido al usuario, como yo, si estoy ejecutando la CLI, que me pida que eche un vistazo a las entradas generadas, y si es necesario, incluso modificarlas antes de dejar que el programa continúe, y esto hizo una gran diferencia. Esto es clave. Así que nuevamente, divide la ejecución y pausa, y deja que el usuario verifique que la IA está en el camino correcto.
Bien, dada la entrada inicial, la salida y la descripción, más el conjunto generado de entradas, ahora puedo pedirle a la IA que genere el code mod para todo esto. Pero luego, cuando se trata de verificar o probar el code mod, no tenemos ninguna prueba unitaria porque no pude lograr que la IA las generara para mí. Pero lo que sí tenemos es ESLint, Predur, y el compilador de TypeScript. Podemos ejecutar todas esas herramientas de análisis de código estático y observar sus salidas. Así que si obtengo algún error de ESLint o TypeScript, construiré un nuevo prompt, así que hackearé en la IA en el paso 3 allí, y generaré un nuevo code mod, y luego lo ejecutaré todo de nuevo. Y con esto, si simplemente itero entre 3 y 6 aquí, como 3 o 4 veces, muy a menudo termino con un code mod sin ningún error de ESLint o TypeScript. Es un gran punto de partida para algunos ajustes finales antes de tener un code mod que podamos realmente enviar a nuestros usuarios. A veces, sin embargo, la IA nunca logrará corregir todos los errores en el código. Así que lo que hago es que después de 5 iteraciones, simplemente me detengo. Me rindo. En ese punto, es mejor simplemente comenzar de nuevo desde el principio, así que comenzar de nuevo desde el paso 1, y ejecutarlo todo de nuevo. A veces tengo que hacer eso 2 o 3 veces, pero al final, muy a menudo termino con un muy buen code mod al que simplemente podemos hacer algunos ajustes finales antes de comenzar a escribir casos de prueba para él, y luego enviarlo a nuestros usuarios. Como mencioné, una cosa clave aquí es colaborar con la IA. Así que como dije, pausamos en el paso después de generar posibles entradas para dejar que el usuario verifique, modifique esa lista generada de entradas. También tendría una colaboración o asistencia de la IA al final donde usamos nuestras herramientas de análisis estático como ESLint y el compilador de TypeScript.
Comments