- API compatible OpenAI : la méthode recommandée pour la plupart des cas, avec une interface unifiée pour tous les modèles.
- API natives des fournisseurs : pour les cas avancés qui exigent des fonctionnalités propres au fournisseur, absentes de l’API unifiée.
API compatible OpenAI
C’est la façon la plus simple et la plus souple d’utiliser YouRouter : les SDK OpenAI habituels, avec des changements de code minimes pour changer de modèle ou de fournisseur.Utilisation de base
L’exemple suivant envoie une requête de complétion de chat de base. Modifiez le champmodel et l’en-tête vendor pour cibler d’autres modèles et fournisseurs.
Fonctionnalités avancées
Conversation multi-tours
Pour poursuivre une conversation, passez tout l’historique dans le tableaumessages.
Réponses en flux (streaming)
Pour les applications temps réel (chatbots, etc.), streamez la réponse pendant sa génération en définissantstream=True.
Appel de fonctions / outils (tool use)
Vous pouvez permettre aux modèles d’utiliser des outils ou d’appeler des fonctions vers des systèmes externes. Le flux comporte plusieurs étapes :- Vous envoyez une requête avec la liste des outils disponibles.
- Le modèle répond en demandant d’appeler un ou plusieurs de ces outils.
- Vous exécutez les outils dans votre code.
- Vous renvoyez les résultats au modèle, qui produit alors une réponse finale en langage naturel.
Vision (complétions multimodales)
De nombreux modèles acceptent des entrées multimodales, y compris des images : description, analyse, questions-réponses visuelles, etc. Ce n’est pas limité à un seul fournisseur ; des modèles commegpt-4o, claude-3-5-sonnet-20240620 et gemini-1.5-pro-latest prennent en charge la vision.
Paramètres
| Paramètre | Type | Description | Défaut |
|---|---|---|---|
model | string | ID du modèle à utiliser. | Obligatoire |
messages | array | Liste des messages constituant la conversation jusqu’ici. | Obligatoire |
max_tokens | integer | Nombre maximal de jetons à générer pour la complétion. | null |
temperature | number | Température d’échantillonnage entre 0 et 2. | 1 |
top_p | number | Alternative à la température : échantillonnage nucleus. | 1 |
n | integer | Nombre de choix de complétion à générer pour chaque message d’entrée. | 1 |
stream | boolean | Si défini, des deltas de message partiels sont envoyés (comme dans ChatGPT). | false |
stop | string ou array | Jusqu’à 4 séquences où l’API arrête de générer des jetons. | null |
presence_penalty | number | Entre -2,0 et 2,0. Les valeurs positives pénalisent les nouveaux jetons s’ils apparaissent déjà dans le texte. | 0 |
frequency_penalty | number | Entre -2,0 et 2,0. Les valeurs positives pénalisent selon la fréquence des jetons dans le texte. | 0 |
logit_bias | map | Modifie la probabilité d’apparition de jetons donnés dans la complétion. | null |
user | string | Identifiant unique de l’utilisateur final pour surveillance et détection d’abus. | null |
tool_choice | string ou objet | Contrôle si et comment le modèle utilise les outils. | none |
tools | array | Liste des outils que le modèle peut appeler. | null |
API natives des fournisseurs
Pour les cas avancés qui exigent des paramètres ou fonctionnalités absentes de l’API compatible OpenAI, appelez directement les points de terminaison natifs du fournisseur. Vous devez inclure l’en-têtevendor dans ces requêtes.
YouRouter transmet l’intégralité du corps de requête (et tous les en-têtes sauf
Authorization) au fournisseur amont. Voir le guide Transfert des requêtes.Gemini (Google)
Générer du contenu
Point de terminaison :POST /v1/projects/cognition/locations/us/publishers/google/models/{model}:generateContent
Paramètres de sécurité
Vous pouvez définir des seuils de contenu avec l’objetsafetySettings dans la requête. Liste complète des catégories et seuils : documentation Google AI.
Claude (Anthropic)
API Messages
Point de terminaison :POST /v1/messages
Envoyez un message à Claude via l’API Messages.
Utilisation d’outils avec Claude
Vous pouvez fournir à Claude un ensemble d’outils ; le modèle décide quand les utiliser pour répondre. Le flux implique plusieurs tours : votre code exécute l’outil et renvoie le résultat à Claude. Exemple complet du cycle de vie des outils :Bonnes pratiques
- Routage : en production, utilisez le mode
autopour la haute disponibilité. Pour une version de modèle ou une fonctionnalité précise, utilisez le routage manuel. Détails dans le guide Routage. - Gestion des erreurs : pannes réseau et indisponibilités fournisseur sont possibles. Prévoyez des nouvelles tentatives avec backoff exponentiel, surtout pour les tâches longues.
- Streaming et UX : pour toute interface utilisateur, le streaming offre une expérience temps réel plus fluide.
- Prompts système : un prompt système soigné guide le comportement, le ton et la personnalité du modèle. Testez et affinez-le.
- Jetons : respectez les limites de contexte et de sortie. Surveillez le champ
usagedans la réponse pour suivre les coûts et éviter une troncature inattendue.