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

Descripción general

La API HTTP de Agent Observability proporciona una interfaz para que los desarrolladores envíen trazas y tramos relacionados con LLM a Datadog. Si su aplicación está escrita en Python, Node.js o Java, puede usar los Agent Observability SDKs.

La API acepta tramos con marcas de tiempo de no más de 24 horas de antigüedad, lo que permite un rellenado limitado de datos retrasados.

API de tramos

Utilice este punto de conexión para enviar tramos a Datadog. Para obtener detalles sobre los tipos de tramos disponibles, consulte Span Kinds.

Punto de conexión
https://api./api/intake/llm-obs/v1/trace/spans
Método
POST

Solicitud

Encabezados (obligatorio)

  • DD-API-KEY=<YOUR_DATADOG_API_KEY>
  • Content-Type="application/json"

Datos del cuerpo (obligatorio)

CampoTipoDescripción
datos [obligatorio]SpansRequestDataPunto de entrada al cuerpo de la solicitud.
{
  "data": {
    "type": "span",
    "attributes": {
      "ml_app": "weather-bot",
      "session_id": "1",
      "feedback_join_key": "weather-request-123",
      "tags": [
        "service:weather-bot",
        "env:staging",
        "user_handle:example-user@example.com",
        "user_id:1234"
      ],
      "spans": [
        {
          "parent_id": "undefined",
          "trace_id": "<TEST_TRACE_ID>",
          "span_id": "<AGENT_SPAN_ID>",
          "name": "health_coach_agent",
          "meta": {
            "kind": "agent",
            "input": {
              "value": "What is the weather like today and do i wear a jacket?"
            },
            "output": {
              "value": "It's very hot and sunny, there is no need for a jacket"
            }
          },
          "start_ns": 1713889389104152000,
          "duration": 10000000000
        },
        {
          "parent_id": "<AGENT_SPAN_ID>",
          "trace_id": "<TEST_TRACE_ID>",
          "span_id": "<WORKFLOW_ID>",
          "name": "qa_workflow",
          "meta": {
            "kind": "workflow",
            "input": {
              "value": "What is the weather like today and do i wear a jacket?"
            },
            "output": {
              "value":  "It's very hot and sunny, there is no need for a jacket"
            }
          },
          "start_ns": 1713889389104152000,
          "duration": 5000000000
        },
        {
          "parent_id": "<WORKFLOW_SPAN_ID>",
          "trace_id": "<TEST_TRACE_ID>",
          "span_id": "<LLM_SPAN_ID>",
          "name": "generate_response",
          "meta": {
            "kind": "llm",
            "input": {
              "messages": [
                {
                  "role": "system",
                  "content": "Your role is to ..."
                },
                {
                  "role": "user",
                  "content": "What is the weather like today and do i wear a jacket?"
                }
              ]
            },
            "output": {
              "messages": [
                {
                  "content": "It's very hot and sunny, there is no need for a jacket",
                  "role": "assistant"
                }
              ]
            }
          },
          "start_ns": 1713889389104152000,
          "duration": 2000000000
        }
      ]
    }
  }
}

Respuesta

Si la solicitud es exitosa, la API responde con un código de red 202 y un cuerpo vacío.

Estándares de API

Error

CampoTipoDescripción
mensajecadenaEl mensaje de error.
pilacadenaLa traza de pila.
tipocadenaEl tipo de error.

IO

CampoTipoDescripción
valorcadenaValor de entrada o salida. Si no se establece, este valor se infiere de los mensajes o documentos.
mensajes[Mensaje]Lista de mensajes. Utilizar solo para tramos de LLM.
documentos[Documento]Lista de documentos. Úselo solo como salida para tramos de recuperación.
promptPromptMetadatos de prompt estructurados que incluyen la plantilla y las variables utilizadas para la entrada del LLM. Esto solo debe usarse para E/S de entrada en tramos de LLM.
incrustación[float]Lista de valores de incrustación.
parámetrosDict[clave (cadena), valor]Parámetros adicionales para la entrada o salida.

