Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Att använda språkmodeller medför kostnader. Om du vill förstå hur ditt program använder stora språkmodeller använder du Dev Proxy för att fånga upp OpenAI-kompatibla begäranden och svar. Dev Proxy analyserar telemetridata för begäranden och svar och loggar för att hjälpa dig att förstå hur ditt program använder stora språkmodeller. Med den här informationen kan du optimera ditt program och minska kostnaderna.
Dev Proxy loggar språkmodellanvändningsdata i OpenTelemetry-format. Du kan använda valfri OpenTelemetry-kompatibel instrumentpanel för att visualisera data. Du kan till exempel använda .NET Aspire-instrumentpanelen eller OpenLIT. Telemetridata innehåller antalet token som används i begäran och svaret, kostnaden för de token som används och den totala kostnaden för alla begäranden under en session.
Fånga upp OpenAI-kompatibla begäranden och svar med Dev Proxy
Om du vill fånga upp OpenAI-kompatibla begäranden och svar använder du OpenAITelemetryPlugin. Det här plugin-programmet loggar telemetridata från OpenAI-kompatibla begäranden och svar som den fångar upp och genererar OpenTelemetry-data.
Skapa en Dev Proxy-konfigurationsfil
Skapa en ny Dev Proxy-konfigurationsfil med kommandot
devproxy config neweller med tillägget Dev Proxy Toolkit.Lägg till
OpenAITelemetryPlugini konfigurationsfilen.{ "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/rc.schema.json", "plugins": [ { "name": "OpenAITelemetryPlugin", "enabled": true, "pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll" } ], "urlsToWatch": [ ], "logLevel": "information", "newVersionNotification": "stable", "showSkipMessages": true }Konfigurera egenskapen
urlsToWatchså att den innehåller URL:erna för de OpenAI-kompatibla begäranden som du vill fånga upp. I följande exempel fångas begäranden upp till Azure OpenAI-chattens slutföranden.{ "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/rc.schema.json", "plugins": [ { "name": "OpenAITelemetryPlugin", "enabled": true, "pluginPath": "~appFolder/plugins/dev-proxy-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 }Spara ändringarna.
Starta OpenTelemetry-insamlaren och Dev Proxy
Viktigt!
Både .NET Aspire och OpenLIT kräver att Docker körs. Om du inte har Docker installerat följer du anvisningarna i Docker-dokumentationen för att installera Docker.
Starta Docker.
Starta OpenTelemetry-insamlaren.
Kör följande kommando för att starta .NET Aspire OpenTelemetry-insamlaren och instrumentpanelen:
docker run --rm -it -p 18888:18888 -p 4317:18889 -p 4318:18890 --name aspire-dashboard mcr.microsoft.com/dotnet/aspire-dashboard:latestAnmärkning
När du är klar med .NET Aspire-instrumentpanelen stoppar du instrumentpanelen genom att trycka på Ctrl + C i terminalen där du startade instrumentpanelen. Docker tar automatiskt bort containern när du stoppar den.
Öppna instrumentpanelen .NET Aspire i webbläsaren på
http://localhost:18888/login?t=<code>.
Om du vill starta Dev Proxy ändrar du arbetskatalogen till mappen där du skapade dev proxy-konfigurationsfilen och kör följande kommando:
devproxy
Använda språkmodell och inspektera telemetridata
Skicka en begäran till den OpenAI-kompatibla slutpunkten som du konfigurerade Dev Proxy för att fånga upp.
Kontrollera att Dev Proxy snappade upp begäran och svaret. I konsolen, där Dev Proxy körs, bör du se liknande information:
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 emittedI webbläsaren navigerar du till instrumentpanelen OpenTelemetry.
På sidomenyn väljer du Spårningar.
Välj en av spårningarna med namnet
DevProxy.OpenAI.Välj begärandeintervallet.
I sidopanelen utforskar du användningsdata för språkmodellen.
I sidopanelen växlar du till Mått.
I listrutan Resurs väljer du DevProxy.OpenAI.
I listan med mått väljer du gen_ai.client.token.usage för att se ett diagram som visar antalet token som programmet använder.
Stoppa Dev Proxy genom att trycka på Ctrl + C i terminalen där den körs.
Förstå kostnader för språkmodeller
Dev Proxy stöder beräkning av kostnaderna för att använda språkmodeller. För att dev proxy ska kunna beräkna kostnaderna måste du ange information om priserna för de modeller som du använder.
Skapa en prisfil
I samma mapp där du skapade dev proxy-konfigurationsfilen skapar du en ny fil med namnet
prices.json.Lägg till följande innehåll i filen:
{ "$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 } } }Viktigt!
Nyckeln är namnet på språkmodellen. Egenskaperna
inputochoutputär priserna per miljon token för indata- och utdatatoken. Om du använder en modell där det inte finns någon prisinformation loggar Dev Proxy inte kostnadsmåtten.Spara ändringarna.
Öppna konfigurationsfilen dev proxy i kodredigeraren.
Utöka referensen
OpenAITelemetryPluginmed ett konfigurationsavsnitt:{ "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/rc.schema.json", "plugins": [ { "name": "OpenAITelemetryPlugin", "enabled": true, "pluginPath": "~appFolder/plugins/dev-proxy-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 }Lägg till avsnittet
openAITelemetryPlugini konfigurationsfilen:{ "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/rc.schema.json", "plugins": [ { "name": "OpenAITelemetryPlugin", "enabled": true, "pluginPath": "~appFolder/plugins/dev-proxy-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 }Observera egenskapen
includeCostsinställd påtrueoch egenskapenpricesFileinställd på namnet på filen med prisinformation.Spara ändringarna.
Visa uppskattade kostnader
Starta Dev Proxy.
Skicka en begäran till den OpenAI-kompatibla slutpunkten som du konfigurerade Dev Proxy för att fånga upp.
I webbläsaren navigerar du till instrumentpanelen OpenTelemetry.
Stoppa Dev Proxy genom att trycka på Ctrl + C i terminalen där den körs.
Stoppa OpenTelemetry-samlaren.
I terminalen där .NET Aspire-instrumentpanelen körs trycker du på Ctrl + C för att stoppa instrumentpanelen. Docker tar automatiskt bort containern när du stoppar den.
Nästa steg
Läs mer om OpenAITelemetryPlugin.