Compartilhar via


OpenAITelemetryPlugin

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

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

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

Definição da instância do plug-in

{
  "name": "OpenAITelemetryPlugin",
  "enabled": true,
  "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
  "configSection": "openAITelemetryPlugin"
}

Exemplo de configuração

{
  "openAITelemetryPlugin": {
    "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/openaitelemetryplugin.schema.json",
    "application": "My app",
    "includeCosts": true,
    "pricesFile": "prices.json"
  }
}

Propriedades de configuração

Propriedade Descrição Padrão
application Nome do aplicativo que emite as solicitações. Registrados nos 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á em execução. Registrados 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 o ponto de extremidade http protobuf. http://localhost:4318
includeCompletion Se deseja incluir a conclusão nos dados de telemetria. true
includeCosts Se deve incluir os custos nos dados de telemetria. Requer especificar o arquivo de preços. false
includePrompt Se deseja incluir o prompt 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/v1.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 Padrão
prices Preços dos modelos. A chave é o nome do modelo e o valor é objeto de preços de modelo. {}

Objeto de preços de modelo

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

Propriedade Descrição Obrigatório Valor padrão Valor de 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 de linha de comando

Nenhum

Observações

O OpenAITelemetryPlugin registra dados OpenTelemetry das solicitações e respostas compatíveis com OpenAI interceptadas por ele. Sem precisar instrumentar seu aplicativo com o 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 usados, também poderá ver os custos relacionados à LLM que seu aplicativo incorre.

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

  • gen_ai.client.token.usage - o número de tokens usados na solicitação e resposta
  • gen_ai.usage.cost - o custo dos tokens usados na solicitação e resposta
  • gen_ai.usage.total_cost - o custo total de todas as solicitações ao longo de uma sessão

Importante

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

Para exibir 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 haverá um coletor OpenTelemetry para receber os dados que o plug-in envia.

Próxima etapa