Nota: Cuando solo se establece input.messages para un tramo de LLM, Datadog infiere input.value a partir de input.messages y utiliza la siguiente lógica de inferencia:

  1. Si existe un mensaje con role=user, el contenido del último mensaje se utiliza como input.value.
  2. Si no hay un mensaje con rol user, input.value se infiere concatenando los campos de contenido de todos los mensajes, independientemente de sus roles.

Mensaje

CampoTipoDescripción
contenido [obligatorio]cadenaEl cuerpo del mensaje.
rolcadenaEl rol de la entidad.
llamadas_de_herramienta[LlamadaDeHerramienta]Lista de llamadas de herramienta realizadas en este mensaje.
resultados_de_herramienta[ResultadoDeHerramienta]Lista de resultados de ejecución de herramientas en este mensaje.
partes_de_audio[ParteDeAudio]Lista de segmentos de audio adjuntos a este mensaje. Úselo para tramos de LLM multimodales (voz).
partes_de_imagen[ParteDeImagen]Lista de segmentos de imagen adjuntos a este mensaje. Úselo para tramos de LLM multimodales (visión).

Documento

CampoTipoDescripción
textstringEl texto del documento.
namestringEl nombre del documento.
scorefloatLa puntuación asociada con este documento.
idstringEl id de este documento.
rankingintegerLa clasificación de este documento.
metadataDict[key (string), value]Metadatos adicionales para este documento.

ToolCall

CampoTipoDescripción
namestringEl nombre de la herramienta que se está llamando.
argumentsDict[key (string), value]Los argumentos pasados a la herramienta.
tool_idstringIdentificador único para esta llamada de herramienta.
typestringEl tipo de llamada de herramienta.

ToolResult

CampoTipoDescripción
namestringEl nombre de la herramienta que fue llamada.
resultstringEl resultado devuelto por la herramienta.
tool_idstringIdentificador único que coincide con la llamada de herramienta correspondiente.
typestringEl tipo de resultado de la herramienta.

AudioPart

Un segmento de audio en un mensaje. Proporcione content o attachment_key.

CampoTipoDescripción
mime_type [obligatorio]stringEl tipo de medio del audio, como audio/wav o audio/pcm.
contentstringEl audio codificado en base64, transportado en línea con el mensaje.
attachment_keystringUna referencia al audio almacenado fuera de la carga útil del tramo, en lugar de en línea content.

ImagePart

Una imagen en un mensaje. Proporcione content o attachment_key.

CampoTipoDescripción
mime_type [obligatorio]stringEl tipo de medio de la imagen, como image/png o image/jpeg.
contentstringLa imagen codificada en base64, transportada en línea con el mensaje.
attachment_keystringUna referencia a una imagen almacenada fuera de la carga útil del tramo, en lugar de en línea content.

ToolDefinition

CampoTipoDescripción
namestringThe name of the tool.
descriptionstringA description of what the tool does.
schemaDict[key (string), value]El schema que define los parámetros de la herramienta.

SpanField

CampoTipoDescripción
tipocadenaEl tipo de campo de tramo.

Prompt

Agent Observability registra nuevas versiones de plantillas cuando el template o chat_template valor se actualiza. Si se espera que la entrada cambie entre invocaciones, extraiga las partes dinámicas en una variable.
CampoTipoDescripción
idcadenaIdentificador lógico para esta plantilla de prompt. Debe ser único por ml_app.
nombrecadenaNombre legible por humanos para el prompt.
versióncadenaEtiqueta de versión para el prompt (por ejemplo, “1.0.0”). Si no se proporciona, Agent Observability genera automáticamente una versión calculando un hash del contenido de la plantilla.
plantillacadenaForma de plantilla de cadena única. Utilice la sintaxis de marcador de posición (como {{variable_name}}) to embed variables. This should not be set with chat_template.
chat_template[Message]Multi-message template form. Use placeholder syntax (like {{variable_name}}) to embed variables in message content. This should not be set with template.
variablesDict[key (string), string]Variables utilizadas para renderizar la plantilla. Las claves corresponden a los nombres de los marcadores de posición en la plantilla.
query_variable_keys[string]Claves de variables que contienen la consulta del usuario. Se utiliza para la detección de alucinaciones.
context_variable_keys[string]Claves de variables que contienen contenido de contexto o verdad fundamental. Se utiliza para la detección de alucinaciones.
tagsDict[key (string), string]Etiquetas para adjuntar a la ejecución del prompt.
{
  "id": "translation-prompt",
  "chat_template": [
    {
      "role": "system",
      "content": "You are a translation service. You translate to {{language}}."
    }, {
      "role": "user",
      "content": "{{user_input}}"
    }
  ],
  "variables": {
    "language": "french",
    "user_input": "<USER_INPUT_TEXT>"
  }
}

