Delen via


Inzicht in het gebruik van taalmodellen

Voor het gebruik van taalmodellen worden kosten in rekening gebracht. Als u wilt weten hoe uw toepassing gebruikmaakt van grote taalmodellen, gebruikt u Dev Proxy om openAI-compatibele aanvragen en antwoorden te onderscheppen. Dev Proxy analyseert de aanvragen en antwoorden en registreert telemetriegegevens om u te helpen begrijpen hoe uw toepassing gebruikmaakt van grote taalmodellen. Met deze informatie kunt u uw toepassing optimaliseren en kosten verlagen.

Dev Proxy registreert taalmodelgebruiksgegevens in OpenTelemetry-indeling. U kunt elk openTelemetry-compatibel dashboard gebruiken om de gegevens te visualiseren. U kunt bijvoorbeeld het .NET Aspire-dashboard of OpenLIT gebruiken. De telemetriegegevens bevatten het aantal tokens dat wordt gebruikt in de aanvraag en reactie, de kosten van de gebruikte tokens en de totale kosten van alle aanvragen gedurende de loop van een sessie.

OpenAI-compatibele aanvragen en antwoorden onderscheppen met behulp van Dev Proxy

Als u openAI-compatibele aanvragen en antwoorden wilt onderscheppen, gebruikt u de OpenAITelemetryPlugin. Deze invoegtoepassing legt telemetriegegevens vast van aanvragen en antwoorden die compatibel zijn met OpenAI en onderschept worden. Vervolgens verzendt het OpenTelemetry-gegevens.

