Helicone - OSS LLM Observability Platform
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
- Verwendung von Callbacks
- 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
- Setzen Sie Helicone als Ihre Basis-URL über: litellm.api_base
- Ü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.