OpenAITelemetryPlugin

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

Captura de tela do painel Aspire mostrando dados de telemetria openai.

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

Exemplo de configuração

{
  "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.3.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.3.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/v2.3.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 Aspire ou 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