Udostępnij przez


Jak używać Dev Proxy do śledzenia użycia i kosztów modelu językowego za pomocą GitHub Actions

Na pierwszy rzut oka
Celem: Śledzenie kosztów usługi LLM w funkcji GitHub Actions
Czas: 20 minut
Plugins:OpenAITelemetryPlugin
Wymagania wstępne:konfigurowanie serwera proxy dev, repozytorium GitHub

Aby zintegrować usługę Dev Proxy z przepływami pracy funkcji GitHub Actions, użyj funkcji Dev Proxy Actions.

Uwaga / Notatka

Ta funkcja jest obecnie dostępna w wersji zapoznawczej i jest dostępna tylko w najnowszej wersji beta serwera proxy deweloperskiego.

Konfigurowanie proxy deweloperskiego do śledzenia użycia modelu językowego

Aby śledzić użycie modelu językowego, skonfiguruj plik konfiguracji serwera proxy dev w projekcie za pomocą biblioteki OpenAITelemetryPlugin. Aby wygenerować raport ze szczegółami łącznych kosztów i użycia, dołącz wtyczkę MarkdownReporter . Dołącz adres URL API zgodnego z OpenAI, który chcesz śledzić, w sekcji urlsToWatch pliku konfiguracji.

Plik: 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"
    },
    {
      "name": "MarkdownReporter",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll"
    }
  ],
  "urlsToWatch": [
    "https://*.openai.azure.com/*"
  ]
}

Śledzenie żądań do interfejsów API zgodnych z platformą OpenAI

Aby śledzić żądania z dowolnego interfejsu API zgodnego z interfejsem OpenAI, dodaj adresy URL używane w żądaniach do urlsToWatch sekcji pliku konfiguracji serwera proxy dev.

Plik: devproxyrc.json (sekcja urlsToWatch)

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

W poniższej tabeli wymieniono niektóre popularne interfejsy API zgodne z protokołem OpenAI, które można śledzić za pomocą serwera proxy deweloperskiego:

Dostawca Adres URL do obejrzenia Opis
Antropiczny https://api.anthropic.com/* Modele językowe Claude'a
GitHub https://models.github.com/* Interfejs API modeli usługi GitHub
Microsoft https://*.openai.azure.com/* Interfejs API usługi Microsoft Azure OpenAI
OpenAI https://api.openai.com/* Modele języka GPT
x.ai https://api.x.ai/* Modele językowe Grok

Skonfiguruj bibliotekę OpenAITelemetryPlugin, aby śledzić koszty użycia modelu językowego

Aby śledzić koszty użycia modelu językowego, dodaj sekcję konfiguracji dla pliku OpenAITelemetryPlugin. Ustaw właściwość includeCosts na true, aby włączyć śledzenie kosztów. Określ ścieżkę do pliku JSON z cenami modelu we właściwości pricesFile.

Plik: devproxyrc.json (z śledzeniem kosztów)

{
  "$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"
    },
    {
      "name": "MarkdownReporter",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll"
    }
  ],
  "openAITelemetryPlugin": {
    "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.0.0/openaitelemetryplugin.schema.json",
    "includeCosts": true,
    "pricesFile": "prices.json"
  },
  "urlsToWatch": [
    "https://*.openai.azure.com/*"
  ]
}

Utwórz plik cen z kosztami wejściowymi i wyjściowymi (cena za milion tokenów) dla używanych modeli. Nazwa modelu w pliku cen musi być zgodna z nazwą modelu zwróconą w odpowiedziach interfejsu API, aby koszty zostały obliczone poprawnie.

Plik: prices.json

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

Zmienianie waluty używanej w kosztach raportu użycia

Aby zmienić walutę, której używa się do określania kosztów w raporcie użycia, ustaw właściwość currency w konfiguracji OpenAITelemetryPlugin. Wartość domyślna to USD.

Plik: devproxyrc.json (sekcja openAITelemetryPlugin)

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

Zmienianie nagłówka raportu użycia

Domyślnie format używany do tworzenia nagłówka raportu .LLM usage report for <application> in <environment> Aby zmienić nazwę i wartości środowiska, ustaw właściwości application i environment w konfiguracji OpenAITelemetryPlugin. Wartości domyślne to default i development, odpowiednio.

Plik: devproxyrc.json (sekcja openAITelemetryPlugin)

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

Konfiguracja proxy dla deweloperów w przepływie pracy GitHub Actions

Aby zainstalować i uruchomić Dev Proxy, użyj akcji setup. Aby rozpocząć w trybie nagrywania, aby przechwytywać żądania do przetworzenia przez wtyczkę OpenAITelemetryPlugin, ustaw auto-record dane wejściowe na true. Aby uwzględnić raport użycia w podsumowaniu zadania przepływu pracy, przekaż zmienną $GITHUB_STEP_SUMMARY do wejścia report-job-summary.

Plik: .github/workflows/your-workflow.yml (krok)

- 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

Wyzwalanie żądań rejestrowania

Aby wchodzić w interakcje z aplikacją i wyzwalać żądania, które może rejestrować serwer proxy deweloperów, użyj kompleksowej platformy testowania, takiej jak Playwright. Akcja konfiguracji automatycznie ustawia zmienne środowiskowe http_proxy i https_proxy, które kierują żądania za pośrednictwem Dev Proxy.

Plik: .github/workflows/your-workflow.yml (kroki)

- 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

Instalacja certyfikatu Dev Proxy w przeglądarkach Chromium

Jeśli używasz przeglądarek opartych na Chromium w środowiskach Linux do generowania żądań dla Dev Proxy do rejestrowania, musisz zainstalować certyfikat Dev Proxy, aby uniknąć błędów SSL. Aby zainstalować certyfikat, użyj chromium-cert akcji .

Plik: .github/workflows/your-workflow.yml (kroki)

- 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

Przesłać raport użycia do artefaktów

Aby wygenerować raport użycia, użyj stop akcji, aby ręcznie zatrzymać Dev Proxy w przepływie pracy. Aby przekazać raport użycia jako artefakt, użyj czynności actions/upload-artifact.

Plik: .github/workflows/your-workflow.yml (kroki)

- 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*

Zobacz także