44 lines
1.4 KiB
Markdown
44 lines
1.4 KiB
Markdown
# Supervisor de calidad — Claude Haiku 4.5 Vision via OpenRouter
|
|
|
|
## Responsabilidad
|
|
Comparar la foto "antes" con el render "después" y verificar que el resultado es coherente
|
|
con el brief del cliente. Devolver aprobación y score.
|
|
|
|
## Llamada a OpenRouter
|
|
POST https://openrouter.ai/api/v1/chat/completions
|
|
Authorization: Bearer {OPENROUTER_API_KEY}
|
|
Content-Type: application/json
|
|
|
|
Body:
|
|
{
|
|
"model": "{OPENROUTER_MODEL_TEXTO}", // anthropic/claude-3.5-haiku-20241022
|
|
"messages": [
|
|
{ "role": "system", "content": "You are a quality supervisor..." },
|
|
{
|
|
"role": "user",
|
|
"content": [
|
|
{ "type": "text", "text": "Reforma tipo: cocina\nMetros: 12..." },
|
|
{ "type": "image_url", "image_url": { "url": "data:image/...foto_antes" } },
|
|
{ "type": "image_url", "image_url": { "url": "data:image/...render_despues" } }
|
|
]
|
|
}
|
|
],
|
|
"max_tokens": 256,
|
|
"temperature": 0.2
|
|
}
|
|
|
|
## System prompt
|
|
Contenido de prompts/supervisor.txt
|
|
|
|
## Respuesta esperada
|
|
JSON estricto:
|
|
{ "aprobado": boolean, "score": number, "motivo": string }
|
|
|
|
## Manejo de respuesta malformada
|
|
Si el modelo no devuelve JSON válido:
|
|
→ devolver { aprobado: false, score: 0, motivo: "Error parseando respuesta del supervisor" }
|
|
Nunca lanzar excepción desde el supervisor, siempre devolver el objeto.
|
|
|
|
## Umbral de aprobación
|
|
aprobado: true AND score >= SUPERVISOR_MIN_SCORE (del .env, por defecto 70)
|