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


OpenAITelemetryPlugin

Записывает данные телеметрии OpenAI из перехватанных запросов и ответов, совместимых с OpenAI.

Снимок экрана: панель мониторинга .NET Aspire с данными телеметрии OpenAI.

Снимок экрана: панель мониторинга OpenLIT с данными телеметрии OpenAI.

Пример конфигурации

{
  "$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"
    }
  ],
  "openAITelemetryPlugin": {
    "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.0.0/openaitelemetryplugin.schema.json",
    "application": "My app",
    "includeCosts": true,
    "pricesFile": "prices.json"
  }
}

Свойства конфигурации

Недвижимость Описание По умолчанию
application Имя приложения, которое выдает запросы. Вошедший в данные телеметрии для группирования использования по приложению. default
currency Валюта, в которой регистрируются цены. Отображается на диаграммах. USD
environment Среда, в которой выполняется приложение. Вошедший в данные телеметрии для группирования использования по среде. development
exporterEndpoint URL-адрес конечной точки OpenTelemetry для отправки данных. Должен быть конечной точкой HTTP Protobuf. http://localhost:4318
includeCompletion Следует ли включить завершение в данные телеметрии. true
includeCosts Следует ли включать затраты в данные телеметрии. Требуется указать файл цен. false
includePrompt Следует ли включить запрос в данные телеметрии. true
pricesFile Путь к файлу со сведениями о ценах. null

Пример файла цен

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

Свойства файла цен

Недвижимость Описание По умолчанию
prices Цены на модели. Ключом является имя модели, а значением является объект цен модели. {}

Объект цен модели

Каждый объект цен на модель имеет следующие свойства:

Недвижимость Описание Обязательно Значение по умолчанию Примерное значение
input Цена за миллион токенов для маркеров ввода и запроса. да 0.0 0.03
output Цена за миллион токенов для маркеров вывода и завершения. да 0.0 0.06

Параметры командной строки

Отсутствует

Замечания

Данные OpenAITelemetryPlugin регистрируют данные OpenTelemetry из запросов и ответов, совместимых с OpenAI, которые он перехватывает. Без необходимости инструментировать приложение с помощью OpenTelemetry, вы можете быстро понять, как приложение использует большие языковые модели. Кроме того, если вы предоставляете файл цен для используемых моделей, вы также можете увидеть затраты, связанные с LLM, которые ваше приложение несет.

Для каждого перехвата запроса и ответа подключаемый модуль регистрирует диапазон. Кроме того, он регистрирует три метрики:

  • gen_ai.client.token.usage — количество маркеров, используемых в запросе и ответе
  • gen_ai.usage.cost — стоимость маркеров, используемых в запросе и ответе
  • gen_ai.usage.total_cost — общая стоимость всех запросов на протяжении сеанса

Это важно

Метрики затрат регистрируются только в том случае, если для свойства includeCosts задано true значение и указан файл цен. В противном случае подключаемый модуль не регистрирует метрики.

Для просмотра записанных данных телеметрии можно использовать любую панель мониторинга, совместимую с OpenTelemetry. Например, можно использовать панель мониторинга .NET Aspire или OpenLIT.

Это важно

Чтобы просмотреть данные, запустите панель мониторинга перед отправкой запроса, совместимого с OpenAI. В противном случае сборщик OpenTelemetry не получает данные, отправляемые подключаемым модулем.

Следующий шаг