Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Na první pohled
Cílem: Monitorování využití LLM pomocí OpenTelemetry
Čas: 20 minut
Pluginy:OpenAITelemetryPlugin
Požadavky:Nastavení dev proxy serveru, Dockeru
Používání jazykových modelů nese náklady. Abyste pochopili, jak vaše aplikace používá velké jazykové modely, použijte dev Proxy k zachycení požadavků a odpovědí kompatibilních s OpenAI. Dev Proxy analyzuje požadavky a odpovědi a protokoluje telemetrická data, abyste pochopili, jak vaše aplikace používá velké jazykové modely. Tyto informace vám umožní optimalizovat aplikaci a snížit náklady.
Dev Proxy protokoluje data o využití jazykového modelu ve formátu OpenTelemetry. K vizualizaci dat můžete použít libovolný řídicí panel kompatibilní s OpenTelemetry. Můžete například použít řídicí panel .NET Aspire nebo OpenLIT. Telemetrická data zahrnují počet tokenů použitých v požadavku a odpovědi, náklady na použité tokeny a celkové náklady na všechny požadavky v průběhu relace.
Zachycení požadavků a odpovědí kompatibilních s OpenAI pomocí dev proxy serveru
K zachycení požadavků a odpovědí kompatibilních s OpenAI použijte OpenAITelemetryPlugin. Tento plug-in zaznamenává telemetrická data z požadavků kompatibilních s OpenAI a zachycených odpovědí a generuje data ve formátu OpenTelemetry.
Vytvoření konfiguračního souboru dev proxy
Pomocí příkazu
devproxy config newvytvořte nový konfigurační soubor Dev Proxy, nebo použijte rozšíření Dev Proxy Toolkit.Přidejte soubor
OpenAITelemetryPlugindo konfiguračního souboru.Soubor: devproxyrc.json
{ "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.1.0/rc.schema.json", "plugins": [ { "name": "OpenAITelemetryPlugin", "enabled": true, "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll" } ], "urlsToWatch": [ ], "logLevel": "information", "newVersionNotification": "stable", "showSkipMessages": true }urlsToWatchNakonfigurujte vlastnost tak, aby zahrnovala adresy URL požadavků kompatibilních s OpenAI, které chcete zachytit. Následující příklad zachytí požadavky na dokončení chatu Azure OpenAI.Soubor: devproxyrc.json (s adresami URL Azure OpenAI)
{ "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.1.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 }Uložte změny.
Spusťte OpenTelemetry kolektor a dev proxy
Důležité
Rozhraní .NET Aspire i OpenLIT vyžadují spuštění Dockeru. Pokud nemáte Nainstalovaný Docker, nainstalujte Docker podle pokynů v dokumentaci k Dockeru .
Spusťte Docker.
Spusťte kolektor OpenTelemetry.
Spuštěním následujícího příkazu spusťte kolekci a řídicí panel .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:latestPoznámka:
Po dokončení používání řídicího panelu .NET Aspire zastavte řídicí panel stisknutím kláves Ctrl + C v terminálu, kde jste řídicí panel spustili. Docker automaticky odebere kontejner, když ho zastavíte.
Otevřete řídicí panel .NET Aspire v prohlížeči na adrese
http://localhost:18888/login?t=<code>.
Pokud chcete spustit Dev Proxy, změňte pracovní adresář na složku, ve které jste vytvořili konfigurační soubor dev proxy serveru, a spusťte následující příkaz:
devproxy
Použití jazykového modelu a kontrola telemetrických dat
Odešlete požadavek na koncový bod kompatibilní s OpenAI, který jste nakonfigurovali tak, aby ho Dev Proxy zachytil.
Ověřte, že dev Proxy zachycoval požadavek a odpověď. V konzole, kde je spuštěný dev proxy server, by se měly zobrazit podobné informace:
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 emittedVe webovém prohlížeči přejděte na řídicí panel OpenTelemetry.
V boční nabídce vyberte Stopy.
Vyberte jednu z tras pojmenovanou
DevProxy.OpenAI.Vyberte rozsah požadavků.
Na bočním panelu prozkoumejte data o využití jazykového modelu.
Na bočním panelu přepněte na Metriky.
V rozevíracím seznamu Prostředek vyberte DevProxy.OpenAI.
V seznamu metrik vyberte gen_ai.client.token.usage a zobrazte graf zobrazující počet tokenů, které vaše aplikace používá.
Zastavte dev Proxy stisknutím kláves Ctrl + C v terminálu, kde je spuštěný.
Vysvětlení nákladů na jazykový model
Dev Proxy podporuje odhad nákladů na používání jazykových modelů. Pokud chcete službě Dev Proxy umožnit odhad nákladů, musíte zadat informace o cenách pro modely, které používáte.
Vytvoření souboru s cenami
Ve stejné složce, ve které jste vytvořili konfigurační soubor dev proxy, vytvořte nový soubor s názvem
prices.json.Do souboru přidejte následující obsah:
Soubor: prices.json
{ "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.1.0/openaitelemetryplugin.pricesfile.schema.json", "prices": { "o4-mini": { "input": 0.97, "output": 3.87 } } }Důležité
Klíč je název jazykového modelu.
inputaoutputvlastnosti představují ceny za milion tokenů pro vstupní a výstupní tokeny. Pokud používáte model, pro který nejsou k dispozici informace o cenách, Dev Proxy nezaznamenává metriky nákladů.Uložte změny.
V editoru kódu otevřete konfigurační soubor dev proxy.
Rozšiřte
OpenAITelemetryPluginreferenci o konfigurační oddíl:Soubor: devproxyrc.json (přidání configSection do modulu plug-in)
{ "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.1.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 }Přidejte oddíl
openAITelemetryPlugindo konfiguračního souboru:Soubor: devproxyrc.json (kompletní se sledováním nákladů)
{ "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.1.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/v2.1.0/openaitelemetryplugin.schema.json", "includeCosts": true, "pricesFile": "prices.json" }, "logLevel": "information", "newVersionNotification": "stable", "showSkipMessages": true }Všimněte si, že vlastnost
includeCostsje nastavena natruea vlastnostpricesFileje nastavena na název souboru s informacemi o cenách.Uložte změny.
Zobrazení odhadovaných nákladů
Spusťte dev proxy server.
Odešlete požadavek na koncový bod kompatibilní s OpenAI, který jste nakonfigurovali tak, aby ho Dev Proxy zachytil.
Ve webovém prohlížeči přejděte na řídicí panel OpenTelemetry.
Zastavte dev Proxy stisknutím kláves Ctrl + C v terminálu, kde je spuštěný.
Zastavte kolektor OpenTelemetry.
V terminálu, na kterém je spuštěn řídicí panel .NET Aspire, zastavte řídicí panel stisknutím kláves Ctrl + C . Docker automaticky odebere kontejner, když ho zastavíte.
Další kroky
Přečtěte si další informace o OpenAITelemetryPlugin.