Partilhar via


OpenAITelemetryPlugin

Registra dados de telemetria OpenAI das solicitações e respostas compatíveis com OpenAI intercetadas.

Captura de tela do painel do .NET Aspire mostrando dados de telemetria do OpenAI.

Captura de tela do painel do OpenLIT mostrando dados de telemetria do OpenAI.

Exemplo de configuração

{
  "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.0.0/rc.schema.json",
  "plugins": [
    {
      "name": "OpenAITelemetryPlugin",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
      "configSection": "openAITelemetryPlugin"
    }
  ],
  "openAITelemetryPlugin": {
    "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.0.0/openaitelemetryplugin.schema.json",
    "application": "My app",
    "includeCosts": true,
    "pricesFile": "prices.json"
  }
}

Propriedades de configuração

Propriedade Descrição Predefinido
application Nome do aplicativo que emite as solicitações. Conectado os dados de telemetria para agrupar o uso por aplicativo. default
currency A moeda na qual os preços são registrados. Exibido em gráficos. USD
environment Ambiente no qual o aplicativo está sendo executado. Registrado nos dados de telemetria para agrupar o uso por ambiente. development
exporterEndpoint A URL do ponto de extremidade OpenTelemetry para o qual enviar os dados. Deve ser HTTP Protobuf endpoint. http://localhost:4318
includeCompletion Se a conclusão deve ser incluída nos dados de telemetria. true
includeCosts Se os custos devem ser incluídos nos dados de telemetria. Requer a especificação do arquivo de preços. false
includePrompt Se o prompt deve ser incluído nos dados de telemetria. true
pricesFile Caminho para o arquivo com informações de preços. null

Exemplo de arquivo de preços

{
  "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.0.0/openaitelemetryplugin.pricesfile.schema.json",
  "prices": {
    "gpt-3.5-turbo": {
      "input": 0.0015,
      "output": 0.002
    },
    "gpt-4": {
      "input": 0.03,
      "output": 0.06
    }
  }
}

Propriedades do arquivo de preços

Propriedade Descrição Predefinido
prices Preços para os modelos. A chave é o nome do modelo e o valor é o objeto de preços do modelo. {}

Objeto de preços do modelo

Cada objeto de preços de modelo tem as seguintes propriedades:

Propriedade Descrição Obrigatório Valor predefinido Valor da amostra
input O preço por milhão de tokens para tokens de entrada/prompt. Sim 0.0 0.03
output O preço por milhão de tokens para tokens de saída/conclusão. Sim 0.0 0.06

Opções da linha de comandos

Nenhum

Observações

O OpenAITelemetryPlugin registra dados OpenTelemetry das solicitações e respostas compatíveis com OpenAI que interceta. Sem ter que instrumentar seu aplicativo com OpenTelemetry, você pode entender rapidamente como seu aplicativo usa modelos de linguagem grandes. Além disso, se você fornecer o arquivo de preços para os modelos que você usa, você também pode ver os custos relacionados ao LLM que seu aplicativo incorre.

Para cada solicitação e resposta intercetada, o plug-in registra uma extensão. Além disso, ele registra três métricas:

  • gen_ai.client.token.usage - o número de fichas utilizadas no pedido e na resposta
  • gen_ai.usage.cost - o custo dos tokens utilizados no pedido e na resposta
  • gen_ai.usage.total_cost - o custo total de todos os pedidos ao longo de uma sessão

Importante

As métricas de custo só são registradas se você definir a includeCosts propriedade e true fornecer o arquivo de preços. Caso contrário, o plug-in não registrará as métricas.

Para visualizar os dados de telemetria gravados, você pode usar qualquer painel compatível com OpenTelemetry. Por exemplo, você pode usar o painel do .NET Aspire ou o OpenLIT.

Importante

Para ver os dados, inicie o painel antes de emitir uma solicitação compatível com OpenAI. Caso contrário, não há nenhum coletor OpenTelemetry para receber os dados que o plug-in envia.

Próximo passo