38 lines
1.1 KiB
Markdown
38 lines
1.1 KiB
Markdown
# Generador de imágenes — via OpenRouter
|
|
|
|
## Responsabilidad
|
|
Recibir un prompt en inglés y una foto "antes", devolver el render "después" como data URI base64.
|
|
|
|
## Llamada a OpenRouter
|
|
POST https://openrouter.ai/api/v1/chat/completions
|
|
Authorization: Bearer {OPENROUTER_API_KEY}
|
|
Content-Type: application/json
|
|
|
|
Body:
|
|
{
|
|
"model": "{OPENROUTER_MODEL_IMAGEN}", // google/gemini-2.0-flash-exp-image-generation
|
|
"messages": [
|
|
{
|
|
"role": "user",
|
|
"content": [
|
|
{ "type": "text", "text": promptGenerado },
|
|
{ "type": "image_url", "image_url": { "url": fotoAntesDataUri } }
|
|
]
|
|
}
|
|
]
|
|
}
|
|
|
|
## Manejo de la respuesta
|
|
Extraer la imagen generada de la respuesta. Buscar en:
|
|
1. content directo como data URI
|
|
2. expresion regular data:image/...;base64,...
|
|
3. URL de imagen
|
|
4. Partes del mensaje (choices[0].message.content si es array)
|
|
|
|
Devolver siempre como data:image/png;base64,...
|
|
|
|
## Errores
|
|
- Error de red → lanzar excepción, pipeline.service reintentará
|
|
- Respuesta 429 (rate limit) → esperar 5s y reintentar 1 vez
|
|
- Respuesta 5xx → lanzar excepción inmediatamente
|