Este producto no es compatible con el sitio Datadog seleccionado. ().

Descripción general

Las evaluaciones miden la calidad de las respuestas de su aplicación de LLM. Aunque Agent Observability proporciona algunas evaluaciones listas para usar para sus trazas, puede enviar sus propias evaluaciones a Agent Observability de dos maneras: con el SDK de Datadog o con la API de Agent Observability. Utilice esta convención de nomenclatura para la etiqueta de evaluación:

  • Las etiquetas de evaluación deben comenzar con una letra.
  • Las etiquetas de evaluación solo deben contener caracteres alfanuméricos ASCII o guiones bajos.
    • Otros caracteres, incluidos los espacios, se convierten en guiones bajos.
    • Unicode no es compatible.
  • Las etiquetas de evaluación no deben exceder los 200 caracteres. Se prefiere menos de 100 desde la perspectiva de la UI.

Las etiquetas de evaluación deben ser únicas para una aplicación de LLM determinada (ml_app) y organización.

Para la retroalimentación enviada por sus usuarios, como calificaciones de pulgar hacia arriba o hacia abajo, cambios aceptados, comentarios de texto libre y otras señales, consulte Retroalimentación del usuario final.

Envío de evaluaciones externas con el SDK

El SDK de Agent Observability proporciona los métodos LLMObs.submit_evaluation() y LLMObs.export_span() para ayudar a su aplicación de LLM rastreada a enviar evaluaciones externas a Agent Observability. Consulte la documentación del SDK de Python o Node.js para obtener más detalles.

Para crear evaluadores reutilizables basados en clases con metadatos de resultados enriquecidos, consulte la Guía para desarrolladores de evaluaciones.

Ejemplo

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
    )

Envío de evaluaciones externas con la API

Puede utilizar la API de evaluaciones proporcionada por Agent Observability para enviar evaluaciones asociadas con spans, trazas o sesiones a Datadog. Consulte la API de evaluaciones para obtener más detalles sobre las especificaciones de la API. Para crear evaluadores reutilizables, consulte la Guía para desarrolladores de evaluaciones.

Para enviar evaluaciones para OpenTelemetry spans directamente a la API de evaluaciones, debe incluir la source:otel la etiqueta en la evaluación. Además, span_id y trace_id Los valores deben proporcionarse como cadenas decimales. Si su instrumentación de OpenTelemetry produce ID hexadecimales, conviértalos a decimal antes de enviarlos. Por ejemplo, en Python: str(int(hex_span_id, 16)).

Ejemplo

{
  "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"
        }
      ]
    }
  }
}

Marcos de evaluación compatibles


Lecturas adicionales