Een Dev Proxy-configuratiebestand maken

  1. Maak een nieuw Dev Proxy-configuratiebestand met behulp van de devproxy config new opdracht of met de extensie Dev Proxy Toolkit.

  2. Voeg het OpenAITelemetryPlugin toe aan het configuratiebestand.

    {
      "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/rc.schema.json",
      "plugins": [
        {
          "name": "OpenAITelemetryPlugin",
          "enabled": true,
          "pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll"
        }
      ],
      "urlsToWatch": [
      ],
      "logLevel": "information",
      "newVersionNotification": "stable",
      "showSkipMessages": true
    }
    
  3. Configureer de urlsToWatch eigenschap om de URL's op te nemen van de openAI-compatibele aanvragen die u wilt onderscheppen. In het volgende voorbeeld worden aanvragen onderschept voor voltooiingen van Azure OpenAI-chats.

    {
      "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/rc.schema.json",
      "plugins": [
        {
          "name": "OpenAITelemetryPlugin",
          "enabled": true,
          "pluginPath": "~appFolder/plugins/dev-proxy-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. Sla uw wijzigingen op.

OpenTelemetry Collector en Dev Proxy starten

Belangrijk

Zowel .NET Aspire als OpenLIT hebben Docker nodig om te werken. Als u Docker niet hebt geïnstalleerd, volgt u de instructies in de Docker-documentatie om Docker te installeren.

  1. Start Docker.

  2. Start OpenTelemetry-collector.

    1. Voer de volgende opdracht uit om de .NET Aspire OpenTelemetry-collector en het dashboard te starten:

      docker run --rm -it -p 18888:18888 -p 4317:18889 -p 4318:18890 --name aspire-dashboard mcr.microsoft.com/dotnet/aspire-dashboard:latest
      

      Opmerking

      Wanneer u klaar bent met het .NET Aspire-dashboard, stopt u het dashboard door op Ctrl + C te drukken in de terminal waar u het dashboard hebt gestart. Docker verwijdert automatisch de container wanneer u deze stopt.

    2. Open het .NET Aspire-dashboard in uw browser op http://localhost:18888/login?t=<code>.

  3. Als u Dev Proxy wilt starten, wijzigt u de werkmap in de map waarin u het dev proxy-configuratiebestand hebt gemaakt en voert u de volgende opdracht uit:

    devproxy
    

Taalmodel gebruiken en telemetriegegevens inspecteren

  1. Doe een verzoek aan het OpenAI-compatibele eindpunt dat u hebt geconfigureerd om Dev Proxy te laten onderscheppen.

  2. Controleer of Dev Proxy de aanvraag en het antwoord heeft onderschept. In de console, waar Dev Proxy wordt uitgevoerd, ziet u vergelijkbare informatie:

     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. Navigeer in de webbrowser naar het OpenTelemetry-dashboard.

    1. Kies Traceringen in het zijmenu.

    2. Selecteer een van de sporen met de naam DevProxy.OpenAI.

    3. Selecteer het aanvraagbereik.

    4. Verken in het zijpaneel de gebruiksgegevens van het taalmodel.

      Schermopname van het .NET Aspire-dashboard met OpenAI-telemetriegegevens over een tijdspanne.

    5. Schakel in het zijpaneel over naar Metrische gegevens.

    6. Selecteer DevProxy.OpenAI in de vervolgkeuzelijst Resource.

    7. Selecteer in de lijst met metrische gegevens gen_ai.client.token.usage om een grafiek weer te geven met het aantal tokens dat door uw toepassing wordt gebruikt.

      Schermopname van het .NET Aspire-dashboard met een grafiek met het tokengebruik.

  4. Stop Dev Proxy door op Ctrl + C te drukken in de terminal waarop deze wordt uitgevoerd.

Inzicht in kosten voor taalmodellen

Dev Proxy ondersteunt het schatten van de kosten voor het gebruik van taalmodellen. Als u wilt toestaan dat Dev Proxy kosten inschatten, moet u informatie opgeven over de prijzen voor de modellen die u gebruikt.

Een prijzenbestand maken

  1. Maak in dezelfde map waarin u het configuratiebestand dev proxy hebt gemaakt een nieuw bestand met de naam prices.json.

  2. Voeg de volgende inhoud toe aan het bestand:

    {
      "$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
        }
      }
    }
    

    Belangrijk

    De sleutel is de naam van het taalmodel. De input en output eigenschappen zijn de prijzen per miljoen tokens voor invoer- en uitvoertokens. Als u een model gebruikt waarvoor geen prijsinformatie beschikbaar is, worden de metrische kostengegevens niet vastgelegd in Dev Proxy.

  3. Sla uw wijzigingen op.

  4. Open in de code-editor het configuratiebestand dev proxy.

  5. Breid de OpenAITelemetryPlugin verwijzing uit met een configuratiesectie:

    {
      "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/rc.schema.json",
      "plugins": [
        {
          "name": "OpenAITelemetryPlugin",
          "enabled": true,
          "pluginPath": "~appFolder/plugins/dev-proxy-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. Voeg de openAITelemetryPlugin sectie toe aan het configuratiebestand:

    {
      "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/rc.schema.json",
      "plugins": [
        {
          "name": "OpenAITelemetryPlugin",
          "enabled": true,
          "pluginPath": "~appFolder/plugins/dev-proxy-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
    }
    

    U ziet dat de includeCosts eigenschap is ingesteld op true en de pricesFile eigenschap is ingesteld op de naam van het bestand met prijsinformatie.

  7. Sla uw wijzigingen op.

Geschatte kosten weergeven

  1. Start Dev Proxy.

  2. Doe een verzoek aan het OpenAI-compatibele eindpunt dat u hebt geconfigureerd om Dev Proxy te laten onderscheppen.

  3. Navigeer in de webbrowser naar het OpenTelemetry-dashboard.

    1. Selecteer metrische gegevens in het zijpaneel.

    2. Selecteer DevProxy.OpenAI in de vervolgkeuzelijst Resource.

    3. Selecteer in de lijst met metrische gegevens gen_ai.client.total_cost om een grafiek weer te geven met de geschatte totale kosten die uw toepassing in rekening brengt voor het gebruik van de taalmodellen.

      Schermopname van het .NET Aspire-dashboard met een grafiek met geschatte tokenkosten.

  4. Stop Dev Proxy door op Ctrl + C te drukken in de terminal waarop deze wordt uitgevoerd.

  5. Stop de OpenTelemetry-collector.

    Druk in de terminal waar het .NET Aspire-dashboard wordt uitgevoerd op Ctrl + C om het dashboard te stoppen. Docker verwijdert automatisch de container wanneer u deze stopt.

Volgende stappen

Meer informatie over de OpenAITelemetryPlugin.