1.4 KiB
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)