Meta

CampoTipoDescripción
tipo [obligatorio]cadenaEl tipo de tramo: "agent", "workflow", "llm", "tool", "task", "embedding" o "retrieval".
errorErrorInformación de error sobre el tramo.
inputIOLa información de entrada del tramo.
outputIOLa información de salida del tramo.
metadataDict[key (string), value] donde el valor es un float, bool o stringDatos sobre el tramo que no están relacionados con la entrada o salida. Por ejemplo, puede pasar temperature y max_tokens para tramos de LLM.
model_namestringEl nombre del modelo utilizado para tramos de LLM.
model_providerstringEl proveedor del modelo utilizado para tramos de LLM.
model_versionstringLa versión del modelo utilizado para tramos de LLM.
embedding_for_prompt_idxintegerEl índice del prompt para el cual se calcularon los embeddings.
spanSpanFieldInformación del campo tramo.
tool_definitions[ToolDefinition]lista de definiciones de herramientas disponibles.
expected_outputIOLa información de salida esperada del tramo.
intentstringLa intención del tramo.

Métricas

Un diccionario de métricas a recopilar para el tramo. Las claves son nombres de métricas (cadenas) y los valores son valores de métricas (punteros float64). Las métricas comunes incluyen:

  • input_tokens - El número de tokens de entrada (tramos de LLM)
  • output_tokens - El número de tokens de salida (tramos de LLM)
  • total_tokens - El número total de tokens (tramos de LLM)
  • non_cached_input_tokens - El número de tokens de entrada no almacenados en caché (tramos de LLM)
  • cache_read_input_tokens - El número de tokens de entrada leídos de la caché (tramos de LLM)
  • cache_write_input_tokens - El número de tokens de entrada escritos en la caché (tramos de LLM)
  • reasoning_output_tokens - El número de tokens de razonamiento (tramos de LLM)
  • time_to_first_token - Tiempo en segundos para el primer token de salida (LLM en streaming, tramos raíz)
  • time_per_output_token - Tiempo en segundos por token de salida (LLM en streaming, tramos raíz)
  • input_cost - Costo de entrada en dólares (tramos de LLM y embedding)
  • output_cost - Costo de salida en dólares (tramos de LLM)
  • total_cost - Costo total en dólares (tramos de LLM)
  • non_cached_input_cost - Costo de entrada sin caché en dólares (tramos de LLM)
  • cache_read_input_cost - Costo de entrada de lectura de caché en dólares (tramos de LLM)
  • cache_write_input_cost - Costo de entrada de escritura de caché en dólares (tramos de LLM)
  • reasoning_output_cost- Costo de salida de razonamiento en dólares (tramos de LLM)

Tipo: Dict[key (string), float64]

Tramo

