Partager via


Plugin de Télémétrie OpenAI

Journalise les données de télémétrie OpenAI à partir des requêtes et réponses compatibles OpenAI interceptées.

Capture d’écran du tableau de bord .NET Aspire montrant les données de télémétrie OpenAI.

Capture d’écran du tableau de bord OpenLIT montrant les données de télémétrie OpenAI.

Définition de l’instance de plug-in

{
  "name": "OpenAITelemetryPlugin",
  "enabled": true,
  "pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll",
  "configSection": "openAITelemetryPlugin"
}

Exemple de configuration

{
  "openAITelemetryPlugin": {
    "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v0.28.0/openaitelemetryplugin.schema.json",
    "application": "My app",
    "includeCosts": true,
    "pricesFile": "prices.json"
  }
}

Propriétés de configuration

Propriété Descriptif Par défaut
application Nom de l’application qui émet les demandes. Connecté aux données de télémétrie pour regrouper l’utilisation par application. default
currency Devise dans laquelle les prix sont enregistrés. Affiché dans les graphiques. USD
environment Environnement dans lequel l’application est en cours d’exécution. Connecté aux données de télémétrie pour regrouper l’utilisation par environnement. development
exporterEndpoint URL du point de terminaison OpenTelemetry à laquelle envoyer les données. Doit être un point de terminaison HTTP Protobuf. http://localhost:4318
includeCompletion Indique s’il faut inclure la saisie semi-automatique dans les données de télémétrie. true
includeCosts Indique s’il faut inclure les coûts dans les données de télémétrie. Nécessite de spécifier le fichier de prix. false
includePrompt Indique s’il faut inclure l’invite dans les données de télémétrie. true
pricesFile Chemin d’accès au fichier avec des informations sur les prix. null

Exemple de fichier prix

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

Propriétés du fichier prix

Propriété Descriptif Par défaut
prices Prix des modèles. La clé est le nom du modèle et la valeur est l’objet de prix du modèle. {}

Objet de prix du modèle

Chaque objet de prix de modèle a les propriétés suivantes :

Propriété Descriptif Obligatoire Valeur par défaut Valeur d'échantillon
input Prix par million de jetons pour les jetons d’entrée/invite. oui 0.0 0.03
output Prix par million de jetons pour les jetons de sortie/achèvement. oui 0.0 0.06

Options de ligne de commande

Aucun

Remarques

OpenAITelemetryPlugin journalise les données OpenTelemetry à partir des requêtes et réponses compatibles OpenAI qu’il intercepte. Sans avoir à instrumenter votre application avec OpenTelemetry, vous pouvez rapidement comprendre comment votre application utilise des modèles de langage volumineux. En outre, si vous fournissez un fichier de prix pour les modèles que vous utilisez, vous pouvez également voir les coûts liés à LLM que votre application entraîne.

Pour chaque demande et réponse interceptées, le plug-in enregistre une étendue. En outre, il journalise trois métriques :

  • gen_ai.client.token.usage - nombre de jetons utilisés dans la demande et la réponse
  • gen_ai.usage.cost - coût des jetons utilisés dans la demande et la réponse
  • gen_ai.usage.total_cost - coût total de toutes les requêtes au cours d’une session

Important

Les métriques de coût sont enregistrées uniquement si vous définissez la includeCosts propriété true sur et fournissez le fichier de prix. Sinon, le plug-in ne journalise pas les métriques.

Pour afficher les données de télémétrie enregistrées, vous pouvez utiliser n’importe quel tableau de bord compatible OpenTelemetry. Par exemple, vous pouvez utiliser le tableau de bord .NET Aspire ou OpenLIT.

Important

Pour afficher les données, démarrez le tableau de bord avant d’émettre une demande compatible OpenAI. Sinon, il n’existe aucun collecteur OpenTelemetry pour recevoir les données envoyées par le plug-in.

Étape suivante