次の方法で共有


GitHub Actions を使用して開発プロキシを使用して言語モデルの使用状況とコストを追跡する方法

概要
目標: GitHub Actions で LLM コストを追跡する
時間: 20 分
Plugins:OpenAITelemetryPlugin
前提条件:開発プロキシ、GitHub リポジトリを設定する

開発プロキシを GitHub Actions ワークフローに統合するには、 Dev Proxy Actions を使用します

この機能は現在プレビュー段階であり、開発プロキシの最新ベータ 版でのみ使用できます。

言語モデルの使用状況を追跡するための開発プロキシの構成

言語モデルの使用状況を追跡するには、 OpenAITelemetryPlugin を使用してプロジェクト内の開発プロキシ構成ファイルを構成します。 合計コストと使用状況の詳細を含むレポートを生成するには、 MarkdownReporter プラグインを含めます。 追跡する OpenAI 互換 API の URL を構成ファイルの urlsToWatch セクションに含めます。

ファイル: 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/*"
  ]
}

OpenAI 互換 API への要求を追跡する

OpenAI 互換 API からの要求を追跡するには、要求で使用される URL を開発プロキシ構成ファイルの urlsToWatch セクションに追加します。

ファイル: devproxyrc.json (urlsToWatch セクション)

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

次の表に、開発プロキシで追跡できる一般的な OpenAI 互換 API の一覧を示します。

プロバイダー 視聴する URL 説明
Anthropic https://api.anthropic.com/* クロード言語モデル
GitHub https://models.github.com/* GitHubのモデルAPI
マイクロソフト https://*.openai.azure.com/* Microsoft Azure OpenAI Service API
OpenAI https://api.openai.com/* GPT 言語モデル
x.ai https://api.x.ai/* Grok 言語モデル

言語モデルの使用コストを追跡するように OpenAITelemetryPlugin を構成する

言語モデルの使用コストを追跡するには、OpenAITelemetryPlugin の構成セクションを追加します。 コスト追跡を有効にするには、 includeCosts プロパティを true に設定します。 pricesFile プロパティにモデルの価格を含む JSON ファイルへのパスを指定します。

ファイル: 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",
      "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/*"
  ]
}

使用するモデルの入力コストと出力コスト (100 万トークンあたりの価格) を含む価格ファイルを作成します。 価格ファイル内のモデル名は、コストを正しく計算するために API 応答で返されるモデル名と一致する必要があります。

ファイル: 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
    }
  }
}

使用状況レポートのコストで使用される通貨を変更する

使用状況レポートのコストで使用される通貨を変更するには、OpenAITelemetryPlugin 構成で currency プロパティを設定します。 既定値は USD です。

ファイル: devproxyrc.json (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"
  }
}

使用状況レポートの見出しを変更する

既定では、 LLM usage report for <application> in <environment>のレポート見出しの作成に使用される形式です。 名前と環境の値を変更するには、OpenAITelemetryPlugin 構成で application プロパティと environment プロパティを設定します。 既定値はそれぞれ defaultdevelopmentです。

ファイル: devproxyrc.json (openAITelemetryPlugin セクション)

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

GitHub Actions ワークフローで開発プロキシを設定する

開発プロキシをインストールして起動するには、 setup アクションを使用します。 OpenAITelemetryPlugin が処理する要求をキャプチャするために記録モードで開始するには、 auto-record 入力を true に設定します。 ワークフロー ジョブの概要に使用状況レポートを含めるには、 $GITHUB_STEP_SUMMARY 変数を report-job-summary 入力に渡します。

ファイル: .github/workflows/your-workflow.yml (ステップ)

- 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

記録要求を開始する

アプリケーションと対話し、開発プロキシが記録できる要求をトリガーするには、 Playwright などのエンドツーエンドのテスト フレームワークを使用します。 セットアップ アクションでは、 http_proxyhttps_proxy 環境変数が自動的に設定されます。これにより、Dev Proxy 経由で要求がルーティングされます。

ファイル: .github/workflows/your-workflow.yml (手順)

- 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

Chromium ブラウザーに開発プロキシ証明書をインストールする

Linux ランナーで Chromium ベースのブラウザーを使用して Dev Proxy に記録する要求を生成する場合は、SSL エラーを回避するために開発プロキシ証明書をインストールする必要があります。 証明書をインストールするには、 chromium-cert アクションを使用します。

ファイル: .github/workflows/your-workflow.yml (手順)

- 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

使用状況レポートを成果物にアップロードする

使用状況レポートを生成するには、 stop アクションを使用して、ワークフロー内の開発プロキシを手動で停止します。 使用状況レポートを成果物としてアップロードするには、 actions/upload-artifact アクションを使用します。

ファイル: .github/workflows/your-workflow.yml (手順)

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

こちらも参照ください