CampoTipoDescripción
name [obligatorio]stringEl nombre del tramo.
span_id [obligatorio]stringUn ID único para el tramo.
trace_id [obligatorio]stringUn ID único compartido por todos los tramos en la misma traza.
parent_id [obligatorio]stringID del padre directo del tramo. Si el tramo es un tramo raíz, el parent_id debe ser undefined.
start_ns [obligatorio]uint64La hora de inicio del tramo en nanosegundos.
duration [obligatorio]float64La duración del tramo en nanosegundos.
meta [obligatorio]MetaEl contenido principal relativo al tramo.
statusstringEstado de error ("ok" o "error"). El valor predeterminado es "ok".
apm_trace_idstringEl ID de la traza de APM asociada. El valor predeterminado coincide con el campo trace_id.
metricsDict[key (string), float64]Métricas de Datadog para recopilar. Consulte Métricas para ver los nombres de métricas comunes.
session_idstringEl session_id del tramo. Anula el campo session_id de nivel superior.
feedback_join_keystringUna clave definida por el cliente que se utiliza para conectar los comentarios a este tramo. Anula el campo feedback_join_key de nivel superior. Para obtener más detalles, consulte Comentarios del usuario final.
tags[Tag]Una lista de etiquetas para aplicar a este tramo en particular.
servicestringEl nombre del servicio.
ml_appstringEl nombre de la aplicación LLM para este tramo. Anula el campo ml_app de nivel superior.

SpansRequestData

CampoTipoDescripción
type [obligatorio]stringIdentificador de la solicitud. Establecer en span.
attributes [obligatorio]SpansPayloadEl cuerpo de la solicitud.

SpansPayload

CampoTipoDescripción
ml_app [obligatorio]cadenaEl nombre de su aplicación de LLM. Consulte Pautas para nombrar aplicaciones.
spans [obligatorio][Span]Una lista de tramos.
tags[Etiqueta]Una lista de etiquetas de nivel superior para aplicar a cada tramo.
session_idcadenaLa sesión a la que pertenece la lista de tramos. También se puede anular o establecer en tramos individuales.
feedback_join_keycadenaUna clave definida por el cliente que se utiliza para conectar los comentarios con los tramos en la carga útil. También se puede anular o establecer en tramos individuales. Para obtener más detalles, consulte Comentarios del usuario final.

Etiqueta

Las etiquetas deben tener el formato de una lista de cadenas (por ejemplo, ["user_handle:dog@gmail.com", "app_version:1.0.0"]). Están destinadas a almacenar información contextual relacionada con el tramo.

Para obtener más información sobre las etiquetas, consulte Getting Started with Tags.

Pautas para nombrar aplicaciones

El nombre de su aplicación (el valor de DD_LLMOBS_ML_APP) debe ser una cadena Unicode en minúsculas. Puede contener los caracteres enumerados a continuación:

  • Alfanuméricos
  • Guiones bajos
  • Guiones
  • Dos puntos
  • Puntos
  • Barras

El nombre puede tener hasta 193 caracteres de longitud y no puede contener guiones bajos contiguos o al final.

API de evaluaciones

Para obtener ejemplos completos y orientación sobre cómo crear evaluadores personalizados, consulte la Guía para desarrolladores de evaluación.

Utilice este punto de conexión para enviar evaluaciones y comentarios de los usuarios finales a Datadog. Las evaluaciones pueden asociarse con tramos, trazas o sesiones. Los comentarios de los usuarios finales pueden asociarse con tramos, trazas, sesiones o una clave de unión de comentarios definida por el cliente.

Punto de conexión
https://api./api/intake/llm-obs/v2/eval-metric
Método
POST

Use el campo eval_scope para establecer la granularidad de una evaluación:

  • span (predeterminado): La evaluación está asociada con un tramo específico. Use join_on para identificar el tramo de destino con un par clave-valor de etiqueta o una combinación de ID de tramo e ID de traza.
  • trace: La evaluación está asociada con una traza completa. Use join_on para identificar el tramo raíz de la traza.
  • session: La evaluación está asociada con una sesión. Proporcione session_id en lugar de join_on.

Para enviar comentarios, configure event_kind en feedback. Los eventos de retroalimentación deben incluir submitter.id, omitir join_on y proporcionar exactamente un campo de destino: span_id, trace_id, session_id o feedback_join_key. Si se omite eval_scope, Datadog lo infiere del campo de destino.

Use feedback_join_key cuando los comentarios se apliquen a una entidad externa, como un ID de incidente, ID de informe, ID de tarea o ID de verificación de lanzamiento, en lugar de a un solo tramo, traza o sesión. Para que los comentarios aparezcan con la telemetría relacionada, establezca el mismo feedback_join_key en los tramos relacionados cuando los envíe con la API de tramos o añadiendo una etiqueta feedback_join_key:incident-1234 a través de Enriquecer tramos.

