Udostępnij przez


OpenAITelemetryPlugin

Rejestruje dane telemetryczne interfejsu OpenAI z przechwyconych żądań i odpowiedzi zgodnych z protokołem OpenAI.

Zrzut ekranu przedstawiający pulpit nawigacyjny platformy .NET Aspire przedstawiający dane telemetryczne interfejsu OpenAI.

Zrzut ekranu przedstawiający pulpit nawigacyjny OpenLIT przedstawiający dane telemetryczne openAI.

Przykład konfiguracji

{
  "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.0.0/rc.schema.json",
  "plugins": [
    {
      "name": "OpenAITelemetryPlugin",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
      "configSection": "openAITelemetryPlugin"
    }
  ],
  "openAITelemetryPlugin": {
    "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.0.0/openaitelemetryplugin.schema.json",
    "application": "My app",
    "includeCosts": true,
    "pricesFile": "prices.json"
  }
}

Właściwości konfiguracji

Majątek Opis Wartość domyślna
application Nazwa aplikacji, która wysyła żądania. Zalogowano się w danych telemetrycznych w celu grupowania użycia przez aplikację. default
currency Waluta, w której są rejestrowane ceny. Wyświetlane na wykresach. USD
environment Środowisko, w którym działa aplikacja. Zalogowano się w danych telemetrycznych w celu grupowania użycia według środowiska. development
exporterEndpoint Adres URL punktu końcowego OpenTelemetry do wysłania danych. Musi być punktem końcowym HTTP Protobuf. http://localhost:4318
includeCompletion Określa, czy należy uwzględnić uzupełnianie w danych telemetrycznych. true
includeCosts Określa, czy koszty mają być uwzględniane w danych telemetrycznych. Wymaga określenia pliku cen. false
includePrompt Określa, czy monit ma być uwzględniny w danych telemetrycznych. true
pricesFile Ścieżka do pliku z informacjami o cenach. null

Przykład pliku cen

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

Właściwości pliku cen

Majątek Opis Wartość domyślna
prices Ceny modeli. Kluczem jest nazwa modelu, a wartość jest obiektem cen modelu. {}

Obiekt cen modelu

Każdy obiekt cen modelu ma następujące właściwości:

Majątek Opis Wymagane Wartość domyślna Przykładowa wartość
input Cena za milion tokenów dla tokenów wejściowych/monitów. tak 0.0 0.03
output Cena za milion tokenów dla tokenów wyjściowych/ukończenia. tak 0.0 0.06

Opcje wiersza polecenia

Żaden

Uwagi

Usługa OpenAITelemetryPlugin rejestruje dane OpenTelemetry z żądań i odpowiedzi zgodnych z interfejsem OpenAI i odpowiedzi, które przechwytuje. Bez konieczności instrumentowania aplikacji za pomocą biblioteki OpenTelemetry możesz szybko zrozumieć, jak aplikacja korzysta z dużych modeli językowych. Ponadto, jeśli podasz plik cen dla używanych modeli, możesz również zobaczyć koszty związane z usługą LLM, które są naliczane przez aplikację.

Dla każdego przechwyconego żądania i odpowiedzi wtyczka rejestruje zakres. Ponadto rejestruje trzy metryki:

  • gen_ai.client.token.usage — liczba tokenów używanych w żądaniu i odpowiedzi
  • gen_ai.usage.cost — koszt tokenów używanych w żądaniu i odpowiedzi
  • gen_ai.usage.total_cost — całkowity koszt wszystkich żądań w trakcie sesji

Ważne

Metryki kosztów są rejestrowane tylko w przypadku ustawienia includeCosts właściwości na true wartość i dostarczenia pliku cen. W przeciwnym razie wtyczka nie rejestruje metryk.

Aby wyświetlić zarejestrowane dane telemetryczne, możesz użyć dowolnego pulpitu nawigacyjnego zgodnego z technologią OpenTelemetry. Możesz na przykład użyć pulpitu nawigacyjnego platformy .NET Aspire lub interfejsu OpenLIT.

Ważne

Aby wyświetlić dane, uruchom pulpit nawigacyjny przed wydaniem żądania zgodnego z interfejsem OpenAI. W przeciwnym razie nie ma modułu zbierającego OpenTelemetry do odbierania danych wysyłanych przez wtyczkę.

Następny krok