Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Sekilas
Tujuan: Memantau penggunaan LLM dengan OpenTelemetry
Waktu: 20 menit
Plugins:OpenAITelemetryPlugin
Prasyarat:Menyiapkan Dev Proxy, Docker
Menggunakan model bahasa menimbulkan biaya. Untuk memahami bagaimana aplikasi Anda menggunakan model bahasa besar, gunakan Dev Proxy untuk mencegat permintaan dan respons yang kompatibel dengan OpenAI. Dev Proxy menganalisis permintaan dan respons dan log data telemetri untuk membantu Anda memahami bagaimana aplikasi Anda menggunakan model bahasa besar. Informasi ini memungkinkan Anda mengoptimalkan aplikasi dan mengurangi biaya.
Dev Proxy mencatat data penggunaan model bahasa dalam format OpenTelemetry. Anda dapat menggunakan dasbor yang kompatibel dengan OpenTelemetry untuk memvisualisasikan data. Misalnya, Anda dapat menggunakan dasbor .NET Aspire atau OpenLIT. Data telemetri mencakup jumlah token yang digunakan dalam permintaan dan respons, biaya token yang digunakan, dan total biaya semua permintaan selama sesi.
Mencegat permintaan dan respons yang kompatibel dengan OpenAI menggunakan Dev Proxy
Untuk mencegat permintaan dan respons yang kompatibel dengan OpenAI, gunakan OpenAITelemetryPlugin. Plugin ini mencatat data telemetri dari permintaan dan respons yang disadap serta kompatibel dengan OpenAI, dan menghasilkan data OpenTelemetry.
Buat file konfigurasi Dev Proxy
Buat file konfigurasi Proksi Dev baru menggunakan
devproxy config newperintah atau menggunakan ekstensi Dev Proxy Toolkit.Tambahkan
OpenAITelemetryPluginke dalam file konfigurasi.File: 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 }Konfigurasikan
urlsToWatchproperti untuk menyertakan URL permintaan yang kompatibel dengan OpenAI yang ingin Anda cegat. Berikut adalah contoh yang mencegat permintaan ke penyelesaian sesi chat Azure OpenAI.File: devproxyrc.json (dengan URL Azure OpenAI)
{ "$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 }Simpan perubahan Anda.
Mulai OpenTelemetry Collector dan Dev Proxy
Penting
Baik .NET Aspire maupun OpenLIT mengharuskan Docker untuk berjalan. Jika Anda tidak menginstal Docker, ikuti instruksi dalam dokumentasi Docker untuk menginstal Docker.
Mulai Docker.
Mulai kolektor OpenTelemetry.
Jalankan perintah berikut untuk memulai pengumpul data dan dasbor .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:latestNota
Setelah selesai menggunakan dasbor .NET Aspire, hentikan dasbor dengan menekan Ctrl + C di terminal tempat Anda memulai dasbor. Docker secara otomatis menghapus kontainer saat Anda menghentikannya.
Buka dasbor .NET Aspire di browser Anda di
http://localhost:18888/login?t=<code>.
Untuk memulai Dev Proxy, ubah direktori kerja ke folder tempat Anda membuat file konfigurasi Dev Proxy dan jalankan perintah berikut:
devproxy
Menggunakan model bahasa dan memeriksa data telemetri
Buat permintaan ke titik akhir yang kompatibel dengan OpenAI yang Anda konfigurasi proksi Dev untuk menangkap.
Verifikasi bahwa Dev Proxy telah mencegat permintaan dan respons. Di konsol, tempat Dev Proxy berjalan, Anda akan melihat informasi serupa:
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 emittedDi browser web, navigasikan ke dasbor OpenTelemetry.
Dari menu samping, pilih Jejak.
Pilih salah satu jejak yang bernama
DevProxy.OpenAI.Pilih rentang permintaan.
Di panel samping, jelajahi data penggunaan model bahasa.
Di panel samping, beralihlah ke Metrik.
Dari daftar drop-down Sumber Daya , pilih DevProxy.OpenAI.
Dari daftar metrik, pilih gen_ai.client.token.usage untuk melihat bagan yang menunjukkan jumlah token yang digunakan aplikasi Anda.
Hentikan Dev Proxy dengan menekan Ctrl + C di terminal tempat proksi berjalan.
Memahami biaya model bahasa
Dev Proxy mendukung memperkirakan biaya penggunaan model bahasa. Untuk memungkinkan Dev Proxy memperkirakan biaya, Anda perlu memberikan informasi tentang harga untuk model yang Anda gunakan.
Membuat file harga
Di folder yang sama tempat Anda membuat file konfigurasi Proksi Dev, buat file baru bernama
prices.json.Tambahkan konten berikut ke file:
File: 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 } } }Penting
Kuncinya adalah nama model bahasa. Properti
inputdanoutputadalah harga per juta token untuk token input dan output. Jika Anda menggunakan model yang tidak ada informasi harga, Dev Proxy tidak mencatat metrik biaya.Simpan perubahan Anda.
Di editor kode, buka file konfigurasi Dev Proxy.
OpenAITelemetryPluginPerluas referensi dengan bagian konfigurasi:File: devproxyrc.json (tambahkan configSection ke plugin)
{ "$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 }Tambahkan bagian
openAITelemetryPluginke file konfigurasi:File: devproxyrc.json (lengkap dengan pelacakan biaya)
{ "$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 }Perhatikan bahwa properti
includeCostsdiatur ketruedan propertipricesFilediatur ke nama file dengan informasi harga.Simpan perubahan Anda.
Lihat perkiraan biaya
Mulai Dev Proksi.
Buat permintaan ke titik akhir yang kompatibel dengan OpenAI yang Anda konfigurasi proksi Dev untuk menangkap.
Di browser web, navigasikan ke dasbor OpenTelemetry.
Hentikan Dev Proxy dengan menekan Ctrl + C di terminal tempat proksi berjalan.
Hentikan pengumpul OpenTelemetry.
Di terminal tempat dasbor .NET Aspire berjalan, tekan Ctrl + C untuk menghentikan dasbor. Docker secara otomatis menghapus kontainer saat Anda menghentikannya.
Langkah selanjutnya
Pelajari selengkapnya tentang OpenAITelemetryPlugin.