Ce produit n'est pas pris en charge par le site Datadog que vous avez sélectionné. ().

Présentation

Le suivi des prompts lie les modèles de prompt et leurs versions aux appels LLM. Le suivi des prompts fonctionne parallèlement aux traces, aux spans et à Playground d’Agent Observability, ainsi qu’à Prompt Management, qui fournit un registre centralisé pour la création et le versionnage des prompts.

Le suivi des prompts vous permet de :

  • Voir tous les prompts utilisés par votre application ou agent LLM, avec le volume d’appels et la latence au fil du temps
  • Comparer les prompts ou les versions par appels, latence, jetons utilisés et coût
  • Voir des informations détaillées sur un prompt : examiner son historique de version, afficher une différence de texte et accéder aux traces utilisant une version spécifique
  • Filtrer Trace Explorer par nom, ID ou version de prompt pour isoler les requêtes impactées
  • Reproduire une exécution en remplissant Agent Observability Playground avec le modèle exact et les variables issues de n’importe quel span
Vue des prompts pour une application dans Agent Observability.

Configurer le suivi des prompts

Lorsque Agent Observability est activé, les prompts récupérés depuis le registre Prompt Management avec LLMObs.get_prompt() sont suivis automatiquement si la valeur renvoyée par prompt.format() est transmise directement à un appel LLM pris en charge et instrumenté automatiquement. Si la valeur formatée est copiée ou transformée, utilisez LLMObs.annotation_context() comme décrit dans la documentation de Prompt Management. Les options de configuration suivantes s’appliquent aux prompts définis en dehors du registre.

Avec des métadonnées de prompt structurées

Pour utiliser le suivi des prompts, vous pouvez soumettre des métadonnées de prompt structurées (ID, version facultative, modèle, variables).

SDK Python d’Agent Observability

Si vous utilisez le SDK Python d’Agent Observability (dd-trace v3.16.0+), joignez les métadonnées du prompt au span LLM en utilisant l’argument ou l’assistant prompt. Consultez la documentation du SDK Python d’Agent Observability.

SDK Node.js d’Agent Observability

Si vous utilisez le SDK Node.js d’Agent Observability (dd-trace v5.83.0+), joignez les métadonnées du prompt au span LLM en utilisant l’option prompt. Consultez la documentation du SDK Node.js d’Agent Observability.

API Agent Observability

Si vous utilisez l’ingestion de l’API Agent Observability, soumettez les métadonnées du prompt à l’endpoint de l’API Spans. Consultez la documentation de référence de l’API HTTP Agent Observability.

Instrumentation OpenTelemetry

Si vous utilisez l’instrumentation OpenTelemetry, vous pouvez joindre des métadonnées de prompt à vos spans LLM en définissant l’attribut _dd.ml_obs.prompt_tracking avec une chaîne JSON contenant les informations de votre prompt.

Définissez l’attribut sur n’importe quel span LLM :

import json

span.set_attribute("_dd.ml_obs.prompt_tracking", json.dumps({
    "name": "greeting-prompt",
    "version": "v1",
    "template": "Hello {{name}}, tell me about {{topic}}",
    "variables": {"name": "Alice", "topic": "weather"}
}))
span.setAttribute("_dd.ml_obs.prompt_tracking", JSON.stringify({
    name: "greeting-prompt",
    version: "v1",
    template: "Hello {{name}}, tell me about {{topic}}",
    variables: { name: "Alice", topic: "weather" }
}));
span.SetAttributes(attribute.String("_dd.ml_obs.prompt_tracking",
    `{"name":"greeting-prompt","version":"v1","template":"Hello {{name}}, tell me about {{topic}}","variables":{"name":"Alice","topic":"weather"}}`,
))

Les champs suivants sont pris en charge dans le JSON de suivi des prompts :

ChampTypeRequisDescription
templatechaîneOui (ou chat_template)Chaîne de template pour les prompts à message unique
chat_templatetableauOui (ou template)Liste de {"role": "...", "content": "..."}templates de message
idchaîneNonIdentifiant unique pour le prompt. Par défaut {ml_app}_unnamed-prompt si omis
namechaîneNonNom du prompt. Utilisé comme solution de secours pour id si id est omis
versionchaîneNonTag de version fourni par l’utilisateur
variablesobjetNonSubstitutions des variables de modèle
rag_context_variablestableau de chaînesNonNoms des variables dans variables qui contiennent le contexte RAG (vérité terrain). Utilisé par les évaluateurs RAG
rag_query_variablestableau de chaînesNonNoms des variables dans variables qui contiennent la requête de l’utilisateur. Utilisé par les évaluateurs RAG
Si vous utilisez des modèles de prompt, Agent Observability peut automatiquement joindre des informations de version basées sur le contenu du prompt.

Avec les modèles LangChain

Si vous utilisez des modèles de prompt LangChain, Datadog capture automatiquement les métadonnées de prompt sans modification de code. Les ID sont dérivés des noms de module ou de modèle. Pour remplacer ces ID, consultez Agent Observability Auto-instrumentation : LangChain.

Utilisez le suivi des prompts dans Agent Observability

Affichez votre application dans Agent Observability et sélectionnez Prompts sur la gauche. La vue Prompts présente les informations suivantes :

  • Prompt Call Count : Un graphique de série temporelle affichant les appels par prompt (ou par version) au fil du temps
  • Recent Prompt Updates : Informations sur les mises à jour récentes des prompts, incluant l’heure de la dernière mise à jour, le nombre d’appels, la latence moyenne et le nombre moyen de jetons par appel
  • Most Tokens Used : Prompts classés par nombre total de jetons (entrée ou sortie)
  • Highest Latency Prompts : Prompts classés par durée moyenne
Vue détaillée pour un prompt unique.

Cliquez sur un prompt pour ouvrir une vue latérale détaillée présentant des informations sur l’activité de la version et diverses métriques. Vous pouvez également afficher une vue diff de deux versions, ouvrir le Trace Explorer pré-filtré sur les spans qui utilisent une version sélectionnée, ou démarrer une session Playground pré-remplie avec le modèle et les variables de la version sélectionnée.

Vue des prompts pour une application dans Agent Observability.

Vous pouvez utiliser le Trace Explorer d’Agent Observability pour localiser les requêtes par utilisation de prompt. Vous pouvez utiliser le nom, l’ID et la version d’un prompt comme facettes pour la recherche au niveau des traces et des spans. Cliquez sur n’importe quel span LLM pour voir le prompt qui l’a généré.

Pour aller plus loin