Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die Verwendung von Sprachmodellen verursacht Kosten. Um zu verstehen, wie Ihre Anwendung große Sprachmodelle verwendet, verwenden Sie Dev Proxy, um OpenAI-kompatible Anforderungen und Antworten abzufangen. Dev Proxy analysiert die Anforderungen und Antworten und protokolliert Telemetriedaten, um zu verstehen, wie Ihre Anwendung große Sprachmodelle verwendet. Mit diesen Informationen können Sie Ihre Anwendung optimieren und Kosten senken.
Dev Proxy protokolliert Verwendungsdaten des Sprachmodells im OpenTelemetry-Format. Sie können jedes mit OpenTelemetry kompatible Dashboard verwenden, um die Daten zu visualisieren. Sie können z. B. das .NET Aspire-Dashboard oder OpenLIT verwenden. Die Telemetriedaten enthalten die Anzahl der token, die in der Anforderung und Antwort verwendet werden, die Kosten der verwendeten Token und die Gesamtkosten aller Anforderungen im Verlauf einer Sitzung.
Abfangen von OpenAI-kompatiblen Anforderungen und Antworten mithilfe von Dev Proxy
Verwenden Sie zum Abfangen von OpenAI-kompatiblen Anforderungen und Antworten das OpenAITelemetryPlugin. Dieses Plugin protokolliert Telemetriedaten aus den OpenAI-kompatiblen Anforderungen und Antworten, die es abfängt, und gibt OpenTelemetry-Daten aus.
Erstellen einer Dev Proxy-Konfigurationsdatei
Erstellen Sie eine neue Dev Proxy-Konfigurationsdatei mit dem
devproxy config newBefehl oder der Dev Proxy Toolkit-Erweiterung.Fügen Sie das
OpenAITelemetryPluginzur Konfigurationsdatei hinzu.{ "$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 }Konfigurieren Sie die
urlsToWatchEigenschaft so, dass sie die URLs der openAI-kompatiblen Anforderungen enthält, die Sie abfangen möchten. Im folgenden Beispiel werden Anforderungen an Azure OpenAI-Chatabschluss abgefangen.{ "$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 }Speichern Sie Ihre Änderungen.
Starten des OpenTelemetry-Sammlers und des Dev-Proxys
Von Bedeutung
Sowohl .NET Aspire als auch OpenLIT erfordern die Ausführung von Docker. Wenn Sie Docker nicht installiert haben, befolgen Sie die Anweisungen in der Docker-Dokumentation , um Docker zu installieren.
Starten Sie Docker.
Starten Sie den OpenTelemetry-Sammler.
Führen Sie den folgenden Befehl aus, um den .NET Aspire OpenTelemetry-Sammler und das Dashboard zu starten:
docker run --rm -it -p 18888:18888 -p 4317:18889 -p 4318:18890 --name aspire-dashboard mcr.microsoft.com/dotnet/aspire-dashboard:latestHinweis
Wenn Sie mit der Verwendung des .NET Aspire-Dashboards fertig sind, beenden Sie das Dashboard, indem Sie STRG + C im Terminal drücken, in dem Sie das Dashboard gestartet haben. Docker entfernt den Container automatisch, wenn Sie ihn beenden.
Öffnen Sie das .NET Aspire-Dashboard in Ihrem Browser unter
http://localhost:18888/login?t=<code>.
Um Dev Proxy zu starten, ändern Sie das Arbeitsverzeichnis in den Ordner, in dem Sie die Dev Proxy-Konfigurationsdatei erstellt haben, und führen Sie den folgenden Befehl aus:
devproxy
Verwenden des Sprachmodells und Überprüfen von Telemetriedaten
Stellen Sie eine Anforderung an den openAI-kompatiblen Endpunkt vor, den Sie für den Abfangen von Dev Proxy konfiguriert haben.
Stellen Sie sicher, dass Der Dev-Proxy die Anforderung und Antwort abgefangen hat. In der Konsole, in der Dev Proxy ausgeführt wird, sollten ähnliche Informationen angezeigt werden:
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 emittedNavigieren Sie im Webbrowser zum OpenTelemetry-Dashboard.
Wählen Sie im Seitenmenü Ablaufverfolgungen aus.
Wählen Sie eine der Benannten Ablaufverfolgungen aus
DevProxy.OpenAI.Wählen Sie die Anforderungsspanne aus.
Erkunden Sie im seitlichen Bereich die Verwendungsdaten des Sprachmodells.
Wechseln Sie im seitlichen Bereich zu Metriken.
Wählen Sie in der Dropdownliste "Ressource " die Option "DevProxy.OpenAI" aus.
Wählen Sie in der Liste der Metriken gen_ai.client.token.usage aus, um ein Diagramm mit der Anzahl der von Ihrer Anwendung verwendeten Token anzuzeigen.
Beenden Sie Dev Proxy, indem Sie STRG + C im Terminal drücken, in dem er ausgeführt wird.
Verstehen von Sprachmodellkosten
Dev Proxy unterstützt die Schätzung der Kosten für die Verwendung von Sprachmodellen. Damit Dev Proxy kostenschätzen kann, müssen Sie Informationen zu preisen für die von Ihnen verwendeten Modelle angeben.
Erstellen einer Preisdatei
Erstellen Sie in dem Ordner, in dem Sie die Dev Proxy-Konfigurationsdatei erstellt haben, eine neue Datei mit dem Namen
prices.json.Fügen Sie der Datei Folgendes hinzu:
{ "$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 } } }Von Bedeutung
Der Schlüssel ist der Name des Sprachmodells. Die
inputUndoutputEigenschaften sind die Preise pro Million Token für Eingabe- und Ausgabetoken. Wenn Sie ein Modell verwenden, für das keine Preisinformationen vorhanden sind, protokolliert Dev Proxy nicht die Kostenmetriken.Speichern Sie Ihre Änderungen.
Öffnen Sie im Code-Editor die Dev Proxy-Konfigurationsdatei.
Erweitern Sie den
OpenAITelemetryPlugin-Verweis mit einem Konfigurationsabschnitt.{ "$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 }Fügen Sie den
openAITelemetryPluginAbschnitt zur Konfigurationsdatei hinzu:{ "$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 }Beachten Sie, dass die
includeCostsEigenschaft auftrueund diepricesFileEigenschaft auf den Namen der Datei mit Preisinformationen festgelegt ist.Speichern Sie Ihre Änderungen.
Geschätzte Kosten anzeigen
Starten Sie Dev Proxy.
Stellen Sie eine Anforderung an den openAI-kompatiblen Endpunkt vor, den Sie für den Abfangen von Dev Proxy konfiguriert haben.
Navigieren Sie im Webbrowser zum OpenTelemetry-Dashboard.
Wählen Sie im seitlichen Bereich "Metriken" aus.
Wählen Sie in der Dropdownliste "Ressource " die Option "DevProxy.OpenAI" aus.
Wählen Sie in der Liste der Metriken gen_ai.client.total_cost aus, um ein Diagramm mit den geschätzten Gesamtkosten anzuzeigen, die ihre Anwendung für die Verwendung der Sprachmodelle verursacht.
Beenden Sie Dev Proxy, indem Sie STRG + C im Terminal drücken, in dem er ausgeführt wird.
Beenden Sie den OpenTelemetry-Sammler.
Drücken Sie im Terminal, in dem das .NET Aspire-Dashboard ausgeführt wird, STRG + C , um das Dashboard zu beenden. Docker entfernt den Container automatisch, wenn Sie ihn beenden.
Nächste Schritte
Erfahren Sie mehr über das OpenAITelemetryPlugin.