Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
L’utilisation de modèles linguistiques entraîne des coûts. Pour comprendre comment votre application utilise des modèles de langage volumineux, utilisez le proxy de développement pour intercepter les requêtes et réponses compatibles OpenAI. Le proxy de développement analyse les demandes et réponses et enregistre les données de télémétrie pour vous aider à comprendre comment votre application utilise des modèles de langage volumineux. Ces informations vous permettent d’optimiser votre application et de réduire les coûts.
Dev Proxy journalise les données d’utilisation du modèle de langage au format OpenTelemetry. Vous pouvez utiliser n’importe quel tableau de bord compatible OpenTelemetry pour visualiser les données. Par exemple, vous pouvez utiliser le tableau de bord .NET Aspire ou OpenLIT. Les données de télémétrie incluent le nombre de jetons utilisés dans la demande et la réponse, le coût des jetons utilisés et le coût total de toutes les requêtes au cours d’une session.
Intercepter les demandes et réponses compatibles OpenAI à l’aide du proxy de développement
Pour intercepter les requêtes et réponses compatibles OpenAI, utilisez OpenAITelemetryPlugin. Ce plug-in consigne les données de télémétrie à partir des requêtes et réponses compatibles OpenAI qu'il intercepte et il émet des données OpenTelemetry.
Créer un fichier de configuration du proxy de développement
Créez un fichier de configuration dev Proxy à l’aide de la
devproxy config newcommande ou de l’extension Dev Proxy Toolkit.Ajoutez le
OpenAITelemetryPluginau fichier de configuration.{ "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/rc.schema.json", "plugins": [ { "name": "OpenAITelemetryPlugin", "enabled": true, "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll" } ], "urlsToWatch": [ ], "logLevel": "information", "newVersionNotification": "stable", "showSkipMessages": true }Configurez la
urlsToWatchpropriété pour inclure les URL des requêtes compatibles OpenAI que vous souhaitez intercepter. L'exemple suivant intercepte les requêtes des complétions de conversation d'Azure OpenAI.{ "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/rc.schema.json", "plugins": [ { "name": "OpenAITelemetryPlugin", "enabled": true, "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll" } ], "urlsToWatch": [ "https://*.openai.azure.com/openai/deployments/*/chat/completions*", "https://*.cognitiveservices.azure.com/openai/deployments/*/chat/completions*" ], "logLevel": "information", "newVersionNotification": "stable", "showSkipMessages": true }Enregistrez vos modifications.
Démarrer le collecteur OpenTelemetry et le proxy de développement
Important
.NET Aspire et OpenLIT nécessitent l’exécution de Docker. Si vous n’avez pas installé Docker, suivez les instructions de la documentation Docker pour installer Docker.
Démarrez Docker.
Démarrez le collecteur OpenTelemetry.
- Aspire .NET
- OpenLIT
Exécutez la commande suivante pour démarrer le collecteur et le tableau de bord .NET Aspire OpenTelemetry :
docker run --rm -it -p 18888:18888 -p 4317:18889 -p 4318:18890 --name aspire-dashboard mcr.microsoft.com/dotnet/aspire-dashboard:latestRemarque
Lorsque vous avez terminé d’utiliser le tableau de bord .NET Aspire, arrêtez le tableau de bord en appuyant sur Ctrl + C dans le terminal où vous avez démarré le tableau de bord. Docker supprime automatiquement le conteneur lorsque vous l’arrêtez.
Ouvrez le tableau de bord .NET Aspire dans votre navigateur à l’adresse
http://localhost:18888/login?t=<code>.
Pour démarrer le proxy de développement, remplacez le répertoire de travail par le dossier dans lequel vous avez créé le fichier de configuration du proxy de développement et exécutez la commande suivante :
devproxy
Utiliser le modèle de langage et inspecter les données de télémétrie
Effectuez une demande au point de terminaison compatible OpenAI que vous avez configuré pour que le Dev Proxy intercepte.
Vérifiez que le proxy de développement a intercepté la demande et la réponse. Dans la console, où le proxy de développement est en cours d’exécution, vous devez voir des informations similaires :
info Dev Proxy API listening on http://127.0.0.1:8897... info Dev Proxy listening on 127.0.0.1:8000... Hotkeys: issue (w)eb request, (r)ecord, (s)top recording, (c)lear screen Press CTRL+C to stop Dev Proxy req ╭ POST https://some-resource.cognitiveservices.azure.com/openai/deployments/some-deployment/chat/completions?api-version=2025-01-01-preview time │ 19/05/2025 07:53:38 +00:00 pass │ Passed through proc ╰ OpenAITelemetryPlugin: OpenTelemetry information emittedDans le navigateur web, accédez au tableau de bord OpenTelemetry.
- Aspire .NET
- OpenLIT
Dans le menu latéral, sélectionnez Traces.
Sélectionnez l’une des traces nommées
DevProxy.OpenAI.Sélectionnez l’étendue de requête.
Dans le volet latéral, explorez les données d’utilisation du modèle de langage.
Dans le volet latéral, basculez vers Métriques.
Dans la liste déroulante Ressource , sélectionnez DevProxy.OpenAI.
Dans la liste des métriques, sélectionnez gen_ai.client.token.usage pour afficher un graphique montrant le nombre de jetons que votre application utilise.
Arrêtez le proxy de développement en appuyant sur Ctrl + C dans le terminal où il est en cours d’exécution.
Comprendre les coûts du modèle de langage
Le proxy de développement prend en charge l’estimation des coûts liés à l’utilisation de modèles de langage. Pour permettre au proxy de développement d’estimer les coûts, vous devez fournir des informations sur les prix des modèles que vous utilisez.
Créer un fichier de prix
Dans le même dossier où vous avez créé le fichier de configuration du proxy de développement, créez un fichier nommé
prices.json.Ajoutez le contenu suivant au fichier :
{ "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/openaitelemetryplugin.pricesfile.schema.json", "prices": { "o4-mini": { "input": 0.97, "output": 3.87 } } }Important
La clé est le nom du modèle de langage. Les propriétés
inputetoutputsont les prix par million de jetons pour les jetons d'entrée et de sortie. Si vous utilisez un modèle pour lequel il n’existe aucune information sur les prix, le proxy de développement ne journalise pas les métriques de coût.Enregistrez vos modifications.
Dans l’éditeur de code, ouvrez le fichier de configuration du proxy de développement.
Étendez la
OpenAITelemetryPluginréférence avec une section de configuration :{ "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/rc.schema.json", "plugins": [ { "name": "OpenAITelemetryPlugin", "enabled": true, "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll", "configSection": "openAITelemetryPlugin" } ], "urlsToWatch": [ "https://*.openai.azure.com/openai/deployments/*/chat/completions*", "https://*.cognitiveservices.azure.com/openai/deployments/*/chat/completions*" ], "logLevel": "information", "newVersionNotification": "stable", "showSkipMessages": true }Ajoutez la
openAITelemetryPluginsection au fichier de configuration :{ "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/rc.schema.json", "plugins": [ { "name": "OpenAITelemetryPlugin", "enabled": true, "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll", "configSection": "openAITelemetryPlugin" } ], "urlsToWatch": [ "https://*.openai.azure.com/openai/deployments/*/chat/completions*", "https://*.cognitiveservices.azure.com/openai/deployments/*/chat/completions*" ], "openAITelemetryPlugin": { "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/openaitelemetryplugin.schema.json", "includeCosts": true, "pricesFile": "prices.json" }, "logLevel": "information", "newVersionNotification": "stable", "showSkipMessages": true }Notez que la propriété
includeCostsest définie surtrueet que la propriétépricesFileest définie sur le nom du fichier avec des informations sur les prix.Enregistrez vos modifications.
Afficher les coûts estimés
Démarrez le proxy de développement.
Effectuez une demande au point de terminaison compatible OpenAI que vous avez configuré pour que le Dev Proxy intercepte.
Dans le navigateur web, accédez au tableau de bord OpenTelemetry.
- Aspire .NET
- OpenLIT
Dans le volet latéral, sélectionnez Métriques.
Dans la liste déroulante Ressource , sélectionnez DevProxy.OpenAI.
Dans la liste des métriques, sélectionnez gen_ai.client.total_cost pour afficher un graphique montrant le coût total estimé que votre application entraîne pour l’utilisation des modèles de langage.
Arrêtez le proxy de développement en appuyant sur Ctrl + C dans le terminal où il est en cours d’exécution.
Arrêtez le collecteur OpenTelemetry.
- Aspire .NET
- OpenLIT
Dans le terminal où le tableau de bord Aspire .NET est en cours d’exécution, appuyez sur Ctrl + C pour arrêter le tableau de bord. Docker supprime automatiquement le conteneur lorsque vous l’arrêtez.
Étapes suivantes
En savoir plus sur OpenAITelemetryPlugin.