概要
目標: 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 プロパティを設定します。 既定値はそれぞれ default と developmentです。
ファイル: 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_proxy と https_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*
こちらも参照ください
Dev Proxy