LLM Observability no está disponible en el sitio seleccionado () en este momento.
Información general
La API de LLM Observability proporciona una interfaz para que los desarrolladores envíen información relacionada con trazas (traces) y tramos (spans) de LLM a Datadog. Si tu aplicación está escrita en Python, puedes utilizar el SDK de LLM Observability para Python.
API de tramos
Utiliza este endpoint para enviar tramos a Datadog. Para obtener más información sobre los tipos disponibles de tramos, consulta Tipos de tramo.
{"data":{"type":"span","attributes":{"ml_app":"weather-bot","session_id":"1","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 tiene éxito, la API responde con un código de red 202 y un cuerpo vacío.
Normas de la API
Error
Campo
Tipo
Descripción
message
cadena
El mensaje de error.
stack
cadena
El stack trace.
tipo
cadena
El tipo de error.
E/S
Campo
Tipo
Descripción
value
cadena
Valor de entrada o salida. Si no se establece, este valor se deduce de los mensajes o documentos.
Lista de documentos. Esto sólo debe utilizarse como salida para los tramos de recuperación
Nota: Cuando sólo 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:
Si existe un mensaje con role=user, se utiliza el contenido del último mensaje como input.value.
Si no hay ningún mensaje con función user, input.value se deduce concatenando los campos de contenido de todos los mensajes, independientemente de sus roles.
Mensaje
Campo
Tipo
Descripción
content [obligatorio]
cadena
El cuerpo del mensaje.
rol
cadena
El rol de la entidad.
Documento
Campo
Tipo
Descripción
texto
cadena
El texto del documento.
nombre
cadena
El nombre del documento.
score
float
La puntuación asociada a este documento.
id
cadena
El ID de este documento.
Meta
Campo
Tipo
Descripción
kind [obligatorio]
cadena
El tipo de tramo: "agent", "workflow", "llm", "tool", "task", "embedding", o "retrieval".
Dict[key (string), value] donde el valor es un valor float, bool o string
Datos sobre el tramo que no están relacionados con la entrada o la salida. Utiliza las siguientes claves de metadatos para tramos de LLM: temperature, max_tokens, model_name y model_provider.
Métricas
Campo
Tipo
Descripción
input_tokens
float64
El número de tokens de entrada. Sólo válido para tramos de LLM.
output_tokens
float64
El número de tokens de salida. Sólo válido para tramos de LLM.
total_tokens
float64
El número total de tokens asociados al tramo. Sólo válido para tramos de LLM.
time_to_first_token
float64
El tiempo en segundos que tarda en devolverse el primer token de salida en aplicaciones LLM basadas en streaming. Establecido para tramos raíz.
time_per_output_token
float64
El tiempo en segundos que tarda en devolverse el token de salida en aplicaciones de LLM basadas en streaming. Establecido para tramos raíz.
Tramo
Campo
Tipo
Descripción
name [obligatorio]
cadena
El nombre del tramo.
span_id [obligatorio]
cadena
Un ID exclusivo de tramo.
trace_id [obligatorio]
cadena
Un identificador único compartido por todos los tramos de la misma traza.
parent_id [obligatorio]
cadena
ID de la entidad principal directa del tramo. Si el tramo es un tramo raíz, parent_id debe ser undefined.
Una lista de etiquetas de nivel superior para aplicar a cada tramo.
session_id
cadena
La sesión a la que pertenece la lista de tramos. También se puede anular o establecer en tramos individuales.
Etiqueta
Las etiquetas deben formatearse como una lista de cadenas (por ejemplo, ["user_handle:dog@gmail.com", "app_version:1.0.0"]). Su finalidad es almacenar información contextual en torno al tramo.
Directrices para la asignación de nombres a las aplicaciones
El nombre de tu aplicación (el valor de DD_LLMOBS_ML_APP) debe ser una cadena Unicode en minúsculas. Puede contener los caracteres que se indican a continuación:
Caracteres alfanuméricos
Guiones bajos
Signos de resta
Dos puntos
Puntos
Barras
El nombre puede tener hasta 193 caracteres y no puede contener guiones bajos contiguos o finales.
API de evaluaciones
Utiliza este endpoint para enviar evaluaciones asociadas a un determinado tramo a Datadog.
Endpoint
https://api./api/intake/llm-obs/v1/eval-metric
Método
POST
Las evaluaciones requieren un span_id y trace_id.
Si no utilizas el SDK de LLM Observability, envía los archivos span_id y trace_id que utilizó para crear tu tramo objetivo.
Si utilizas el SDK de LLM Observability, obtén los atributos span_id y trace_id buscando tu tramo objetivo y accediendo a los atributos root_span.span_id y root_span.trace_id.