Condividi tramite


OpenAITelemetryPlugin

Registra i dati di telemetria OpenAI dalle richieste e risposte compatibili con OpenAI intercettate.

Screenshot del dashboard .NET Aspire che mostra i dati di telemetria OpenAI.

Screenshot del dashboard OpenLIT che mostra i dati di telemetria OpenAI.

Definizione dell'istanza del plug-in

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

Esempio di configurazione

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

Proprietà di configurazione

Proprietà Descrizione Valore predefinito
application Nome dell'applicazione che invia le richieste. Accesso ai dati di telemetria per raggruppare l'utilizzo in base all'applicazione. default
currency Valuta in cui vengono registrati i prezzi. Visualizzato nei grafici. USD
environment Ambiente in cui è in esecuzione l'applicazione. Accesso ai dati di telemetria per raggruppare l'utilizzo in base all'ambiente. development
exporterEndpoint URL dell'endpoint OpenTelemetry a cui inviare i dati. Deve essere l'endpoint Protobuf HTTP. http://localhost:4318
includeCompletion Indica se includere il completamento nei dati di telemetria. true
includeCosts Indica se includere i costi nei dati di telemetria. Richiede di specificare il file dei prezzi. false
includePrompt Indica se includere il prompt nei dati di telemetria. true
pricesFile Percorso del file con informazioni sui prezzi. null

Esempio di file prezzi

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

Proprietà dei file dei prezzi

Proprietà Descrizione Valore predefinito
prices Prezzi per i modelli. La chiave è il nome del modello e il valore è l'oggetto prezzi del modello. {}

Oggetto Prezzi modello

Ogni oggetto prezzi modello ha le proprietà seguenti:

Proprietà Descrizione Obbligatorio Valore predefinito Valore di esempio
input Prezzo per milione di token per i token di input/prompt. 0.0 0.03
output Prezzo per milione di token per token di output/completamento. 0.0 0.06

Opzioni della riga di comando

Nessuno

Osservazioni:

OpenAITelemetryPlugin registra i dati OpenTelemetry dalle richieste e dalle risposte compatibili con OpenAI che intercetta. Senza dover instrumentare l'applicazione con OpenTelemetry, è possibile comprendere rapidamente come l'applicazione usa modelli linguistici di grandi dimensioni. Inoltre, se si specifica il file dei prezzi per i modelli usati, è anche possibile visualizzare i costi correlati all'LLM che l'applicazione comporta.

Per ogni richiesta e risposta intercettata, il plug-in registra un intervallo. Inoltre, registra tre metriche:

  • gen_ai.client.token.usage : numero di token usati nella richiesta e nella risposta
  • gen_ai.usage.cost - costo dei token usati nella richiesta e nella risposta
  • gen_ai.usage.total_cost - il costo totale di tutte le richieste nel corso di una sessione

Importante

Le metriche dei costi vengono registrate solo se si imposta la includeCosts proprietà su true e si specifica il file dei prezzi. In caso contrario, il plug-in non registra le metriche.

Per visualizzare i dati di telemetria registrati, è possibile usare qualsiasi dashboard compatibile con OpenTelemetry. Ad esempio, è possibile usare il dashboard .NET Aspire o OpenLIT.

Importante

Per visualizzare i dati, avviare il dashboard prima di eseguire una richiesta compatibile con OpenAI. In caso contrario, non esiste alcun agente di raccolta OpenTelemetry per ricevere i dati inviati dal plug-in.

Passo successivo