Freigeben über


OpenAITelemetryPlugin

Protokolliert OpenAI-Telemetriedaten aus den abgefangenen openAI-kompatiblen Anforderungen und Antworten.

Screenshot des .NET Aspire-Dashboards mit OpenAI-Telemetriedaten.

Screenshot des OpenLIT-Dashboards mit OpenAI-Telemetriedaten.

Definition der Plug-In-Instanz

{
  "name": "OpenAITelemetryPlugin",
  "enabled": true,
  "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
  "configSection": "openAITelemetryPlugin"
}

Konfigurationsbeispiel

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

Konfigurationseigenschaften

Eigentum BESCHREIBUNG Standard
application Name der Anwendung, die die Anforderungen ausgibt. Melden Sie sich bei den Telemetriedaten an, um die Nutzung nach Anwendung zu gruppieren. default
currency Die Währung, in der die Preise protokolliert werden. In Diagrammen angezeigt. USD
environment Umgebung, in der die Anwendung ausgeführt wird. Angemeldet in den Telemetriedaten, um die Nutzung nach Umgebung zu gruppieren. development
exporterEndpoint Die URL des OpenTelemetry-Endpunkts, an den die Daten gesendet werden sollen. Muss http Protobuf-Endpunkt sein. http://localhost:4318
includeCompletion Gibt an, ob der Abschluss in die Telemetriedaten eingeschlossen werden soll. true
includeCosts Gibt an, ob die Kosten in die Telemetriedaten einbezogen werden sollen. Erfordert die Angabe der Preisdatei. false
includePrompt Gibt an, ob die Eingabeaufforderung in die Telemetriedaten eingeschlossen werden soll. true
pricesFile Pfad zur Datei mit Preisinformationen. null

Preisdatei (Beispiel)

{
  "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.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
    }
  }
}

Preise Dateieigenschaften

Eigentum BESCHREIBUNG Standard
prices Preise für die Modelle. Der Schlüssel ist der Modellname, und der Wert ist das Modellpreisobjekt. {}

Model prices-Objekt

Jedes Modellpreisobjekt weist die folgenden Eigenschaften auf:

Eigentum BESCHREIBUNG Erforderlich Standardwert Beispielwert
input Der Preis pro Million Token für Eingabe-/Eingabeaufforderungstoken. ja 0.0 0.03
output Der Preis pro Million Token für Ausgabe-/Abschlusstoken. ja 0.0 0.06

Befehlszeilenoptionen

Nichts

Bemerkungen

OpenAITelemetryPlugin protokolliert OpenTelemetry-Daten aus den openAI-kompatiblen Anforderungen und Antworten, die sie abfangen. Ohne ihre Anwendung mit OpenTelemetry zu instrumentieren, können Sie schnell verstehen, wie Ihre Anwendung große Sprachmodelle verwendet. Wenn Sie außerdem preise für die von Ihnen verwendeten Modelle bereitstellen, können Sie auch die LLM-bezogenen Kosten sehen, die Ihre Anwendung verursacht.

Für jede abgefangene Anforderung und Antwort protokolliert das Plug-In eine Spanne. Darüber hinaus werden drei Metriken protokolliert:

  • gen_ai.client.token.usage - die Anzahl der token, die in der Anforderung und Antwort verwendet werden
  • gen_ai.usage.cost - die Kosten der token, die in der Anforderung und Antwort verwendet werden
  • gen_ai.usage.total_cost - die Gesamtkosten aller Anfragen während einer Sitzung

Von Bedeutung

Die Kostenmetriken werden nur protokolliert, wenn Sie die includeCosts Eigenschaft auf true die Preisdatei festlegen und diese angeben. Andernfalls protokolliert das Plug-In die Metriken nicht.

Zum Anzeigen der aufgezeichneten Telemetriedaten können Sie ein beliebiges openTelemetry-kompatibles Dashboard verwenden. Sie können z. B. das .NET Aspire-Dashboard oder OpenLIT verwenden.

Von Bedeutung

Um die Daten anzuzeigen, starten Sie das Dashboard, bevor Sie openAI-kompatible Anforderung ausstellen. Andernfalls gibt es keinen OpenTelemetry-Sammler, um die Daten zu empfangen, die das Plug-In sendet.

Nächster Schritt