Primer Test con Promptfoo
Vamos a crear nuestra primera Matriz de evaluación. El objetivo es simple: probaremos si nuestro prompt es capaz de generar tweets técnicos de calidad sobre diferentes temas, y mediremos si cumple con nuestros requisitos.
1. Instalación y configuración
Sección titulada «1. Instalación y configuración»-
Crea una carpeta para pruebas
Crea una carpeta
ai-tests.Ventana de terminal mkdir ai-testscd ai-tests -
Inicializa Promptfoo
Este comando interactivo creará la configuración base.
Ventana de terminal npx promptfoo@latest initCuando te pregunte, acepta los valores por defecto (pulsa Enter).
-
Configura la API Key
Promptfoo necesita acceso a Gemini. Asegúrate de tener tu variable de entorno configurada en tu terminal o crea un archivo
.enven esa carpeta:Ventana de terminal export GOOGLE_API_KEY=tu_api_key_aqui# En Windows (PowerShell): $env:GOOGLE_API_KEY="tu_api_key"
2. El archivo de configuración (promptfooconfig.yaml)
Sección titulada «2. El archivo de configuración (promptfooconfig.yaml)»Este es el corazón de tus tests. Aquí defines qué probar (Prompts), con quién probarlo (Modelos) y cómo validarlo (Tests).
Abre promptfooconfig.yaml y reemplaza su contenido con esto:
description: "Evaluador de Tweets Técnicos"
# 1. ¿Qué prompt queremos probar?# Usamos {{topic}} como variable dinámicaprompts: - "Escribe un tweet técnico y atractivo sobre {{topic}}. Usa emojis pero mantén un tono profesional."
# 2. ¿Qué modelos usaremos? (Podríamos comparar varios)providers: - "google:gemini-2.5-flash" - "google:gemini-3-flash-preview"
# 3. ¿Qué casos de prueba ejecutaremos?tests: - vars: topic: "Python vs JavaScript"
- vars: topic: "Docker Containers" # Aserciones simples (Tests Unitarios) assert: - type: contains value: "Docker" - type: max-length value: 280 # Un tweet no puede pasar de 280 caracteres3. Ejecutando la evaluación
Sección titulada «3. Ejecutando la evaluación»Ahora, ejecutemos el test. Promptfoo tomará tus variables, las inyectará en el prompt, llamará a Gemini y verificará las aserciones.
npx promptfoo evalVerás una barra de progreso en tu terminal. Al finalizar, te mostrará un resumen de cuántos tests pasaron y cuántos fallaron.
4. El visor gráfico (Matrix View)
Sección titulada «4. El visor gráfico (Matrix View)»La terminal está bien, pero la magia está en la UI web.
npx promptfoo viewEsto abrirá una página web local (generalmente en http://localhost:15500) donde verás una Matriz Comparativa:
- Columnas: Los modelos evaluados (Gemini).
- Filas: Los casos de prueba (Python vs JS, Docker).
- Celdas: La respuesta exacta que generó la IA y, lo más importante, si pasó o no el test (Verde/Rojo).
Siguiente paso
Sección titulada «Siguiente paso»Ya sabemos verificar longitud (max-length) y contenido simple (contains). Pero, ¿cómo verificamos cosas subjetivas como “El tono es ofensivo” o “La respuesta es JSON válido”?
En el próximo capítulo veremos las Aserciones Avanzadas.