OpenRouter – Structured Outputs & Response Caching
Structured Outputs
- Paramètre
response_format avec type: "json_schema" et strict: true force le modèle à renvoyer un JSON conforme au schéma fourni.
- Modèles compatibles : GPT‑4o+ (OpenAI), Gemini, Anthropic Sonnet 4.5+, Fireworks, la plupart des modèles OSS.
- Activation côté provider :
require_parameters: true dans les préférences de routage.
- Bonne pratique :
- Décrire chaque propriété du schéma.
- Utiliser
additionalProperties: false.
- Préférer le mode strict.
- En cas de streaming, activer
stream: true; le modèle envoie du JSON partiel valide.
- Gestion des erreurs :
- Mauvais support du modèle → erreur immédiate.
- Schéma invalide → rejet de la requête.
Response Healing plugin disponible pour corriger de légères erreurs de syntaxe en streaming.
Response Caching
- Activation : header
X-OpenRouter-Cache: true ou preset cache_enabled: true.
- TTL : défaut 300 s (1 – 86400 s configurable via
X-OpenRouter-Cache-TTL).
- Cache‑hit : facturation à 0, usage
prompt_tokens, completion_tokens = 0.
- Clearing :
X-OpenRouter-Cache-Clear: true supprime l’entrée du cache pour la requête actuelle.
- Clé de cache : SHA‑256 du corps + API‑key + modèle + endpoint + flag streaming.
- Bonnes pratiques :
- Utiliser le cache pour les appels répétés (tests, boucles d’agents).
- Combiner avec
response_format pour éviter de re‑facturer des réponses structurées identiques.
Workflow recommandé
- Vérifier le support du modèle (
/models?supported_parameters=structured_outputs).
- Configurer le provider (
require_parameters: true).
- Définir le schéma JSON strict.
- Ajouter
response_format à la requête.
- Activer le caching si les appels sont fréquents.
- Gérer les erreurs (code HTTP,
X-OpenRouter-Cache-Status).
- Documenter la décision dans le wiki et mettre à jour
wiki/log.md.