Para crear widgets de tablero a partir de la retroalimentación, cree el widget como lo haría para una evaluación y añada el filtro @event_kind:feedback.

La compatibilidad para filtrar tramos, trazas o sesiones por comentarios no está disponible. Por ejemplo, todavía no puede filtrar trazas solo para aquellas con comentarios de pulgar hacia abajo. Utilice tableros con alcance a @event_kind:feedback en su lugar.

Solicitud

Encabezados (obligatorio)

  • DD-API-KEY=<YOUR_DATADOG_API_KEY>
  • Content-Type="application/json"

Datos del cuerpo (obligatorio)

CampoTipoDescripción
datos [obligatorio]EvalMetricsRequestDataPunto de entrada al cuerpo de la solicitud.
{
  "data": {
    "type": "evaluation_metric",
    "attributes": {
      "metrics": [
        {
          "eval_scope": "span",
          "join_on": {
            "span": {
              "span_id": "20245611112024561111",
              "trace_id": "13932955089405749200"
            }
          },
          "ml_app": "weather-bot",
          "timestamp_ms": 1609459200,
          "metric_type": "categorical",
          "label": "Sentiment",
          "categorical_value": "Positive"
        },
        {
          "eval_scope": "trace",
          "join_on": {
            "span": {
              "span_id": "20245611112024561111",
              "trace_id": "13932955089405749200"
            }
          },
          "ml_app": "weather-bot",
          "timestamp_ms": 1609479200,
          "metric_type": "score",
          "label": "Accuracy",
          "score_value": 3,
          "assessment": "fail",
          "reasoning": "The response provided incorrect information about the weather forecast."
        },
        {
          "eval_scope": "session",
          "session_id": "abc123def456",
          "ml_app": "weather-bot",
          "timestamp_ms": 1609479200,
          "metric_type": "boolean",
          "label": "Topic Relevancy",
          "boolean_value": true
        },
        {
          "eval_scope": "span",
          "join_on": {
            "tag": {
              "key": "msg_id",
              "value": "1123132"
            }
          },
          "ml_app": "weather-bot",
          "timestamp_ms": 1609479200,
          "metric_type": "json",
          "label": "Custom Evaluation",
          "json_value": {
            "verdict": "pass",
            "confidence": 0.95,
            "is_valid": true,
            "metrics": {
              "accuracy": 0.92,
              "precision": 0.88
            },
            "passed_checks": ["coherence", "relevance", "factuality"]
          }
        },
        {
          "event_kind": "feedback",
          "feedback_join_key": "weather-request-123",
          "ml_app": "weather-bot",
          "timestamp_ms": 1765990800016,
          "metric_type": "text",
          "label": "user_comment",
          "text_value": "The response did not answer whether I needed a jacket.",
          "assessment": "fail",
          "submitter": {
            "id": "user-123",
            "type": "user"
          }
        }
      ]
    }
  }
}

Respuesta

