Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bir bakışta
Hedef: OpenTelemetry ile LLM kullanımını izleme
Süre: 20 dakika
Eklentiler:OpenAITelemetryPlugin
Önkoşullar:Geliştirme Proxy'sini ayarlama, Docker
Dil modellerinin kullanılması maliyete neden olur. Uygulamanızın büyük dil modellerini nasıl kullandığını anlamak için, OpenAI uyumlu istekleri ve yanıtları kesmek için Dev Proxy kullanın. Dev Proxy, uygulamanızın büyük dil modellerini nasıl kullandığını anlamanıza yardımcı olmak için istekleri ve yanıtları analiz eder ve telemetri verilerini günlüğe kaydeder. Bu bilgiler uygulamanızı iyileştirmenize ve maliyetleri azaltmanıza olanak tanır.
Geliştirme Proxy'si, dil modeli kullanım verilerini OpenTelemetry formatında kaydeder. Verileri görselleştirmek için OpenTelemetry uyumlu herhangi bir panoyu kullanabilirsiniz. Örneğin, .NET Aspire panosunu veya OpenLIT'i kullanabilirsiniz. Telemetri verileri istek ve yanıtta kullanılan belirteç sayısını, kullanılan belirteçlerin maliyetini ve oturum boyunca tüm isteklerin toplam maliyetini içerir.
Dev Proxy kullanarak OpenAI uyumlu istekleri ve yanıtları kesme
OpenAI uyumlu istekleri ve yanıtları kesmek için OpenAITelemetryPlugin'i kullanın. Bu eklenti, araya girdiği ve yakaladığı OpenAI uyumlu istek ve yanıtlardan telemetri verilerini günlüğe kaydeder ve OpenTelemetry verilerini yayar.
Dev Proxy yapılandırma dosyası oluşturma
komutunu veya Dev Proxy Toolkit uzantısını
devproxy config newkullanarak yeni bir Dev Proxy yapılandırma dosyası oluşturun.öğesini
OpenAITelemetryPluginyapılandırma dosyasına ekleyin.Dosya: devproxyrc.json
{ "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.0.0/rc.schema.json", "plugins": [ { "name": "OpenAITelemetryPlugin", "enabled": true, "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll" } ], "urlsToWatch": [ ], "logLevel": "information", "newVersionNotification": "stable", "showSkipMessages": true }Özellik ayarlarını, engellemek istediğiniz OpenAI uyumlu isteklerin URL'lerini içerecek şekilde yapılandırın. Aşağıdaki örnek, Azure OpenAI sohbet tamamlama isteklerine müdahale eder.
Dosya: devproxyrc.json (Azure OpenAI URL'leri ile)
{ "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.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 }Değişikliklerinizi kaydedin.
OpenTelemetry toplayıcısını ve Dev Proxy'yi başlatma
Önemli
Hem .NET Aspire hem de OpenLIT, Docker'ın çalışmasını gerektirir. Docker yüklü değilse Docker'ı yüklemek için Docker belgelerindeki yönergeleri izleyin.
Docker'ı başlatın.
OpenTelemetry toplayıcısını başlatın.
.NET Aspire OpenTelemetry toplayıcısını ve panosunu başlatmak için aşağıdaki komutu çalıştırın:
docker run --rm -it -p 18888:18888 -p 4317:18889 -p 4318:18890 --name aspire-dashboard mcr.microsoft.com/dotnet/aspire-dashboard:latestUyarı
.NET Aspire panosunu kullanmayı bitirdiğinizde, panoyu başlattığınız terminalde Ctrl + C tuşlarına basarak panoyu durdurun. Docker, kapsayıcıyı durdurduğunuzda otomatik olarak kaldırır.
Tarayıcınızda
http://localhost:18888/login?t=<code>adresinde .NET Aspire panosunu açın.
Dev Proxy'yi başlatmak için çalışma dizinini Dev Proxy yapılandırma dosyasını oluşturduğunuz klasörle değiştirin ve aşağıdaki komutu çalıştırın:
devproxy
Dil modelini kullanma ve telemetri verilerini inceleme
Dev Proxy'yi isteği yakalamak için yapılandırdığınız OpenAI uyumlu uç noktaya bir istekte bulunun.
Dev Proxy'nin isteği ve yanıtı kestiğini doğrulayın. Dev Proxy'nin çalıştığı konsolda benzer bilgiler görmeniz gerekir:
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 emittedWeb tarayıcısında OpenTelemetry panosuna gidin.
Yan menüden İzlemeler'i seçin.
DevProxy.OpenAIadlı izlerden birini seçin.İstek aralığını seçin.
Yan panelde dil modeli kullanım verilerini keşfedin.
Yan panelde Ölçümler'e geçin.
Kaynak açılan listesinde DevProxy.OpenAI öğesini seçin.
Ölçüm listesinden gen_ai.client.token.usage öğesini seçerek uygulamanızın kullandığı belirteç sayısını gösteren bir grafik görüntüleyin.
Çalıştırıldığı terminalde Ctrl + C tuşlarına basarak Dev Proxy'yi durdurun.
Dil modeli maliyetlerini anlama
Dev Proxy, dil modellerini kullanmanın maliyetlerinin tahminini destekler. Dev Proxy'nin maliyetleri tahmin etmesine izin vermek için kullandığınız modellerin fiyatları hakkında bilgi sağlamanız gerekir.
Fiyat dosyası oluşturma
Dev Proxy yapılandırma dosyasını oluşturduğunuz klasörde adlı
prices.jsonyeni bir dosya oluşturun.Dosyaya aşağıdaki içeriği ekleyin:
Dosya: prices.json
{ "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.0.0/openaitelemetryplugin.pricesfile.schema.json", "prices": { "o4-mini": { "input": 0.97, "output": 3.87 } } }Önemli
Anahtar, dil modelinin adıdır.
inputveoutputözellikleri, giriş ve çıkış belirteçleri için milyon belirteç başına fiyatlardır. Fiyat bilgisi olmayan bir model kullanıyorsanız Dev Proxy maliyet ölçümlerini günlüğe kaydetmez.Değişikliklerinizi kaydedin.
Kod düzenleyicisinde Dev Proxy yapılandırma dosyasını açın.
Başvuruyu
OpenAITelemetryPluginbir yapılandırma bölümüyle genişletin.Dosya: devproxyrc.json (eklentiye configSection ekleme)
{ "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.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 }openAITelemetryPluginBölümü yapılandırma dosyasına ekleyin:Dosya: devproxyrc.json (maliyet izleme ile birlikte)
{ "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.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/v2.0.0/openaitelemetryplugin.schema.json", "includeCosts": true, "pricesFile": "prices.json" }, "logLevel": "information", "newVersionNotification": "stable", "showSkipMessages": true }özelliğinin
includeCostsolarak,trueözelliğininpricesFileise fiyat bilgilerini içeren dosyanın adına ayarlandığına dikkat edin.Değişikliklerinizi kaydedin.
Tahmini maliyetleri görüntüleme
Geliştirme Proxy'sini başlat.
Dev Proxy'yi isteği yakalamak için yapılandırdığınız OpenAI uyumlu uç noktaya bir istekte bulunun.
Web tarayıcısında OpenTelemetry panosuna gidin.
Çalıştırıldığı terminalde Ctrl + C tuşlarına basarak Dev Proxy'yi durdurun.
OpenTelemetry toplayıcısını durdurun.
.NET Aspire panosunun çalıştığı terminalde, panoyudurdurmak için Ctrl + C tuşlarına basın. Docker, kapsayıcıyı durdurduğunuzda otomatik olarak kaldırır.
Sonraki Adımlar
OpenAITelemetryPlugin hakkında daha fazla bilgi edinin.