Bagikan melalui


Cara menggunakan Dev Proxy untuk melacak penggunaan dan biaya model bahasa dengan GitHub Actions

Sekilas
Tujuan: Melacak biaya LLM di GitHub Actions
Waktu: 20 menit
Plugins:OpenAITelemetryPlugin
Prasyarat:Menyiapkan Proksi Dev, repositori GitHub

Untuk mengintegrasikan Dev Proxy ke dalam alur kerja GitHub Actions Anda, gunakan Dev Proxy Actions.

Nota

Fungsionalitas ini saat ini dalam pratinjau dan hanya tersedia dalam versi beta terbaru dari Dev Proxy.

Mengonfigurasi Dev Proxy untuk melacak penggunaan model bahasa

Untuk melacak penggunaan model bahasa, konfigurasikan file konfigurasi Dev Proxy di proyek Anda dengan OpenAITelemetryPlugin. Untuk menghasilkan laporan dengan total biaya dan detail penggunaan, sertakan plugin MarkdownReporter . Sertakan URL API yang kompatibel dengan OpenAI yang ingin Anda lacak di bagian urlsToWatch file konfigurasi.

File: devproxyrc.json

{
  "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.2.0/rc.schema.json",
  "plugins": [
    {
      "name": "OpenAITelemetryPlugin",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll"
    },
    {
      "name": "MarkdownReporter",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll"
    }
  ],
  "urlsToWatch": [
    "https://*.openai.azure.com/*"
  ]
}

Melacak permintaan ke API yang kompatibel dengan OpenAI

Untuk melacak permintaan dari API yang kompatibel dengan OpenAI, tambahkan URL yang digunakan dalam permintaan Anda ke bagian urlsToWatch pada file konfigurasi Dev Proxy.

File: devproxyrc.json (bagian urlsToWatch)

{
  "urlsToWatch": [
    "https://*.openai.azure.com/*"
  ]
}

Tabel berikut ini mencantumkan beberapa API populer yang kompatibel dengan OpenAI yang dapat Anda lacak dengan Dev Proxy:

Penyedia URL untuk ditonton Deskripsi
Antropik https://api.anthropic.com/* Model-model bahasa Claude
GitHub https://models.github.com/* API Model GitHub
Microsoft https://*.openai.azure.com/* Microsoft Azure OpenAI Service API
OpenAI https://api.openai.com/* Model bahasa GPT
x.ai https://api.x.ai/* Model Bahasa Grok

Mengonfigurasi OpenAITelemetryPlugin untuk melacak biaya penggunaan model bahasa

Untuk melacak biaya penggunaan model bahasa, tambahkan bagian konfigurasi untuk OpenAITelemetryPlugin. Atur includeCosts properti ke true untuk mengaktifkan pelacakan biaya. Tentukan jalur ke file JSON dengan harga model pada properti pricesFile.

File: devproxyrc.json (dengan pemantauan biaya)

{
  "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.2.0/rc.schema.json",
  "plugins": [
    {
      "name": "OpenAITelemetryPlugin",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
      "configSection": "openAITelemetryPlugin"
    },
    {
      "name": "MarkdownReporter",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll"
    }
  ],
  "openAITelemetryPlugin": {
    "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.2.0/openaitelemetryplugin.schema.json",
    "includeCosts": true,
    "pricesFile": "prices.json"
  },
  "urlsToWatch": [
    "https://*.openai.azure.com/*"
  ]
}

Buat file harga dengan biaya input dan output (harga per juta token), untuk model yang Anda gunakan. Nama model dalam file harga harus cocok dengan nama model yang dikembalikan dalam respons API agar biaya dihitung dengan benar.

File: prices.json

{
  "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.2.0/openaitelemetryplugin.pricesfile.schema.json",
  "prices": {
    "gpt-4": {
      "input": 0.03,
      "output": 0.06
    }
  }
}

Mengubah mata uang yang digunakan dalam biaya laporan penggunaan

