Partilhar via


Como usar o Dev Proxy para controlar o uso e os custos do modelo de linguagem com as Ações do GitHub

De relance
Objetivo: Acompanhar os custos dos LLMs no GitHub Actions
Tempo: 20 minutos
Plugins:OpenAITelemetryPlugin
Pré-requisitos:Configurar Dev Proxy, repositório GitHub

Para integrar o Dev Proxy nos seus fluxos de trabalho do GitHub Actions, use Dev Proxy Actions.

Observação

Esta funcionalidade está atualmente em pré-visualização e apenas disponível na versão beta mais recente do Dev Proxy.

Configurar o Dev Proxy para controlar o uso do modelo de idioma

Para controlar o uso do modelo de linguagem, configure um arquivo de configuração do Dev Proxy em seu projeto com o OpenAITelemetryPlugin. Para gerar um relatório com os custos totais e detalhes de uso, inclua o plug-in MarkdownReporter . Inclua a URL da API compatível com OpenAI que você deseja rastrear na urlsToWatch seção do arquivo de configuração.

Ficheiro: 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/*"
  ]
}

Rastreie solicitações para APIs compatíveis com OpenAI

Para rastrear solicitações de qualquer API compatível com OpenAI, adicione as URLs usadas em suas solicitações à urlsToWatch seção do arquivo de configuração do Dev Proxy.

Ficheiro: devproxyrc.json (secção urlsToWatch)

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

A tabela a seguir lista algumas APIs populares compatíveis com OpenAI que você pode rastrear com o Dev Proxy:

Fornecedor URL para assistir Descrição
Antrópico https://api.anthropic.com/* Modelos de linguagem Claude
GitHub https://models.github.com/* API de modelos do GitHub
Microsoft https://*.openai.azure.com/* API de serviço OpenAI do Microsoft Azure
OpenAI https://api.openai.com/* Modelos de linguagem GPT
x.ai https://api.x.ai/* Modelos de linguagem Grok

Configure o OpenAITelemetryPlugin para controlar os custos de uso do modelo de idioma

Para controlar os custos de uso do modelo de idioma, adicione uma seção de configuração para o OpenAITelemetryPlugin. Defina a propriedade includeCosts como true para ativar o controlo de custos. Especifique o caminho para um ficheiro JSON com os preços do modelo na propriedade pricesFile.

Ficheiro: devproxyrc.json (com acompanhamento de custos)

{
  "$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/*"
  ]
}

Crie um arquivo de preços com os custos de entrada e saída (preço por milhão de tokens), para os modelos que você usa. O nome do modelo no arquivo de preços deve corresponder ao nome do modelo retornado nas respostas da API para que os custos sejam calculados corretamente.

Ficheiro: 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
    }
  }
}

Alterar a moeda usada nos custos do relatório de uso

Para alterar a moeda usada nos custos do relatório de uso, configure a propriedade currency na configuração OpenAITelemetryPlugin. O valor predefinido é USD.

Ficheiro: devproxyrc.json (secção 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"
  }
}

Alterar o título do relatório de utilização

Por padrão, o formato usado para criar o título do relatório de LLM usage report for <application> in <environment>. Para alterar o nome e os valores do ambiente, defina as propriedades application e environment na configuração do OpenAITelemetryPlugin. Os valores padrão são default e development, respectivamente.

Ficheiro: devproxyrc.json (secção openAITelemetryPlugin)

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

Configurar o Proxy de Desenvolvimento no fluxo de trabalho das Ações do GitHub

Para instalar e iniciar o Dev Proxy, utilize a ação setup. Para capturar solicitações para o processamento pelo OpenAITelemetryPlugin, inicie no modo de gravação definindo a entrada de auto-record para true. Para incluir o relatório de uso no resumo do trabalho, passe uma $GITHUB_STEP_SUMMARY variável para uma report-job-summary entrada.

Ficheiro: .github/workflows/your-workflow.yml (passo)

- 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

Acionar solicitações para gravar

Para interagir com seu aplicativo e disparar solicitações que o Dev Proxy pode gravar, use uma estrutura de teste de ponta a ponta como o Playwright. A ação de configuração define automaticamente as variáveis de ambiente http_proxy e https_proxy, que encaminham as solicitações através do Dev Proxy.

Ficheiro: .github/workflows/your-workflow.yml (passos)

- 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

Instalar o certificado Dev Proxy nos navegadores Chromium

Se estiver a usar navegadores baseados no Chromium em executores Linux para gerar solicitações que o Dev Proxy registe, é necessário instalar o certificado Dev Proxy para evitar erros SSL. Para instalar o certificado, use a chromium-cert ação.

Ficheiro: .github/workflows/your-workflow.yml (passos)

- 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

Carregar o relatório de uso para artefatos

Para gerar o relatório de uso, utilize a ação para interromper manualmente o Dev Proxy no seu fluxo de trabalho. Para carregar o relatório de uso como um artefato, use a ação actions/upload-artifact.

Ficheiro: .github/workflows/your-workflow.yml (passos)

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

Consulte também