A Alibaba Cloud define os campos de rastreamento de modelos de linguagem grande (LLM) com base no padrão OpenTelemetry e em conceitos do domínio de aplicações de LLM. Esses campos estendem atributos, recursos e eventos para descrever a semântica dos dados de rastreamento dessas aplicações. Eles capturam operações essenciais, como solicitações de entrada e saída do LLM e consumo de tokens. Além disso, fornecem dados semânticos ricos e contextualizados para cenários como Completion, Chat, Geração Aumentada por Recuperação (RAG), Agent e Tool Calling, o que permite rastrear e gerar relatórios eficazes.
Esta especificação semântica evolui junto com a comunidade. Se sua aplicação for desenvolvida em Python, colete manualmente os dados de observabilidade. Utilize o componente loongsuite-util-genai para integrar e coletar dados. Para mais detalhes, consulte o README.
As definições de campos no nível de span seguem os padrões abertos do OpenTelemetry. Para obter descrições detalhadas dos campos de rastreamento de nível superior armazenados no Managed Service for OpenTelemetry da Alibaba Cloud, consulte Parâmetros do Trace Explorer.
O SpanKind específico para LLM é um atributo, e não o span kind definido na especificação de rastreamento do OpenTelemetry. Esta especificação semântica estende as Convenções Semânticas de GenAI do OpenTelemetry. Essa especificação está em desenvolvimento ativo e pode sofrer alterações em futuras versões de manutenção.
Seção comum
Atributos
|
Chave do atributo |
Descrição |
Tipo |
Valor de exemplo |
Nível de obrigatoriedade |
|
|
ID da sessão |
string |
|
Obrigatório se disponível |
|
|
Identificador do usuário final |
string |
|
Obrigatório se disponível |
|
|
Tipo de operação [1] |
string |
|
Obrigatório |
|
|
Tipo secundário de operação [2] |
string |
|
Obrigatório |
|
|
Tipo de framework utilizado |
string |
|
Obrigatório se disponível |
[1] gen_ai.span.kind: Mapeia para gen_ai.operation.name da seguinte forma:
|
gen_ai.span.kind |
gen_ai.operation.name |
Descrição |
|
RETRIEVER |
|
Recuperação de documentos |
|
LLM |
|
Invocação de modelo |
|
EMBEDDING |
|
Embedding |
|
TOOL |
|
Chamada de ferramenta |
|
AGENT |
|
Invocação de agente |
|
RERANKER |
- |
Invocação de reranking |
|
CHAIN |
- |
Cadeia (unidade de invocação) |
|
TASK |
- |
Invocação de tarefa |
|
ENTRY |
- |
Marcador de invocação de entrada |
|
STEP |
- |
Marcador de rodada ReAct |
[2] gen_ai.operation.name: Tipo secundário de operação. Use uma das enumerações abaixo ou defina um valor personalizado:
|
Valor |
Descrição |
|
|
Operação de conclusão de chat |
|
|
Operação de criação de agente GenAI |
|
|
Operação de embedding de palavras |
|
|
Operação de chamada de ferramenta |
|
|
Operação de geração de conteúdo multimodal |
|
|
Operação de invocação de agente GenAI |
|
|
Operação de recuperação de documentos |
|
|
Operação de conclusão de texto |
Recursos
Chave do recurso | Descrição | Tipo | Valor de exemplo | Nível de obrigatoriedade |
| Nome da aplicação | string |
| Obrigatório |
| Workspace do Cloud Monitor | string |
| Obrigatório se disponível |
| ID do serviço do Cloud Monitor | string |
| Obrigatório se disponível |
| Origem da aplicação | string |
| Obrigatório se disponível |
| Recurso da aplicação | string |
| Obrigatório Nota
|
Chain
Uma Chain é uma ferramenta que conecta LLMs e outros componentes para executar tarefas complexas, como Recuperação, Embedding, invocações de LLM e Chains aninhadas.
Nomeie o span como chain {chain_name}. Caso não seja possível obter o chain_name, utilize apenas chain.
A comunidade OpenTelemetry ainda não definiu uma convenção semântica para este tipo de span. Atualmente, os spans de Chain aplicam-se apenas ao framework LangChain.
Atributos
|
Chave do atributo |
Descrição |
Tipo |
Exemplo |
Nível de obrigatoriedade |
|
|
Tipo de operação [1] |
string |
|
Obrigatório |
|
|
Tipo secundário de operação |
string |
|
Obrigatório se disponível |
|
|
Conteúdo de entrada |
string |
|
Recomendado |
|
|
Conteúdo da resposta |
string |
|
Recomendado |
|
|
Tempo até o primeiro token [2] |
integer |
1000000 |
Recomendado |
[1] gen_ai.span.kind: Enumeração dedicada para spanKind de LLM. Em uma Chain, este valor deve ser CHAIN.
[2] gen_ai.user.time_to_first_token: Tempo decorrido desde o recebimento da solicitação do usuário pelo servidor até o retorno do primeiro pacote de resposta. Unidade: nanossegundos.
Retriever
Um Retriever acessa bancos de dados vetoriais ou bases de dados para recuperar informações. Geralmente, ele complementa o contexto para melhorar a precisão e a eficiência das respostas do LLM.
Defina gen_ai.operation.name como retrieval. Quando gen_ai.operation.name for retrieval, deduza gen_ai.span.kind como RETRIEVER.
Nomeie o span como {gen_ai.operation.name} {gen_ai.data_source.id}. Outros formatos de nomenclatura são aceitáveis em casos especiais.
Atributos
|
Chave do atributo |
Descrição |
Tipo |
Exemplo |
Nível de obrigatoriedade |
|
|
Tipo de operação [1] |
string |
|
Obrigatório |
|
|
Tipo secundário de operação [2] |
string |
|
Obrigatório |
|
|
Identificador único da fonte de dados [3] |
string |
|
Obrigatório se disponível |
|
|
Provedor do LLM |
string |
|
Obrigatório se disponível |
|
|
Nome do modelo especificado na solicitação |
string |
|
Obrigatório se disponível |
|
|
Valor Top-K especificado na solicitação |
float |
|
Recomendado |
|
|
Lista de documentos recuperados [4] |
string |
|
Opcional |
|
|
Trecho de texto da consulta |
string |
|
Opcional |
[1] gen_ai.span.kind: Enumeração dedicada para spanKind de LLM. Em um Retriever, este valor deve ser RETRIEVER.
[2] gen_ai.operation.name: Tipo secundário de operação.
[3] gen_ai.data_source.id: ID único da fonte de dados. Refere-se à fonte de dados da qual os Agentes de IA ou aplicações RAG dependem. Pode ser um banco de dados externo, Object Storage Service, conjunto de documentos, site ou outro sistema de armazenamento.
[4] gen_ai.retrieval.documents: Registra a lista de documentos recuperados. Cada objeto de documento deve conter pelo menos estas propriedades: id (string): Identificador único do documento. score (número de ponto flutuante de precisão dupla): Pontuação de relevância.
Reranker
O Reranker avalia a relevância de vários documentos de entrada com base na consulta, classifica-os e pode retornar os documentos Top-K como entrada para o LLM.
Nomeie o span como rerank {reranker.model_name}. Se não for possível obter reranker.model_name, nomeie-o como rerank.
A comunidade OpenTelemetry ainda não definiu uma convenção semântica para este tipo de span.
Atributos
|
Chave do atributo |
Descrição |
Tipo |
Exemplo |
Nível de obrigatoriedade |
|
|
Tipo de operação [1] |
string |
|
Obrigatório |
|
|
Parâmetro de solicitação do Reranker |
string |
|
Opcional |
|
|
Nome do modelo usado pelo Reranker |
string |
|
Opcional |
|
|
Classificação após o reranking |
integer |
|
Opcional |
|
|
Metadados dos documentos de entrada [2] |
string |
|
Obrigatório |
|
|
Metadados dos documentos de saída [3] |
string |
|
Obrigatório |
[1] gen_ai.span.kind: Enumeração dedicada para spanKind de LLM. Em um Reranker, este valor deve ser RERANKER.
[2] reranker.output_document: Documentos de entrada para reranking. Estrutura de array JSON. Os metadados contêm informações básicas do documento, como caminho, nome do arquivo e origem.
[3] reranker.output_document: Documentos de saída após o reranking. Estrutura de array JSON. Os metadados contêm informações básicas do documento, como caminho, nome do arquivo e origem.
LLM
Um span de LLM representa uma chamada ou processo de inferência de LLM. Exemplos incluem o uso de um SDK ou OpenAPI para invocar diferentes LLMs para inferência ou geração de texto.
Defina gen_ai.operation.name como chat, generate_content ou text_completion. Quando gen_ai.operation.name for chat, generate_content ou text_completion, deduza gen_ai.span.kind como LLM.
Nomeie o span como {gen_ai.operation.name} {gen_ai.request.model}. Outros formatos de nomenclatura são aceitáveis em casos especiais.
Atributos
|
Chave do atributo |
Descrição |
Tipo |
Exemplo |
Nível de obrigatoriedade |
|
|
Tipo de operação [1] |
string |
|
Obrigatório |
|
|
Tipo secundário de operação [2] |
string |
|
Obrigatório |
|
|
Provedor do LLM |
string |
|
Obrigatório |
|
|
ID único da conversa [3] |
string |
|
Obrigatório se disponível |
|
|
Tipo de saída especificado na solicitação do LLM [4] |
string |
|
Obrigatório se disponível |
|
|
Número de gerações candidatas solicitadas na requisição do LLM |
int |
|
Obrigatório se diferente de 1 |
|
|
Nome do modelo especificado na solicitação do LLM |
string |
|
Obrigatório |
|
|
Seed especificada na solicitação do LLM |
string |
|
Obrigatório se disponível |
|
|
Penalidade de frequência definida na solicitação do LLM |
float |
|
Recomendado |
|
|
Contagem máxima de tokens especificada na solicitação do LLM |
integer |
|
Recomendado |
|
|
Penalidade de presença definida na solicitação do LLM |
float |
|
Recomendado |
|
|
Temperatura especificada na solicitação do LLM |
float |
|
Recomendado |
|
|
Valor Top-P especificado na solicitação do LLM |
float |
|
Recomendado |
|
|
Valor Top-K especificado na solicitação do LLM |
float |
|
Recomendado |
|
|
Sequências de parada para o LLM |
string[] |
|
Recomendado |
|
|
ID único gerado pelo LLM |
string |
|
Recomendado |
|
|
Nome do modelo usado para geração do LLM |
string |
|
Recomendado |
|
|
Motivo pelo qual o LLM parou a geração |
string[] |
|
Recomendado |
|
|
Latência do primeiro token para o LLM em cenários de resposta em streaming [5] |
integer |
|
Recomendado |
|
|
Tempo de inferência para modelos de raciocínio [6] |
integer |
|
Recomendado |
|
|
Número de tokens de entrada utilizados |
integer |
|
Recomendado |
|
|
Número de tokens de saída utilizados |
integer |
|
Recomendado |
|
|
Número total de tokens utilizados |
integer |
|
Recomendado |
|
|
Número de tokens gravados no cache do provedor do modelo [7] |
integer |
|
Recomendado |
|
|
Número de tokens lidos do cache do provedor do modelo [8] |
integer |
|
Recomendado |
|
|
Conteúdo de entrada do modelo [9] |
string |
|
Opcional |
|
|
Conteúdo de saída do modelo [10] |
string |
|
Opcional |
|
|
Conteúdo do prompt do sistema [11] |
string |
|
Opcional |
|
|
Lista de definições de ferramentas [12] |
string |
|
Opcional |
|
|
Latência de prefill do LLM. Unidade: nanossegundos |
integer |
|
Recomendado |
|
|
Latência de decode do LLM. Unidade: nanossegundos |
integer |
|
Recomendado |
|
|
Tempo de inferência do LLM. Equivale à soma dos tempos de prefill e decode. Unidade: nanossegundos |
integer |
|
Recomendado |
|
|
Dados multimodais envolvidos no conteúdo de entrada do LLM [13] |
string[] |
|
Recomendado |
|
|
Dados multimodais envolvidos no conteúdo de saída do LLM [14] |
string[] |
|
Recomendado |
[1] gen_ai.span.kind: Enumeração dedicada para spanKind de LLM. Em um span de LLM, este valor deve ser LLM.
[2] gen_ai.operation.name: Tipo secundário de operação.
[3] gen_ai.conversation.id: ID único da conversa. Colete este dado se puder obtê-lo facilmente.
[4] gen_ai.output.type: Colete este dado se a solicitação especificar um tipo de saída (como um formato de saída). Os valores devem ser uma das seguintes enumerações ou um valor personalizado:
|
Valor |
Descrição |
|
|
Imagem |
|
|
Objeto JSON bem formatado |
|
|
Voz |
|
|
Texto simples |
[5] gen_ai.user.time_to_first_token: Tempo decorrido desde o recebimento da solicitação do usuário pelo servidor até o retorno do primeiro pacote de resposta. Unidade: nanossegundos.
[6] gen_ai.response.reasoning_time: Duração do processo de raciocínio. Unidade: milissegundos.
[7] gen_ai.usage.cache_creation.input_tokens: Este valor já deve estar incluído em gen_ai.usage.input_tokens.
[8] gen_ai.usage.cache_read.input_tokens: Este valor já deve estar incluído em gen_ai.usage.input_tokens.
[9] gen_ai.input.messages: Registra o conteúdo de entrada para a chamada do LLM. As mensagens devem ser fornecidas na ordem em que foram enviadas ao modelo ou agente. Siga gen_ai.input.messages.json.
Colete apenas quando o flag OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT estiver ativado. Este flag é ativado por padrão.
[10] gen_ai.output.messages: Registra o conteúdo de saída do modelo. As mensagens devem ser fornecidas na ordem em que foram enviadas ao modelo ou agente. Siga gen_ai.output.messages.json.
Colete apenas quando o flag OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT estiver ativado. Este flag é ativado por padrão.
[11] gen_ai.system_instructions: Registra separadamente o conteúdo do prompt ou instrução do sistema. Use este campo se puder obter o prompt ou instrução do sistema de forma independente. Caso contrário, registre-o no atributo gen_ai.input.messages. Siga gen_ai.system_instructions.json.
Colete apenas quando o flag OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT estiver ativado. Este flag é ativado por padrão.
[12] gen_ai.tool.definitions: Registra as definições de ferramentas passadas ao LLM. Este atributo pode ser muito extenso. Por padrão, colete apenas os campos type e name. Colete todos os outros campos somente quando o flag OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT estiver ativado. Este flag é ativado por padrão.
[13] gen_ai.input.multimodal_metadata: Agrega dados multimodais referenciados no conteúdo de entrada do modelo. Inclui apenas mensagens UriPart. Siga gen_ai.input.messages.json.
Colete apenas quando o flag OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT estiver ativado. Este flag é ativado por padrão.
[14] gen_ai.output.multimodal_metadata: Agrega dados multimodais referenciados no conteúdo de saída do modelo. Inclui apenas mensagens UriPart. Siga gen_ai.output.messages.json.
Colete apenas quando o flag OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT estiver ativado. Este flag é ativado por padrão.
Registrar prompts, entradas e saídas
Você pode optar por não registrar as entradas do usuário e as respostas do modelo, registrá-las nos atributos do span ou registrá-las como eventos (logs). Para mais detalhes, consulte Controlar o comportamento de coleta do histórico de conversas de aplicações de LLM.
Embedding
Um embedding representa um processo único, como a incorporação de texto com um LLM. Posteriormente, é possível usar consultas de similaridade para otimizar a solução de problemas.
Defina gen_ai.operation.name como embeddings. Quando gen_ai.operation.name for embeddings, deduza gen_ai.span.kind como EMBEDDING.
Nomeie o span como {gen_ai.operation.name} {gen_ai.request.model}. Outros formatos de nomenclatura são aceitáveis em casos especiais.
Atributos
|
Chave do atributo |
Descrição |
Tipo |
Exemplo |
Nível de obrigatoriedade |
|
|
Tipo de operação [1] |
string |
|
Obrigatório |
|
|
Tipo secundário de operação [2] |
string |
|
Obrigatório |
|
|
Provedor do LLM |
string |
|
Obrigatório |
|
|
Nome do modelo especificado na solicitação |
string |
|
Obrigatório se disponível |
|
|
Número de dimensões esperado para a operação de embedding |
integer |
|
Recomendado |
|
|
Formatos de codificação solicitados para a operação de embedding |
string[] |
|
Recomendado |
|
|
Contagem de tokens consumidos pelo texto de entrada |
integer |
|
Opcional |
|
|
Contagem total de tokens consumidos pelo embedding |
integer |
|
Opcional |
[1] gen_ai.span.kind: Enumeração dedicada para spanKind de LLM. Em um span de Embedding, este valor deve ser EMBEDDING.
[2] gen_ai.operation.name: Tipo secundário de operação.
Tool
Spans de Tool representam chamadas para ferramentas externas. Exemplos incluem chamar uma calculadora ou solicitar a previsão do tempo mais recente de uma API meteorológica.
Defina gen_ai.operation.name como execute_tool. Quando gen_ai.operation.name for execute_tool, deduza gen_ai.span.kind como TOOL.
Nomeie o span como {gen_ai.operation.name} {gen_ai.tool.name}. Outros formatos de nomenclatura são aceitáveis em casos especiais.
Se a execução de uma ferramenta carregar uma habilidade, defina os campos relevantes gen_ai.skill.*. Cenários comuns incluem chamadas de ferramentas como load_skill, read_skill ou operações semelhantes.
Atributos
|
Chave do atributo |
Descrição |
Tipo |
Exemplo |
Nível de obrigatoriedade |
|
|
Tipo de operação [1] |
string |
|
Obrigatório |
|
|
Tipo secundário de operação [2] |
string |
|
Obrigatório |
|
|
ID da ferramenta |
string |
|
Recomendado |
|
|
Descrição da ferramenta |
string |
|
Recomendado |
|
|
Nome da ferramenta |
string |
Recomendado |
|
|
|
Tipo da ferramenta |
string |
|
Recomendado |
|
|
O identificador único da habilidade GenAI. |
string |
|
Obrigatório ao carregar uma habilidade. |
|
|
O nome da habilidade GenAI. |
string |
|
Obrigatório ao carregar uma habilidade. |
|
|
Uma descrição em formato livre da habilidade GenAI, fornecida pela aplicação. |
string |
|
recomendado |
|
|
A versão da habilidade GenAI. |
string |
|
recomendado |
|
|
Parâmetros de entrada da chamada de ferramenta [2] |
string |
|
Opcional |
|
|
Valor de retorno da chamada de ferramenta [3] |
string |
|
Opcional |
[1] gen_ai.span.kind: Enumeração dedicada para spanKind de LLM. Em um span de Tool, este valor deve ser TOOL.
[2] gen_ai.tool.call.arguments: Parâmetros de entrada da chamada de ferramenta, como uma string JSON. Colete apenas quando o flag OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT estiver ativado. Este flag é ativado por padrão.
[3] gen_ai.tool.call.result: Valor de retorno da chamada de ferramenta, como uma string JSON. Colete apenas quando o flag OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT estiver ativado. Este flag é ativado por padrão.
Agent
Um span de Agent representa um cenário de agente inteligente — uma Chain mais complexa. O agente usa resultados de inferência do LLM para decidir o próximo passo. Isso pode envolver múltiplas chamadas de LLM e Tool, progredindo passo a passo até alcançar uma resposta final.
Defina gen_ai.operation.name como invoke_agent ou create_agent. Quando gen_ai.operation.name for invoke_agent ou create_agent, deduza gen_ai.span.kind como AGENT.
Nomeie o span como {gen_ai.operation.name} {gen_ai.agent.name}. Outros formatos de nomenclatura são aceitáveis em casos especiais.
Atributos
|
Chave do atributo |
Descrição |
Tipo |
Exemplo |
Nível de obrigatoriedade |
|
|
Tipo de operação [1] |
string |
|
Obrigatório |
|
|
Tipo secundário de operação [2] |
string |
|
Obrigatório |
|
|
ID único da conversa [3] |
string |
|
Obrigatório se disponível |
|
|
Descrição do agente |
string |
|
Obrigatório se disponível |
|
|
Identificador único do agente |
string |
|
Obrigatório se disponível |
|
|
Nome do agente |
string |
|
Obrigatório se disponível |
|
|
Identificador único da fonte de dados [4] |
string |
|
Obrigatório se disponível |
|
|
Número de tokens de entrada utilizados |
integer |
|
Recomendado |
|
|
Número de tokens de saída utilizados |
integer |
|
Recomendado |
|
|
Número total de tokens utilizados |
integer |
|
Recomendado |
|
|
Número de tokens gravados no cache do provedor do modelo [5] |
integer |
|
Recomendado |
|
|
Número de tokens lidos do cache do provedor do modelo [6] |
integer |
|
Recomendado |
|
|
Conteúdo de entrada do modelo [7] |
string |
|
Opcional |
|
|
Conteúdo de saída do modelo [8] |
string |
|
Opcional |
|
|
Conteúdo do prompt do sistema [9] |
string |
|
Opcional |
|
|
Lista de definições de ferramentas [10] |
string |
|
Opcional |
|
|
Latência de resposta do primeiro token do agente |
integer |
|
Recomendado |
[1] gen_ai.span.kind: Enumeração dedicada para spanKind de LLM. Em um span de Agent, este valor deve ser AGENT.
[2] gen_ai.operation.name: Tipo secundário de operação.
[3] gen_ai.conversation.id: ID único da conversa. Colete este dado se puder obtê-lo facilmente.
[4] gen_ai.data_source.id: ID único da fonte de dados. Refere-se à fonte de dados da qual os Agentes de IA ou aplicações RAG dependem. Pode ser um banco de dados externo, Object Storage Service, conjunto de documentos, site ou outro sistema de armazenamento.
[5] gen_ai.usage.cache_creation.input_tokens: Este valor já deve estar incluído em gen_ai.usage.input_tokens.
[6] gen_ai.usage.cache_read.input_tokens: Este valor já deve estar incluído em gen_ai.usage.input_tokens.
[7] gen_ai.input.messages: Registra o conteúdo de entrada para a chamada do LLM. As mensagens devem ser fornecidas na ordem em que foram enviadas ao modelo ou agente. Siga gen_ai.input.messages.json.
Colete apenas quando o flag OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT estiver ativado. Este flag é ativado por padrão.
[8] gen_ai.output.messages: Registra o conteúdo de saída do modelo. As mensagens devem ser fornecidas na ordem em que foram enviadas ao modelo ou agente. Siga gen_ai.output.messages.json.
Colete apenas quando o flag OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT estiver ativado. Este flag é ativado por padrão.
[9] gen_ai.system_instructions: Registra separadamente o conteúdo do prompt ou instrução do sistema. Use este campo se puder obter o prompt ou instrução do sistema de forma independente. Caso contrário, registre-o no atributo gen_ai.input.messages. Siga gen_ai.system_instructions.json.
Colete apenas quando o flag OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT estiver ativado. Este flag é ativado por padrão.
[10] gen_ai.tool.definitions: Registra as definições de ferramentas passadas ao LLM. Este atributo pode ser muito extenso. Por padrão, colete apenas os campos type e name. Colete todos os outros campos somente quando o flag OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT estiver ativado. Este flag é ativado por padrão.
Task
Um span de Task representa uma chamada de método interno personalizado, como a invocação de uma função local ou outra lógica definida pela aplicação.
Nomeie o span como run_task {gen_ai.task.name}. Outros formatos de nomenclatura são aceitáveis em casos especiais.
A comunidade OpenTelemetry ainda não definiu uma convenção semântica para este tipo de span. Portanto, gen_ai.operation.name pode sofrer alterações.
Atributos
|
Chave do atributo |
Descrição |
Tipo |
Exemplo |
Nível de obrigatoriedade |
|
|
Tipo de operação [1] |
string |
|
Obrigatório |
|
|
Tipo secundário de operação |
string |
|
Obrigatório |
|
|
Parâmetros de entrada |
string |
|
Opcional |
|
|
Tipo MIME de entrada |
string |
|
Opcional |
|
|
Tipo MIME de saída |
string |
|
Opcional |
[1] gen_ai.span.kind: Enumeração dedicada para spanKind de LLM. Em um span de Task, este valor deve ser TASK.
Entry
Um span de Entry marca o ponto de entrada para uma chamada a um sistema de aplicação de IA.
Nomeie o span como enter_ai_application_system. Outros formatos de nomenclatura são aceitáveis em casos especiais.
A comunidade OpenTelemetry ainda não definiu uma convenção semântica para este tipo de span. Portanto, gen_ai.operation.name pode sofrer alterações.
Atributos
|
Chave do atributo |
Descrição |
Tipo |
Exemplo |
Nível de obrigatoriedade |
|
|
Tipo de operação [1] |
string |
|
Obrigatório |
|
|
Tipo secundário de operação |
string |
|
Recomendado |
|
|
ID da sessão |
string |
|
Obrigatório se disponível |
|
|
Identificador do usuário final |
string |
|
Obrigatório se disponível |
|
|
Conteúdo de entrada do modelo [2] |
string |
|
Opcional |
|
|
Conteúdo de saída do modelo [3] |
string |
|
Opcional |
|
|
Latência de resposta do primeiro token em cenários de resposta em streaming [4] |
integer |
|
Recomendado |
[1] gen_ai.span.kind: Enumeração dedicada para spanKind de LLM. Em um span de Entry, este valor deve ser ENTRY.
[2] gen_ai.input.messages: Registra o conteúdo de entrada para a chamada do LLM. As mensagens devem ser fornecidas na ordem em que foram enviadas ao modelo ou agente. Siga gen_ai.input.messages.json.
Colete apenas quando o flag OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT estiver ativado. Este flag é ativado por padrão.
[3] gen_ai.output.messages: Registra o conteúdo de saída do modelo. As mensagens devem ser fornecidas na ordem em que foram enviadas ao modelo ou agente. Siga gen_ai.output.messages.json.
Colete apenas quando o flag OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT estiver ativado. Este flag é ativado por padrão.
[4] gen_ai.response.time_to_first_token: Tempo decorrido desde o recebimento da solicitação do usuário pelo servidor até o retorno do primeiro pacote de resposta. Unidade: nanossegundos.
Etapa ReAct
Um span de Step marca um processo de iteração de Raciocínio-Ação dentro de um Agent.
Nomeie o span como react step. Outros formatos de nomenclatura são aceitáveis em casos especiais.
A comunidade OpenTelemetry ainda não definiu uma convenção semântica para este tipo de span. Portanto, gen_ai.operation.name pode sofrer alterações.
Atributos
|
Chave do atributo |
Descrição |
Tipo |
Exemplo |
Nível de obrigatoriedade |
|
|
Tipo de operação [1] |
string |
|
Obrigatório |
|
|
Tipo secundário de operação |
string |
|
Recomendado |
|
|
Motivo para o término desta rodada ReAct |
string |
|
Recomendado |
|
|
Número da rodada para esta iteração ReAct [2] |
integer |
|
Recomendado |
[1] gen_ai.span.kind: Enumeração dedicada para spanKind de LLM. Em um span de etapa ReAct, este valor deve ser STEP.
[2] gen_ai.react.round: Os números das rodadas ReAct devem começar em 1 e incrementar de 1 a cada iteração.