Untuk mengubah mata uang yang digunakan dalam biaya laporan penggunaan, atur currency properti dalam konfigurasi OpenAITelemetryPlugin. Nilai defaultnya adalah USD.

File: devproxyrc.json (bagian openAITelemetryPlugin)

{
  "openAITelemetryPlugin": {
    "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.2.0/openaitelemetryplugin.schema.json",
    "includeCosts": true,
    "pricesFile": "prices.json",
    "currency": "EUR"
  }
}

Mengubah judul laporan penggunaan

Secara default, format yang digunakan untuk membuat judul laporan .LLM usage report for <application> in <environment> Untuk mengubah nama dan nilai lingkungan, tetapkan properti application dan environment dalam konfigurasi OpenAITelemetryPlugin. Nilai defaultnya adalah default dan development, masing-masing.

File: devproxyrc.json (bagian openAITelemetryPlugin)

{
  "openAITelemetryPlugin": {
    "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.2.0/openaitelemetryplugin.schema.json",
    "application": "My application",
    "environment": "Staging"
  }
}

Menyiapkan Proksi Dev di alur kerja GitHub Actions

Untuk menginstal dan memulai Dev Proxy, gunakan setup perintah. Untuk memulai dalam mode rekaman untuk merekam dan memproses permintaan dari OpenAITelemetryPlugin, atur auto-record input ke true. Untuk menyertakan laporan penggunaan dalam ringkasan pekerjaan alur kerja, teruskan $GITHUB_STEP_SUMMARY variabel ke report-job-summary input.

File: .github/workflows/your-workflow.yml (langkah)

- name: Setup Dev Proxy
  uses: dev-proxy-tools/actions/setup@v1
  with:
    auto-record: true
    report-job-summary: $GITHUB_STEP_SUMMARY
    version: v1.0.0-beta.6

Memicu permintaan untuk merekam

Untuk berinteraksi dengan aplikasi Anda dan memicu permintaan yang dapat direkam Oleh Dev Proxy, gunakan kerangka kerja pengujian end-to-end seperti Playwright. Tindakan penyiapan secara otomatis mengatur variabel lingkungan http_proxy dan https_proxy, yang merutekan permintaan melalui Dev Proxy.

File: .github/workflows/your-workflow.yml (langkah-langkah)

- name: Setup Dev Proxy
  uses: dev-proxy-tools/actions/setup@v1
  with:
    auto-record: true
    report-job-summary: $GITHUB_STEP_SUMMARY

- name: Run Playwright tests
  run: npx playwright test

Menginstal sertifikat Proksi Dev di browser Chromium

Jika Anda menggunakan browser berbasis Chromium pada runner Linux untuk menghasilkan permintaan yang akan direkam oleh Proxy Dev, Anda perlu menginstal sertifikat Proxy Dev untuk menghindari kesalahan SSL. Untuk menginstal sertifikat, gunakan chromium-cert tindakan .

File: .github/workflows/your-workflow.yml (langkah-langkah)

- name: Setup Dev Proxy
  uses: dev-proxy-tools/actions/setup@v1
  with:
    auto-record: true
    report-job-summary: $GITHUB_STEP_SUMMARY

- name: Install Dev Proxy certificate for Chromium browsers
  uses: dev-proxy-tools/actions/chromium-cert@v1

- name: Run Playwright tests
  run: npx playwright test

Mengunggah laporan penggunaan ke artefak

Untuk menghasilkan laporan penggunaan, gunakan stop tindakan untuk menghentikan Proksi Dev secara manual di alur kerja Anda. Untuk mengunggah laporan penggunaan sebagai artefak, gunakan tindakan actions/upload-artifact.

File: .github/workflows/your-workflow.yml (langkah-langkah)

- name: Stop recording
  uses: dev-proxy-tools/actions/stop@v1

- name: Upload Dev Proxy reports
  uses: actions/upload-artifact@v4
  with:
    name: Reports
    path: ./*Reporter*

Lihat juga