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

Présentation

Les évaluations mesurent la qualité des réponses de votre application LLM. Bien qu’Agent Observability fournisse quelques évaluations prêtes à l’emploi pour vos traces, vous pouvez soumettre vos propres évaluations à Agent Observability de deux manières : avec le SDK de Datadog, ou avec l’API Agent Observability. Utilisez cette convention de nommage pour l’étiquette d’évaluation :

  • Les étiquettes d’évaluation doivent commencer par une lettre.
  • Les étiquettes d’évaluation ne doivent contenir que des caractères alphanumériques ASCII ou des traits de soulignement.
    • Les autres caractères, y compris les espaces, sont convertis en traits de soulignement.
    • Unicode n’est pas pris en charge.
  • Les étiquettes d’évaluation ne doivent pas dépasser 200 caractères. Moins de 100 est préférable du point de vue de l’interface utilisateur.

Les étiquettes d’évaluation doivent être uniques pour une application LLM donnée (ml_app) et une organisation.

Pour les commentaires soumis par vos utilisateurs, tels que les évaluations par pouce levé ou baissé, les modifications acceptées, les commentaires en texte libre et d'autres signaux, consultez Commentaires des utilisateurs finaux.

Soumission d’évaluations externes avec le SDK

Le SDK Agent Observability fournit les méthodes LLMObs.submit_evaluation() et LLMObs.export_span() pour aider votre application LLM tracée à soumettre des évaluations externes à Agent Observability. Consultez la documentation du SDK Python ou Node.js pour plus de détails.

Pour créer des évaluateurs réutilisables basés sur des classes avec des métadonnées de résultat enrichies, consultez le Guide du développeur d'évaluation.

Exemple

from ddtrace.llmobs import LLMObs
from ddtrace.llmobs.decorators import llm

def my_harmfulness_eval(input: Any) -> float:
  score = ... # custom harmfulness evaluation logic

  return score

@llm(model_name="claude", name="invoke_llm", model_provider="anthropic")
def llm_call():
    completion = ... # user application logic to invoke LLM

    # joining an evaluation to a span via span ID and trace ID
    span_context = LLMObs.export_span(span=None)
    LLMObs.submit_evaluation(
        span = span_context,
        ml_app = "chatbot",
        label="harmfulness",
        metric_type="score", # can be score or categorical
        value=my_harmfulness_eval(completion),
        tags={"type": "custom"},
        timestamp_ms=1765990800016, # optional, unix timestamp in milliseconds
        assessment="pass", # optional, "pass" or "fail"
        reasoning="it makes sense", # optional, judge llm reasoning
    )

Soumission d’évaluations externes avec l’API

Vous pouvez utiliser l’API d’évaluations fournie par Agent Observability pour envoyer à Datadog des évaluations associées à des spans, des traces ou des sessions. Consultez l’API d’évaluations pour plus de détails sur les spécifications de l’API. Pour créer des évaluateurs réutilisables, consultez le Guide du développeur d’évaluation.

Pour soumettre des évaluations pour des spans OpenTelemetry directement à l’API d’évaluations, vous devez inclure le source:otel tag dans l’évaluation. De plus, span_id et trace_id les valeurs doivent être fournies sous forme de chaînes décimales. Si votre instrumentation OpenTelemetry produit des identifiants hexadécimaux, convertissez-les en décimal avant de les soumettre. Par exemple, en Python : str(int(hex_span_id, 16)).

Exemple

{
  "data": {
    "type": "evaluation_metric",
    "id": "456f4567-e89b-12d3-a456-426655440000",
    "attributes": {
      "metrics": [
        {
          "id": "cdfc4fc7-e2f6-4149-9c35-edc4bbf7b525",
          "join_on": {
            "tag": {
              "key": "msg_id",
              "value": "1123132"
            }
          },
          "ml_app": "weather-bot",
          "timestamp_ms": 1765990800016,
          "metric_type": "score",
          "label": "Accuracy",
          "score_value": 3,
          "tags": ["source:otel"],
          "assessment": "pass",
          "reasoning": "it makes sense"
        }
      ]
    }
  }
}

Frameworks d’évaluation pris en charge

Soumettez des évaluations à partir de ces outils :


Pour aller plus loin