Zum Hauptinhalt springen

Helicone - OSS LLM Observability Platform

Tipp

Dies wird von der Community gepflegt. Bitte erstellen Sie ein Issue, wenn Sie auf einen Fehler stoßen: https://github.com/BerriAI/litellm

Helicone ist eine Open-Source-Observability-Plattform, die Ihre LLM-Anfragen proxyed und wichtige Einblicke in Ihre Nutzung, Ausgaben, Latenz und mehr bietet.

Helicone mit LiteLLM verwenden

LiteLLM bietet success_callbacks und failure_callbacks, die es Ihnen ermöglichen, basierend auf dem Status Ihrer Antworten einfach Daten an Helicone zu protokollieren.

Unterstützte LLM-Anbieter

Helicone kann Anfragen über verschiedene LLM-Anbieter protokollieren, einschließlich

  • OpenAI
  • Azure
  • Anthropic
  • Gemini
  • Groq
  • Cohere
  • Replicate
  • Und mehr

Integrationsmethoden

Es gibt zwei Hauptansätze zur Integration von Helicone mit LiteLLM

  1. Verwendung von Callbacks
  2. Verwendung von Helicone als Proxy

Lassen Sie uns jede Methode im Detail untersuchen.

Ansatz 1: Callbacks verwenden

Verwenden Sie nur 1 Zeile Code, um Ihre Antworten sofort über alle Anbieter hinweg mit Helicone zu protokollieren.

litellm.success_callback = ["helicone"]

Vollständiger Code

import os
from litellm import completion

## Set env variables
os.environ["HELICONE_API_KEY"] = "your-helicone-key"
os.environ["OPENAI_API_KEY"] = "your-openai-key"

# Set callbacks
litellm.success_callback = ["helicone"]

# OpenAI call
response = completion(
model="gpt-4o",
messages=[{"role": "user", "content": "Hi 👋 - I'm OpenAI"}],
)

print(response)

Ansatz 2: Helicone als Proxy verwenden

Der Helicone-Proxy bietet erweiterte Funktionalitäten wie Caching, Ratenbegrenzung, LLM-Sicherheit durch PromptArmor und mehr.

Um Helicone als Proxy für Ihre LLM-Anfragen zu verwenden

  1. Setzen Sie Helicone als Ihre Basis-URL über: litellm.api_base
  2. Übergeben Sie Helicone-Anfrage-Header über: litellm.metadata

Vollständiger Code

import os
import litellm
from litellm import completion

litellm.api_base = "https://oai.hconeai.com/v1"
litellm.headers = {
"Helicone-Auth": f"Bearer {os.getenv('HELICONE_API_KEY')}", # Authenticate to send requests to Helicone API
}

response = litellm.completion(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": "How does a court case get to the Supreme Court?"}]
)

print(response)

Erweiterte Nutzung

Sie können benutzerdefinierte Metadaten und Eigenschaften zu Ihren Anfragen über Helicone-Header hinzufügen. Hier sind einige Beispiele

litellm.metadata = {
"Helicone-Auth": f"Bearer {os.getenv('HELICONE_API_KEY')}", # Authenticate to send requests to Helicone API
"Helicone-User-Id": "user-abc", # Specify the user making the request
"Helicone-Property-App": "web", # Custom property to add additional information
"Helicone-Property-Custom": "any-value", # Add any custom property
"Helicone-Prompt-Id": "prompt-supreme-court", # Assign an ID to associate this prompt with future versions
"Helicone-Cache-Enabled": "true", # Enable caching of responses
"Cache-Control": "max-age=3600", # Set cache limit to 1 hour
"Helicone-RateLimit-Policy": "10;w=60;s=user", # Set rate limit policy
"Helicone-Retry-Enabled": "true", # Enable retry mechanism
"helicone-retry-num": "3", # Set number of retries
"helicone-retry-factor": "2", # Set exponential backoff factor
"Helicone-Model-Override": "gpt-3.5-turbo-0613", # Override the model used for cost calculation
"Helicone-Session-Id": "session-abc-123", # Set session ID for tracking
"Helicone-Session-Path": "parent-trace/child-trace", # Set session path for hierarchical tracking
"Helicone-Omit-Response": "false", # Include response in logging (default behavior)
"Helicone-Omit-Request": "false", # Include request in logging (default behavior)
"Helicone-LLM-Security-Enabled": "true", # Enable LLM security features
"Helicone-Moderations-Enabled": "true", # Enable content moderation
"Helicone-Fallbacks": '["gpt-3.5-turbo", "gpt-4"]', # Set fallback models
}

Caching und Ratenbegrenzung

Aktivieren Sie Caching und richten Sie Ratenbegrenzungsrichtlinien ein.

litellm.metadata = {
"Helicone-Auth": f"Bearer {os.getenv('HELICONE_API_KEY')}", # Authenticate to send requests to Helicone API
"Helicone-Cache-Enabled": "true", # Enable caching of responses
"Cache-Control": "max-age=3600", # Set cache limit to 1 hour
"Helicone-RateLimit-Policy": "100;w=3600;s=user", # Set rate limit policy
}

Sitzungsverfolgung und -tracing

Verfolgen Sie mehrstufige und agentenbasierte LLM-Interaktionen mithilfe von Sitzungs-IDs und Pfaden.

litellm.metadata = {
"Helicone-Auth": f"Bearer {os.getenv('HELICONE_API_KEY')}", # Authenticate to send requests to Helicone API
"Helicone-Session-Id": "session-abc-123", # The session ID you want to track
"Helicone-Session-Path": "parent-trace/child-trace", # The path of the session
}
  • Helicone-Session-Id: Verwenden Sie diese, um die eindeutige Kennung für die zu verfolgende Sitzung anzugeben. Dies ermöglicht es Ihnen, zusammengehörige Anfragen zu gruppieren.
  • Helicone-Session-Path: Dieser Header definiert den Pfad der Sitzung, sodass Sie übergeordnete und untergeordnete Traces darstellen können. Zum Beispiel "parent/child" repräsentiert einen untergeordneten Trace eines übergeordneten Traces.

Durch die Verwendung dieser beiden Header können Sie mehrstufige LLM-Interaktionen effektiv gruppieren und visualisieren und so Einblicke in komplexe KI-Workflows gewinnen.

Wiederholungs- und Fallback-Mechanismen

Richten Sie Wiederholungsmechanismen und Fallback-Optionen ein.

litellm.metadata = {
"Helicone-Auth": f"Bearer {os.getenv('HELICONE_API_KEY')}", # Authenticate to send requests to Helicone API
"Helicone-Retry-Enabled": "true", # Enable retry mechanism
"helicone-retry-num": "3", # Set number of retries
"helicone-retry-factor": "2", # Set exponential backoff factor
"Helicone-Fallbacks": '["gpt-3.5-turbo", "gpt-4"]', # Set fallback models
}

Unterstützte Header - Eine vollständige Liste der unterstützten Helicone-Header und ihrer Beschreibungen finden Sie in der Helicone-Dokumentation. Durch die Nutzung dieser Header und Metadatenoptionen können Sie tiefere Einblicke in Ihre LLM-Nutzung gewinnen, die Leistung optimieren und Ihre KI-Workflows mit Helicone und LiteLLM besser verwalten.