Bagikan melalui


Memahami penggunaan model bahasa

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

  1. Buat file konfigurasi Proksi Dev baru menggunakan devproxy config new perintah atau menggunakan ekstensi Dev Proxy Toolkit.

  2. Tambahkan OpenAITelemetryPlugin ke 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
    }
    
  3. Konfigurasikan urlsToWatch properti 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
    }
    
  4. 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.

  1. Mulai Docker.

  2. Mulai kolektor OpenTelemetry.

    1. 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:latest
      

      Nota

      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.

    2. Buka dasbor .NET Aspire di browser Anda di http://localhost:18888/login?t=<code>.

  3. 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

  1. Buat permintaan ke titik akhir yang kompatibel dengan OpenAI yang Anda konfigurasi proksi Dev untuk menangkap.

  2. 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 emitted
    
  3. Di browser web, navigasikan ke dasbor OpenTelemetry.

    1. Dari menu samping, pilih Jejak.

    2. Pilih salah satu jejak yang bernama DevProxy.OpenAI.

    3. Pilih rentang permintaan.

    4. Di panel samping, jelajahi data penggunaan model bahasa.

      Cuplikan layar dasbor .NET Aspire memperlihatkan data telemetri OpenAI dalam rentang.

    5. Di panel samping, beralihlah ke Metrik.

    6. Dari daftar drop-down Sumber Daya , pilih DevProxy.OpenAI.

    7. Dari daftar metrik, pilih gen_ai.client.token.usage untuk melihat bagan yang menunjukkan jumlah token yang digunakan aplikasi Anda.

      Cuplikan layar dasbor .NET Aspire memperlihatkan bagan penggunaan token.

  4. 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

  1. Di folder yang sama tempat Anda membuat file konfigurasi Proksi Dev, buat file baru bernama prices.json.

  2. 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 input dan output adalah harga per juta token untuk token input dan output. Jika Anda menggunakan model yang tidak ada informasi harga, Dev Proxy tidak mencatat metrik biaya.

  3. Simpan perubahan Anda.

  4. Di editor kode, buka file konfigurasi Dev Proxy.

  5. OpenAITelemetryPlugin Perluas 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
    }
    
  6. Tambahkan bagian openAITelemetryPlugin ke 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 includeCosts diatur ke true dan properti pricesFile diatur ke nama file dengan informasi harga.

  7. Simpan perubahan Anda.

Lihat perkiraan biaya

  1. Mulai Dev Proksi.

  2. Buat permintaan ke titik akhir yang kompatibel dengan OpenAI yang Anda konfigurasi proksi Dev untuk menangkap.

  3. Di browser web, navigasikan ke dasbor OpenTelemetry.

    1. Dari panel samping, pilih Metrik.

    2. Dari daftar drop-down Sumber Daya , pilih DevProxy.OpenAI.

    3. Dari daftar metrik, pilih gen_ai.client.total_cost untuk melihat bagan yang menunjukkan perkiraan total biaya yang dikeluarkan aplikasi Anda untuk menggunakan model bahasa.

      Cuplikan layar dasbor .NET Aspire memperlihatkan bagan perkiraan biaya token.

  4. Hentikan Dev Proxy dengan menekan Ctrl + C di terminal tempat proksi berjalan.

  5. 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.