Prompts
Gestión de Prompts
Versiona tus prompts, detecta variables automáticamente y mantén un historial de cambios para cada prompt de tu aplicación.
Características
Versionado
Cada actualización crea una nueva versión sin perder el historial
Variables
Detecta automáticamente {{variables}} en el contenido
Tags
Organiza prompts con etiquetas personalizadas
Endpoints
GET
/api/v1/projects/{id}/opik/promptsLista todos los prompts con sus versiones
POST
/api/v1/projects/{id}/opik/promptsCrea un nuevo prompt
{
"name": "Customer Support",
"content": "Eres un asistente de soporte para {{company}}.\nEl cliente pregunta: {{question}}\nResponde de manera amable.",
"description": "Prompt para atención al cliente",
"tags": ["support", "production"]
}
// Variables detectadas automáticamente:
// ["company", "question"]PUT
/api/v1/projects/{id}/opik/promptsActualiza prompt (crea nueva versión)
{
"name": "Customer Support", // Identificar por nombre
"content": "Eres un asistente de {{company}}.\nContexto: {{context}}\nPregunta: {{question}}\nResponde de manera empática.",
"tags": ["support", "production", "v2"]
}
// Crea versión 2 del promptEstructura de Respuesta
{
"prompts": [
{
"id": "prompt-uuid",
"name": "Customer Support",
"description": "Prompt para atención al cliente",
"currentVersion": 2,
"versions": [
{
"id": "version-2",
"version": 2,
"content": "Eres un asistente de {{company}}...",
"variables": ["company", "context", "question"],
"createdAt": "2025-12-29T12:00:00Z"
},
{
"id": "version-1",
"version": 1,
"content": "Eres un asistente de soporte...",
"variables": ["company", "question"],
"createdAt": "2025-12-28T10:00:00Z"
}
],
"tags": ["support", "production", "v2"],
"createdAt": "2025-12-28T10:00:00Z",
"updatedAt": "2025-12-29T12:00:00Z"
}
]
}Ejemplo de Uso
// 1. Crear prompt inicial
await fetch('/api/v1/projects/my-project/opik/prompts', {
method: 'POST',
body: JSON.stringify({
name: 'Sales Bot',
content: `Eres un vendedor de {{product}}.
El cliente dice: {{message}}
Responde promocionando las ventajas del producto.`,
tags: ['sales']
})
})
// 2. Actualizar con mejoras (nueva versión)
await fetch('/api/v1/projects/my-project/opik/prompts', {
method: 'PUT',
body: JSON.stringify({
name: 'Sales Bot',
content: `Eres un experto vendedor de {{product}}.
Contexto del cliente: {{context}}
Mensaje: {{message}}
Responde de manera persuasiva pero no invasiva.`,
tags: ['sales', 'v2']
})
})
// 3. Obtener prompt con todas las versiones
const response = await fetch('/api/v1/projects/my-project/opik/prompts?name=Sales Bot')
const { prompts } = await response.json()
console.log(`Versión actual: ${prompts[0].currentVersion}`)
console.log(`Variables: ${prompts[0].versions[0].variables.join(', ')}`)