AI Prompt Engineering

Preguntar por contexto

Si tenemos un caso de uso complejo, podemos hacer que por defecto el LLM se sienta más inclinado a pedir aclaraciones si añadimos algo como lo siguiente:

If you need more context, please specify what would help you to make a better decision

Zero-Shot / Few-Shot

Clasificación de un prompt en función de los ejemplos que incluya

  • zero-shot - prompt donde no introduces ningún ejemplo. Máxima creatividad, cero fiabilidad.
  • one-shot - prompt con un ejemplo. Lo mínimo para obtener buenos resultados.
  • few-shots - prompts con >1 ejemplo. Cuantos más ejemplos, más inferirá el LLM de ellos, por lo que tendrá menos creatividad pero más fiabilidad.

Multi-Turn

(to do: investigar)

Chain of Thought (CoT)

Evita que los LLMs salten sobre el paso de razonamiento y logra que vayan paso a paso.

En vez de decirle

Cual es la mejor arquitectura para hacer x

Usar

Piensa paso a paso sobre las mejores arquitecturas para hacer x, explicando los pros y contras de cada una y entonces recomiéndame la mejor

Prewarming

Técnica para mejorar resultados con la IA para darle un mejor contexto.

Primero le pedimos

Dame 5 consejos como experto de marketing para nombrar zapatillas deportivas

Una vez tenemos estos consejos, los utilizamos como sigue, aprovechando la ventana de contexto

Siguiente estos consejos, dame 5 nombres comerciales para zapatillas deportivas

External guides

Otra opción parecida a la anterior es buscar previamente nosotros por nuestra cuenta (o si tenemos algunas reglas como los SOLID principles, que queremos cumplir) y pedirle que se base en estos.

Siguiendo estas reglas, dame 5 nombres comerciales para zapatillas deportivas. Reglas: (añadir golden reglas naming)

CRAFT Prompt Structure

Para prompts más complejos con requisitos más específicos.

Estructura de prompts:

  • Contexto: dar background apropiado
  • Rol: el que debe tomar la IA
  • Acción: instrucciones claras
  • Format: especificar el output deseado
  • Target: audiencia

Ejemplo:

## Contexto
Estoy preparando una presentación sobre el efecto del cambio climático en los próximos años
 
## Rol
Eres un analista senior
 
## Accion
Analizame los ultimos estudios disponibles y fuentes de informacion fiables y verificables con reputacion y resume el impacto del cambio climatico en los proximos años relacionado al tiempo ambiental

## Formato
Haz un powerpoint

## Target
un comité de expertos

Especificar formato de respuesta (generar JSON)

Según lo que queramos, podemos pedir formatos específicos como JSON o YAML. Para este approach puede ser útil pasar la respuesta devuelta por un validador de JSON o YAML antes de procesar nada.

Dame 5 nombres comerciales para unas zapatillas deportivas.  
Sigue las siguientes reglas:
* Responde únicamente en formato JSON
* El formato JSON tiene que seguir la siguiente [ESTRUCTURA]
* La respuesta se parseará con json.loads(), por lo que asegúrate de que es JSON válido
* No incluyas símbolos backtick como por ejemplo ` 

[ESTRUCTURA]
[
  {
    "Product name": "product name here",
    "Product description": "description here"
  }
]

Comparar contra su propia solución

A veces puede ser útil darle tiempo para pensar y que lo intente solucionar él primero, y vea si su solución es la misma que la nuestra

Primero intenta resolver [PROBLEMA] por tu propia cuenta. Después, compara tu solución contra mi [SOLUCION PROPUESTA]. Dime si lo resolverías del mismo modo o que es lo que mejorarías y/o cambiarías. No juzgues ni compares contra [SOLUCION PROPUESTA] hasta que no lo hayas resuelto por tí mismo. 

[PROBLEMA]
problema goes here

[SOLUCION PROPUESTA]
mi solucion goes here

Auto-evaluación

Primero le damos un prompt de lo que queremos hacer

 Dame un programa en Python que haga "Hello World"

Luego una vez nos ha dado la solución le hacemos reflexionar iterativamente hasta que no proponga mejoras

Dada la respuesta anterior haz autocrítica y mira si se puede mejorar alguna parte. Si no encuentras ninguna mejora sustancial prefiero que me lo digas antes de que propongas soluciones sin sentido.