fromddtrace.llmobsimportLLMObsfromddtrace.llmobs.decoratorsimportllmdefmy_harmfulness_eval(input:Any)->float:score=...# custom harmfulness evaluation logicreturnscore@llm(model_name="claude",name="invoke_llm",model_provider="anthropic")defllm_call():completion=...# user application logic to invoke LLM# joining an evaluation to a span via span ID and trace IDspan_context=LLMObs.export_span(span=None)LLMObs.submit_evaluation(span=span_context,ml_app="chatbot",label="harmfulness",metric_type="score",# can be score or categoricalvalue=my_harmfulness_eval(completion),tags={"type":"custom"},timestamp_ms=1765990800016,# optional, unix timestamp in millisecondsassessment="pass",# optional, "pass" or "fail"reasoning="it makes sense",# optional, judge llm reasoning)
API を使用した外部評価の送信
Agent Observability が提供する評価 API を使用して、スパン、トレース、またはセッションに関連付けられた評価を Datadog に送信できます。API 仕様の詳細については、Evaluations API を参照してください。再利用可能な評価器の構築については、評価開発者ガイドを参照してください。
OpenTelemetry スパンの評価を Evaluations API に直接送信するには、 source:otel 評価にタグを含める必要があります。さらに、span_id と trace_id の値は、10 進数の文字列として指定する必要があります。OpenTelemetry インスツルメンテーションが 16 進数の ID を生成する場合は、送信前に 10 進数に変換してください。たとえば、Python の場合は以下のようになります。str(int(hex_span_id, 16))。
例
{"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"}]}}}