CampoTipoDescripciónGarantizado
IDcadenaUUID de respuesta generado al momento del envío.
métricas[EvalMetric]Una lista de evaluaciones o eventos de retroalimentación.
{
  "data": {
    "type": "evaluation_metric",
    "id": "456f4567-e89b-12d3-a456-426655440000",
    "attributes": {
      "metrics": [
        {
          "id": "d4f36434-f0cd-47fc-884d-6996cee26da4",
          "eval_scope": "span",
          "join_on": {
            "span": {
              "span_id": "20245611112024561111",
              "trace_id": "13932955089405749200"
            }
          },
          "ml_app": "weather-bot",
          "timestamp_ms": 1609459200,
          "metric_type": "categorical",
          "label": "Sentiment",
          "categorical_value": "Positive"
        },
        {
          "id": "cdfc4fc7-e2f6-4149-9c35-edc4bbf7b525",
          "eval_scope": "trace",
          "join_on": {
            "span": {
              "span_id": "20245611112024561111",
              "trace_id": "13932955089405749200"
            }
          },
          "ml_app": "weather-bot",
          "timestamp_ms": 1609479200,
          "metric_type": "score",
          "label": "Accuracy",
          "score_value": 3,
          "assessment": "fail",
          "reasoning": "The response provided incorrect information about the weather forecast."
        },
        {
          "id": "haz3fc7-g3p2-1s37-8m12-ndk4hbf7a522",
          "eval_scope": "session",
          "session_id": "abc123def456",
          "ml_app": "weather-bot",
          "timestamp_ms": 1609479200,
          "metric_type": "boolean",
          "label": "Topic Relevancy",
          "boolean_value": true
        },
        {
          "id": "abc1234-h4i5-6j78-9k01-lmn2opq3rst4",
          "eval_scope": "span",
          "join_on": {
            "tag": {
              "key": "msg_id",
              "value": "1123132"
            }
          },
          "ml_app": "weather-bot",
          "timestamp_ms": 1609479200,
          "metric_type": "json",
          "label": "Custom Evaluation",
          "json_value": {
            "verdict": "pass",
            "confidence": 0.95,
            "is_valid": true,
            "metrics": {
              "accuracy": 0.92,
              "precision": 0.88
            },
            "passed_checks": ["coherence", "relevance", "factuality"]
          }
        },
        {
          "id": "fedbk34-h4i5-6j78-9k01-lmn2opq3rst4",
          "event_kind": "feedback",
          "eval_scope": "external",
          "feedback_join_key": "weather-request-123",
          "ml_app": "weather-bot",
          "timestamp_ms": 1765990800016,
          "metric_type": "text",
          "label": "user_comment",
          "text_value": "The response did not answer whether I needed a jacket.",
          "assessment": "fail",
          "submitter": {
            "id": "user-123",
            "type": "user"
          }
        }
      ]
    }
  }
}

Estándares de API

Atributos

CampoTipoDescripción
métricas [obligatorio][EvalMetric]Una lista de evaluaciones o eventos de retroalimentación.
etiquetas[Tag]Una lista de etiquetas para aplicar a todas las evaluaciones o eventos de retroalimentación en la carga útil.

EvalMetric

CampoTipoDescripción
IDstringUUID de la métrica de evaluación (generado al enviar).
event_kindstringEl tipo de evento. Los valores aceptados son "evaluation" y "feedback". El valor predeterminado es "evaluation" cuando se omite.
eval_scopestringLa granularidad del evento: "span" (predeterminado para evaluaciones), "trace", "session", o "external" para retroalimentación dirigida por feedback_join_key. Para la retroalimentación, esto puede omitirse e inferirse del campo de destino.
join_on [obligatorio para evaluaciones con contexto de tramo y traza][JoinOn]Cómo se vincula una evaluación a un tramo o traza. Obligatorio para evaluaciones cuando eval_scope es "span" o "trace". Debe estar ausente para la retroalimentación y para las evaluaciones de sesión.
span_idstringPara la retroalimentación, el ID del tramo con el que se asocia la retroalimentación. Use esto como uno de los campos de destino de la retroalimentación.
trace_idstringPara la retroalimentación, el ID de traza con el que se asocia la retroalimentación. Use esto como uno de los campos de destino de la retroalimentación.
session_id [obligatorio para evaluaciones con contexto de sesión]stringEl ID de sesión con el que se asocia el evento. Obligatorio para evaluaciones cuando eval_scope es "session". Para la retroalimentación, use esto como uno de los campos de destino de la retroalimentación. Debe estar ausente cuando eval_scope que no es de retroalimentación es "span" o "trace".
feedback_join_keystringPara comentarios, una clave definida por el cliente para comentarios que se aplica a una entidad externa en lugar de a un solo tramo, traza o sesión. Debe estar ausente para las evaluaciones.
submitter [requerido para comentarios]SubmitterEl usuario, agente u otra entidad que envió los comentarios.
timestamp_ms [requerido]int64Una marca de tiempo UNIX UTC en milisegundos que representa la hora en que se envió la solicitud.
ml_app [requerido]stringEl nombre de su aplicación de LLM. Consulte Pautas para nombrar aplicaciones.
metric_type [requerido]stringEl tipo de valor: "categorical", "score", "boolean", "json" o "text". El tipo "text" solo es compatible con eventos de retroalimentación.
label [requerido]stringEl nombre o etiqueta único para la evaluación o retroalimentación proporcionada.
categorical_value [requerido si metric_type es "categorical"]stringUna cadena que representa el valor de la categoría. No es requerido cuando status es "WARN" o "ERROR".
score_value [requerido si metric_type es "score"]numberUn valor de puntuación. No es requerido cuando status es "WARN" o "ERROR".
boolean_value [requerido si metric_type es "boolean"]booleanUn valor booleano. No es requerido cuando status es "WARN" o "ERROR".
json_value [requerido si metric_type es "json"]Dict[key (string), value]Un valor de objeto JSON. No es requerido cuando status es "WARN" o "ERROR".
text_value [requerido si metric_type es "text"]stringUn valor de texto. Esto solo es compatible con eventos de comentarios y es útil para comentarios de texto libre.
statusstringEl resultado de la ejecución del evaluador. Los valores aceptados son "OK", "WARN" y "ERROR". Cuando "WARN" o "ERROR", el evaluador se omitió o falló, y no se requiere ningún campo de valor escrito (categorical_value, score_value, etcétera).
errorEvalMetricErrorDetalles estructurados del error. Obligatorio cuando status es "WARN" o "ERROR".
evaluacióncadenaUna evaluación de esta evaluación. Los valores aceptados son pass y fail.
razonamientocadenaUna explicación textual del resultado de la evaluación.
etiquetas[Etiqueta]Una lista de etiquetas para aplicar a esta métrica de evaluación en particular.

