Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
A utilização de modelos linguísticos implica custos. Para entender como seu aplicativo usa modelos de linguagem grandes, use o Dev Proxy para intercetar solicitações e respostas compatíveis com OpenAI. O Dev Proxy analisa as solicitações e respostas e registra dados de telemetria para ajudá-lo a entender como seu aplicativo usa modelos de linguagem grandes. Esta informação permite-lhe otimizar a sua aplicação e reduzir custos.
O Dev Proxy registra dados de uso do modelo de idioma no formato OpenTelemetria. Você pode usar qualquer painel compatível com OpenTelemetry para visualizar os dados. Por exemplo, você pode usar o painel do .NET Aspire ou o OpenLIT. Os dados de telemetria incluem o número de tokens usados na solicitação e resposta, o custo dos tokens usados e o custo total de todas as solicitações ao longo de uma sessão.
Intercete solicitações e respostas compatíveis com OpenAI usando o Dev Proxy
Para intercetar solicitações e respostas compatíveis com OpenAI, use o OpenAITelemetryPlugin. Este plugin regista dados de telemetria das solicitações e respostas que sejam compatíveis com OpenAI que interceta e emite dados OpenTelemetry.
Criar um arquivo de configuração do Dev Proxy
Crie um novo arquivo de configuração do Dev Proxy usando o
devproxy config newcomando ou a extensão do Dev Proxy Toolkit.Adicione o
OpenAITelemetryPluginao arquivo de configuração.{ "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/rc.schema.json", "plugins": [ { "name": "OpenAITelemetryPlugin", "enabled": true, "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll" } ], "urlsToWatch": [ ], "logLevel": "information", "newVersionNotification": "stable", "showSkipMessages": true }Configure a
urlsToWatchpropriedade para incluir as URLs das solicitações compatíveis com OpenAI que você deseja intercetar. O exemplo a seguir interceta solicitações para concluir o chat do Azure OpenAI.{ "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/rc.schema.json", "plugins": [ { "name": "OpenAITelemetryPlugin", "enabled": true, "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll" } ], "urlsToWatch": [ "https://*.openai.azure.com/openai/deployments/*/chat/completions*", "https://*.cognitiveservices.azure.com/openai/deployments/*/chat/completions*" ], "logLevel": "information", "newVersionNotification": "stable", "showSkipMessages": true }Salve suas alterações.
Iniciar o coletor OpenTelemetry e o Dev Proxy
Importante
Tanto o .NET Aspire quanto o OpenLIT exigem que o Docker seja executado. Se você não tiver o Docker instalado, siga as instruções na documentação do Docker para instalar o Docker.
Inicie o Docker.
Inicie o coletor OpenTelemetry .
Execute o seguinte comando para iniciar o coletor e o painel do .NET Aspire OpenTelemetry :
docker run --rm -it -p 18888:18888 -p 4317:18889 -p 4318:18890 --name aspire-dashboard mcr.microsoft.com/dotnet/aspire-dashboard:latestObservação
Quando terminar de usar o painel do .NET Aspire , pare o painel pressionando Ctrl + C no terminal onde você iniciou o painel. O Docker remove automaticamente o contêiner quando você o para.
Abra o painel do .NET Aspire em seu navegador em
http://localhost:18888/login?t=<code>.
Para iniciar o Dev Proxy, altere o diretório de trabalho para a pasta onde você criou o arquivo de configuração do Dev Proxy e execute o seguinte comando:
devproxy
Usar modelo de linguagem e inspecionar dados de telemetria
Faça uma solicitação para o endpoint compatível com OpenAI que configurou o Dev Proxy para intercetar.
Verifique se o Dev Proxy intercetou a solicitação e a resposta. No console, onde o Dev Proxy está sendo executado, você verá informações semelhantes:
info Dev Proxy API listening on http://127.0.0.1:8897... info Dev Proxy listening on 127.0.0.1:8000... Hotkeys: issue (w)eb request, (r)ecord, (s)top recording, (c)lear screen Press CTRL+C to stop Dev Proxy req ╭ POST https://some-resource.cognitiveservices.azure.com/openai/deployments/some-deployment/chat/completions?api-version=2025-01-01-preview time │ 19/05/2025 07:53:38 +00:00 pass │ Passed through proc ╰ OpenAITelemetryPlugin: OpenTelemetry information emittedNo navegador da Web, navegue até o painel OpenTelemetria.
No menu lateral, selecione Rastreamentos.
Selecione um dos traços chamados
DevProxy.OpenAI.Selecione a extensão da solicitação.
No painel lateral, explore os dados de uso do modelo de idioma.
No painel lateral, selecione Métricas.
Na lista suspensa Recurso, selecione DevProxy.OpenAI.
Na lista de métricas, selecione gen_ai.client.token.usage para ver um gráfico mostrando o número de tokens que seu aplicativo usa.
Pare o Dev Proxy pressionando Ctrl + C no terminal onde ele está sendo executado.
Compreender os custos do modelo linguístico
O Dev Proxy suporta estimar os custos do uso de modelos de linguagem. Para permitir que o Dev Proxy estime custos, você precisa fornecer informações sobre preços para os modelos que você usa.
Criar um arquivo de preços
Na mesma pasta onde você criou o arquivo de configuração do Dev Proxy, crie um novo arquivo chamado
prices.json.Adicione o seguinte conteúdo ao ficheiro:
{ "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/openaitelemetryplugin.pricesfile.schema.json", "prices": { "o4-mini": { "input": 0.97, "output": 3.87 } } }Importante
A chave é o nome do modelo de linguagem. As propriedades
inputeoutputreferem-se aos preços por milhão de tokens para os tokens de entrada e saída. Se você usar um modelo para o qual não há informações de preço, o Dev Proxy não registrará as métricas de custo.Salve suas alterações.
No editor de códigos, abra o arquivo de configuração do Dev Proxy.
Amplie a referência
OpenAITelemetryPlugincom uma seção de configuração:{ "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/rc.schema.json", "plugins": [ { "name": "OpenAITelemetryPlugin", "enabled": true, "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll", "configSection": "openAITelemetryPlugin" } ], "urlsToWatch": [ "https://*.openai.azure.com/openai/deployments/*/chat/completions*", "https://*.cognitiveservices.azure.com/openai/deployments/*/chat/completions*" ], "logLevel": "information", "newVersionNotification": "stable", "showSkipMessages": true }Adicione a
openAITelemetryPluginseção ao arquivo de configuração:{ "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/rc.schema.json", "plugins": [ { "name": "OpenAITelemetryPlugin", "enabled": true, "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll", "configSection": "openAITelemetryPlugin" } ], "urlsToWatch": [ "https://*.openai.azure.com/openai/deployments/*/chat/completions*", "https://*.cognitiveservices.azure.com/openai/deployments/*/chat/completions*" ], "openAITelemetryPlugin": { "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/openaitelemetryplugin.schema.json", "includeCosts": true, "pricesFile": "prices.json" }, "logLevel": "information", "newVersionNotification": "stable", "showSkipMessages": true }Observe a
includeCostspropriedade definida comotruee apricesFilepropriedade definida como o nome do arquivo com informações de preços.Salve suas alterações.
Ver custos estimados
Inicie o Dev Proxy.
Faça uma solicitação para o endpoint compatível com OpenAI que configurou o Dev Proxy para intercetar.
No navegador da Web, navegue até o painel OpenTelemetria.
Pare o Dev Proxy pressionando Ctrl + C no terminal onde ele está sendo executado.
Pare o coletor OpenTelemetry .
No terminal onde o painel do .NET Aspire está sendo executado, pressione Ctrl + C para parar o painel. O Docker remove automaticamente o contêiner quando você o para.
Próximos passos
Saiba mais sobre o OpenAITelemetryPlugin.