Поделиться через


Как использовать прокси-сервер разработки для отслеживания использования языковой модели и затрат с помощью GitHub Actions

На первый взгляд
Цель: Отслеживание затрат LLM в GitHub Actions
Время: 20 минут
Подключаемые модули:OpenAITelemetryPlugin
Необходимые условия:настройка прокси-сервера разработки, репозитория GitHub

Чтобы интегрировать Dev Proxy в рабочие процессы GitHub Actions, используйте Dev Proxy Actions.

Замечание

Эта функция в настоящее время находится в предварительной версии и доступна только в последней бета-версии Dev Proxy.

Настройка прокси-сервера разработки для отслеживания использования языковой модели

Чтобы отслеживать использование языковой модели, настройте файл конфигурации прокси разработки в проекте с OpenAITelemetryPlugin. Чтобы создать отчет с общими затратами и сведениями об использовании, включите подключаемый модуль MarkdownReporter . Добавьте URL-адрес совместимого API OpenAI, который требуется отслеживать в urlsToWatch разделе файла конфигурации.

Файл: devproxyrc.json

{
  "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.3.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/*"
  ]
}

Отслеживание запросов к совместимым API OpenAI

Чтобы отслеживать запросы из любого совместимого API OpenAI, добавьте URL-адреса, используемые в запросах, в urlsToWatch раздел файла конфигурации прокси-сервера разработки.

Файл: devproxyrc.json (раздел urlsToWatch)

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

В следующей таблице перечислены некоторые популярные API, совместимые с OpenAI, которые можно отслеживать с помощью Прокси разработки:

Поставщик URL-адрес для просмотра Описание
Антропик https://api.anthropic.com/* Языковые модели Claude
GitHub https://models.github.com/* API моделей GitHub
Корпорация Майкрософт https://*.openai.azure.com/* API службы OpenAI в Microsoft Azure
Открытый ИИ https://api.openai.com/* Языковые модели GPT
x.ai https://api.x.ai/* Языковые модели Grok

Настройка OpenAITelemetryPlugin для отслеживания затрат на использование языковой модели

Чтобы отслеживать затраты на использование языковой модели, добавьте раздел конфигурации для OpenAITelemetryPlugin. Установите свойство includeCosts в true для включения отслеживания затрат. Укажите путь к JSON-файлу с ценами на модель в свойстве pricesFile .

Файл: devproxyrc.json (с отслеживанием затрат)

{
  "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.3.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.3.0/openaitelemetryplugin.schema.json",
    "includeCosts": true,
    "pricesFile": "prices.json"
  },
  "urlsToWatch": [
    "https://*.openai.azure.com/*"
  ]
}

Создайте файл цен с затратами на входные и выходные данные (цена за миллион токенов) для используемых моделей. Имя модели в файле цен должно соответствовать имени модели, возвращаемой в ответах API для правильной вычисления затрат.

Файл: prices.json

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

Изменение валюты, используемой в отчетах об использовании

Чтобы изменить валюту, используемую для оценки затрат в отчете об использовании, задайте свойство currency в конфигурации OpenAITelemetryPlugin. Значение по умолчанию — USD.

Файл: devproxyrc.json (раздел openAITelemetryPlugin)

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

Изменение заголовка отчета об использовании

По умолчанию формат, используемый для создания заголовка LLM usage report for <application> in <environment>отчета. Чтобы изменить значения имени и среды, задайте свойства application и environment в конфигурации OpenAITelemetryPlugin. Значения по умолчанию — default и developmentсоответственно.

Файл: devproxyrc.json (раздел openAITelemetryPlugin)

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

Настройка прокси-сервера разработки в рабочем процессе GitHub Actions

Чтобы установить и запустить Dev Proxy, используйте действие 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

Установка сертификата прокси-сервера dev в браузерах Chromium

Если вы используете браузеры на движке Chromium на исполнителях Linux для создания запросов, которые прокси-сервер разработки должен записать, необходимо установить сертификат прокси-сервера разработки, чтобы избежать ошибок 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 для ручной остановки Dev Proxy в рамках рабочего процесса. Чтобы отправить отчет об использовании в качестве артефакта, выполните действие 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*

См. также