Aller au contenu

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é

  1. Vérifier le support du modèle (/models?supported_parameters=structured_outputs).
  2. Configurer le provider (require_parameters: true).
  3. Définir le schéma JSON strict.
  4. Ajouter response_format à la requête.
  5. Activer le caching si les appels sont fréquents.
  6. Gérer les erreurs (code HTTP, X-OpenRouter-Cache-Status).
  7. Documenter la décision dans le wiki et mettre à jour wiki/log.md.