Freigeben über


Verstehen der Verwendung von Sprachmodellen

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

  1. Erstellen Sie eine neue Dev Proxy-Konfigurationsdatei mit dem devproxy config new Befehl oder der Dev Proxy Toolkit-Erweiterung.

  2. Fügen Sie das OpenAITelemetryPlugin 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"
        }
      ],
      "urlsToWatch": [
      ],
      "logLevel": "information",
      "newVersionNotification": "stable",
      "showSkipMessages": true
    }
    
  3. Konfigurieren Sie die urlsToWatch Eigenschaft 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
    }
    
  4. 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.

  1. Starten Sie Docker.

  2. Starten Sie den OpenTelemetry-Sammler.

    1. 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:latest
      

      Hinweis

      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.

    2. Öffnen Sie das .NET Aspire-Dashboard in Ihrem Browser unter http://localhost:18888/login?t=<code>.

  3. 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

  1. Stellen Sie eine Anforderung an den openAI-kompatiblen Endpunkt vor, den Sie für den Abfangen von Dev Proxy konfiguriert haben.

  2. 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 emitted
    
  3. Navigieren Sie im Webbrowser zum OpenTelemetry-Dashboard.

    1. Wählen Sie im Seitenmenü Ablaufverfolgungen aus.

    2. Wählen Sie eine der Benannten Ablaufverfolgungen aus DevProxy.OpenAI.

    3. Wählen Sie die Anforderungsspanne aus.

    4. Erkunden Sie im seitlichen Bereich die Verwendungsdaten des Sprachmodells.

      Screenshot des .NET Aspire-Dashboards mit OpenAI-Telemetriedaten in einer Spanne.

    5. Wechseln Sie im seitlichen Bereich zu Metriken.

    6. Wählen Sie in der Dropdownliste "Ressource " die Option "DevProxy.OpenAI" aus.

    7. 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.

      Screenshot des .NET Aspire-Dashboards mit einem Diagramm der Tokenverwendung.

  4. 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

  1. Erstellen Sie in dem Ordner, in dem Sie die Dev Proxy-Konfigurationsdatei erstellt haben, eine neue Datei mit dem Namen prices.json.

  2. 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 input Und output Eigenschaften 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.

  3. Speichern Sie Ihre Änderungen.

  4. Öffnen Sie im Code-Editor die Dev Proxy-Konfigurationsdatei.

  5. 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
    }
    
  6. Fügen Sie den openAITelemetryPlugin Abschnitt 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 includeCosts Eigenschaft auf true und die pricesFile Eigenschaft auf den Namen der Datei mit Preisinformationen festgelegt ist.

  7. Speichern Sie Ihre Änderungen.

Geschätzte Kosten anzeigen

  1. Starten Sie Dev Proxy.

  2. Stellen Sie eine Anforderung an den openAI-kompatiblen Endpunkt vor, den Sie für den Abfangen von Dev Proxy konfiguriert haben.

  3. Navigieren Sie im Webbrowser zum OpenTelemetry-Dashboard.

    1. Wählen Sie im seitlichen Bereich "Metriken" aus.

    2. Wählen Sie in der Dropdownliste "Ressource " die Option "DevProxy.OpenAI" aus.

    3. 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.

      Screenshot des .NET Aspire-Dashboards mit einem Diagramm geschätzter Tokenkosten.

  4. Beenden Sie Dev Proxy, indem Sie STRG + C im Terminal drücken, in dem er ausgeführt wird.

  5. 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.