Compartir a través de


Cómo usar Dev Proxy para rastrear el uso y los costos del modelo de lenguaje con GitHub Actions

De un vistazo
Objetivo: Seguimiento de los costos de LLM en Acciones de GitHub
Tiempo: 20 minutos
Plugins:OpenAITelemetryPlugin
Requisitos previos:Configuración del proxy de desarrollo, repositorio de GitHub

Para integrar Dev Proxy en los flujos de trabajo de GitHub Actions, use Dev Proxy Actions.

Nota:

Esta funcionalidad está actualmente en versión preliminar y solo está disponible en la versión beta más reciente del proxy de desarrollo.

Configuración del proxy de desarrollo para el seguimiento del uso del modelo de lenguaje

Para realizar un seguimiento del uso del modelo de lenguaje, configure un archivo de configuración de Proxy de desarrollo en el proyecto con OpenAITelemetryPlugin. Para generar un informe con los costos totales y los detalles de uso, incluya el complemento MarkdownReporter . Incluya la dirección URL de la API compatible con OpenAI que desea rastrear en la sección urlsToWatch del archivo de configuración.

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

Seguimiento de solicitudes a api compatibles con OpenAI

Para realizar un seguimiento de las solicitudes desde cualquier API compatible con OpenAI, agregue las direcciones URL que se usan en las solicitudes a la urlsToWatch sección del archivo de configuración del proxy de desarrollo.

Archivo: devproxyrc.json (sección urlsToWatch)

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

En la tabla siguiente se enumeran algunas conocidas API compatibles con OpenAI que puede seguir con Dev Proxy.

Proveedor URL para ver Descripción
Anthropic https://api.anthropic.com/* Modelos de lenguaje Claude
GitHub (en inglés) https://models.github.com/* API de modelos de GitHub
Microsoft https://*.openai.azure.com/* API del servicio OpenAI de Microsoft Azure
OpenAI https://api.openai.com/* Modelos de lenguaje GPT
x.ai https://api.x.ai/* Modelos de lenguaje Grok

Configuración de OpenAITelemetryPlugin para realizar un seguimiento de los costos de uso del modelo de lenguaje

Para realizar un seguimiento de los costos de uso del modelo de lenguaje, agregue una sección de configuración para OpenAITelemetryPlugin. Establezca la propiedad includeCosts en true para habilitar el seguimiento de costos. Especifique la ruta de acceso a un archivo JSON con los precios del modelo en la pricesFile propiedad .

Archivo: devproxyrc.json (con seguimiento de costos)

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

Cree un archivo de precios con los costos de entrada y salida (precio por millón de tokens) para los modelos que use. El nombre del modelo en el archivo de precios debe coincidir con el nombre del modelo devuelto en las respuestas de api para que los costos se calculen correctamente.

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

Cambio de la moneda usada en los costos del informe de uso

Para cambiar la moneda utilizada en los costes del informe de uso, establezca la propiedad currency en la configuración OpenAITelemetryPlugin. El valor predeterminado es USD.

Archivo: devproxyrc.json (sección 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"
  }
}

Cambiar el encabezado de informe de uso

De forma predeterminada, el formato usado para crear el encabezado del informe de LLM usage report for <application> in <environment>. Para cambiar el nombre y los valores de entorno, establezca las propiedades application y environment en la configuración de OpenAITelemetryPlugin. Los valores predeterminados son default y development, respectivamente.

Archivo: devproxyrc.json (sección openAITelemetryPlugin)

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

Configurar el proxy de desarrollo en el flujo de trabajo de acciones de GitHub

Para instalar e iniciar el proxy de desarrollo, use la acción setup. Para iniciar en modo grabación y capturar las solicitudes para que las procese OpenAITelemetryPlugin, establezca la entrada de auto-record a true. Para incluir el informe de uso en el resumen del trabajo, pase la variable $GITHUB_STEP_SUMMARY a la entrada report-job-summary.

Archivo: .github/workflows/your-workflow.yml (paso)

- 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

Activar peticiones para grabar

Para interactuar con la aplicación y desencadenar las solicitudes que el proxy de desarrollo puede registrar, use un marco de pruebas de extremo a extremo como Playwright. La acción de instalación establece automáticamente las variables de entorno http_proxy y https_proxy, que enrutan las solicitudes a través de Dev Proxy.

Archivo: .github/workflows/your-workflow.yml (pasos)

- 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 certificado de proxy de desarrollo en navegadores Chromium

Si usa navegadores basados en Chromium en ejecutores de Linux para generar solicitudes para que el proxy de desarrollo las registre, debe instalar el certificado del proxy de desarrollo para evitar errores de SSL. Para instalar el certificado, use la chromium-cert acción .

Archivo: .github/workflows/your-workflow.yml (pasos)

- 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

Cargar el informe de uso en artefactos

Para generar el informe de uso, use la acción stop para detener manualmente el proxy de desarrollo en su flujo de trabajo. Para cargar el informe de uso como un artefacto, use la acción actions/upload-artifact.

Archivo: .github/workflows/your-workflow.yml (pasos)

- 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 también