metadata standard de l’API Chat Completions. Cette page explique comment préserver l’identité de conversation, échantillonner des conversations complètes et interpréter les traces qui en résultent dans le projet.
Les SDK d’OpenAI acceptent metadata comme paramètre de requête intégré : vous n’avez donc pas besoin de extra_body. Les anciennes versions du paquet Python openai dépourvues du paramètre metadata nécessitent toujours extra_body={"metadata": {...}}.
Métadonnées réservées
Les clés
forge.* et wandb.* sont réservées aux contrôles du proxy. Le proxy les supprime avant d’envoyer une requête au fournisseur et ne les enregistre pas comme attributs de trace personnalisés. Les autres métadonnées sont transmises au fournisseur et, lorsque leur format le permet, le proxy les ajoute également à la trace.
N’utilisez pas de clés de métadonnées personnelles commençant par forge. ou wandb., car le proxy les traite comme des contrôles.
La trace n’enregistre pas non plus les métadonnées personnalisées qui reprennent un nom déjà enregistré par le proxy lui-même, comme routing_mode, task_version ou alias. Les Agent Spans ignorent également error.type ainsi que les clés gen_ai.* autres que gen_ai.conversation.id. Le proxy transmet néanmoins ces clés au fournisseur.
Priorité des identifiants de conversation
Envoyez l’identifiant de conversation sous la formegen_ai.conversation.id, le nom défini par OpenTelemetry. Le proxy choisit le premier identifiant disponible :
gen_ai.conversation.idcall.idde Vapi
Échantillonner des conversations complètes
L’échantillonnage des traces au niveau des conversations réduit le volume de trafic du projet enregistré dans Weave, sans laisser de conversations partielles. L’échantillonnage par requête, lui, peut conserver des Tours de conversation isolés et en supprimer le contexte, ce qui rend les données enregistrées moins utiles pour le débogage et la création de datasets. Pour configurer l’échantillonnage d’un projet :- Dans Model Distillation, ouvrez la page Acheminement du projet.
- Sous Models and traffic, définissez Weave trace sampling sur le pourcentage de conversations à enregistrer.
- Sélectionnez Enregistrer l’acheminement.
API : définir l’échantillonnage des traces de conversation (PUT /projects/[PROJECT-ALIAS]/routing)
API : définir l’échantillonnage des traces de conversation (PUT /projects/[PROJECT-ALIAS]/routing)
Pour configurer l’échantillonnage des traces au niveau des conversations sans passer par Model Distillation, utilisez l’API d’acheminement.Remplacez Pour une autre version du projet, utilisez
[PROJECT-ALIAS] par l’alias du projet, [WANDB-ENTITY] par l’entity Weights & Biases et [MODEL-REF] par une référence de modèle cible existante.Définissez trace_sampling_rate sur une fraction comprise entre 0 et 1. Comme une mise à jour de l’acheminement remplace l’intégralité de la configuration, incluez toutes les cibles existantes dans la requête :PUT /v1/projects/[PROJECT-ALIAS]/versions/[PROJECT-VERSION]/routing. Remplacez [PROJECT-ALIAS] par l’alias du projet et [PROJECT-VERSION] par la version du projet. Avant de considérer le paramètre comme actif, attendez que le statut du déploiement passe à Applied pour la nouvelle révision d’acheminement.Contenu des traces de projet
Les traces de projet capturent les informations suivantes relatives à l’acheminement, à la requête, à la réponse et aux métadonnées :- ID du projet (UUID), alias du projet et version.
- Révision d’acheminement, ainsi que le fournisseur et le modèle sélectionnés.
- Le mode d’acheminement (
routing_mode) :weightedlorsque le proxy a sélectionné une cible, ouoverridelorsque la requête a désigné un remplacement de modèleprovider/model. - La requête exacte que le proxy envoie au fournisseur et la réponse que le proxy reconstruit.
- L’utilisation des jetons, le motif de fin, la durée et le statut d’erreur.
- Si la réponse a été restituée depuis le cache de réponses exactes (
cache_hit). - La conversation, l’utilisateur, le scénario et les métadonnées personnalisées sûres.
- Un ID de requête du proxy, utile pour l’assistance et la comparaison des sorties de traces.
gen_ai.conversation.id. La vue Threads de Weave ne lit que les Calls : le trafic du projet n’y apparaît donc que pour les requêtes qui journalisent également un Call avec forge.call_shadow.
Les remplacements de modèle font partie du trafic du projet : les datasets construits à partir des traces de projet peuvent donc les inclure. Pour exclure les remplacements d’un dataset, filtrez sur metadata: {"routing_mode": "weighted"}. Ce filtre exclut également les traces écrites avant que le proxy ne commence à enregistrer routing_mode.
API : envoyer une requête avec une identité de conversation (POST /chat/completions)
API : envoyer une requête avec une identité de conversation (POST /chat/completions)
Remplacez Pour épingler une version autre que la version 1, ajoutez
[WANDB-ENTITY] par l’entity Weights & Biases, [WANDB-PROJECT] par le nom du projet Weights & Biases associé au projet (et non son alias), et [CONVERSATION-ID] par un identifiant de conversation.Conservez le même gen_ai.conversation.id pour chaque Tour d’une même conversation :"forge.project_version": "2" à metadata. Le proxy supprime les valeurs réservées forge.* avant d’envoyer la requête au fournisseur. Consultez Créer une complétion de conversation acheminée.