Para eventos de comentarios, proporcione exactamente uno de span_id, trace_id, session_id o feedback_join_key. Si proporciona eval_scope, debe coincidir con el campo de destino: span_id se asigna a "span", trace_id se asigna a "trace", session_id se asigna a "session" y feedback_join_key se asigna a "external".

Remitente

CampoTipoDescripción
id [obligatorio]cadenaIdentificador del usuario, agente u otra entidad que envió los comentarios.
tipocadenaCategoría del remitente. Los valores recomendados son user y agent.

JoinOn

CampoTipoDescripción
tramo[SpanContext]Identifica de forma única el tramo asociado con esta evaluación mediante el ID de tramo y el ID de traza.
etiqueta[TagContext]Identifica de forma única el tramo asociado con esta evaluación mediante un par de clave-valor de etiqueta.

SpanContext

CampoTipoDescripción
span_id [obligatorio]stringEl ID de tramo con el que está asociada esta evaluación. Debe ser una cadena decimal (por ejemplo, "20245611112024561111"). Si su instrumentación produce ID de tramo hexadecimales (como OpenTelemetry), conviértalos a decimal antes de enviarlos.
trace_id [obligatorio]stringEl ID de traza del tramo con el que está asociada esta evaluación. Debe ser una cadena decimal (por ejemplo, "13932955089405749200") o una cadena hexadecimal en minúsculas de 32 caracteres para IDs de traza de 128 bits.

TagContext

CampoTipoDescripción
key [obligatorio]stringEl nombre de la clave de etiqueta. Esta debe ser la misma clave utilizada al establecer la etiqueta en el tramo.
value [obligatorio]stringEl valor de la etiqueta. Este valor debe coincidir exactamente con un tramo con el par clave/valor de etiqueta especificado.

EvalMetricsRequestData

CampoTipoDescripción
tipo [obligatorio]stringIdentificador para la solicitud. Establecer en evaluation_metric.
atributos [obligatorio][Atributos]El cuerpo de la solicitud.

EvalMetricError

CampoTipoDescripción
tipocadenaEl tipo de error o excepción (por ejemplo, "ValueError").
mensajecadenaUna descripción del error legible por humanos.
traza de pilastringLa traza de pila, si está disponible.

Lecturas adicionales