Helicone - 开源 LLM 可观测性平台
tip
这是社区维护的。如果你遇到错误,请提出问题: https://github.com/BerriAI/litellm
Helicone 是一个开源的可观测性平台,它代理你的 LLM 请求并提供关于你的使用情况、花费、延迟等的洞察。
使用 Helicone 与 LiteLLM
LiteLLM 提供了 success_callbacks 和 failure_callbacks,使你能够根据响应状态轻松地将数据记录到 Helicone。
支持的 LLM 提供商
Helicone 可以记录来自 各种 LLM 提供商 的请求,包括:
- OpenAI
- Azure
- Anthropic
- Gemini
- Groq
- Cohere
- Replicate
- 等等
集成方法
有两种主要方法将 Helicone 与 LiteLLM 集成:
- 使用回调
- 使用 Helicone 作为代理
让我们详细探讨每种方法。
方法 1:使用回调
只需一行代码即可立即使用 Helicone 记录你在 所有提供商 的响应:
litellm.success_callback = ["helicone"]
完整代码
import os
from litellm import completion
## 设置环境变量
os.environ["HELICONE_API_KEY"] = "your-helicone-key"
os.environ["OPENAI_API_KEY"] = "your-openai-key"
# 设置回调
litellm.success_callback = ["helicone"]
# OpenAI 调用
response = completion(
model="gpt-4o",
messages=[{"role": "user", "content": "Hi 👋 - I'm OpenAI"}],
)
print(response)
方法 2:使用 Helicone 作为代理
Helicone 的代理提供了 高级功能 如缓存、速率限制、通过 PromptArmor 实现的 LLM 安全性等。
要使用 Helicone 作为你的 LLM 请求的代理:
- 通过
litellm.api_base将 Helicone 设置为你的基础 URL - 通过
litellm.metadata传递 Helicone 请求头
完整代码:
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')}", # 认证以发送请求到 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)
高级用法
你可以使用 Helicone 头为你的请求添加自定义元数据和属性。以下是一些例子:
litellm.metadata = {
"Helicone-Auth": f"Bearer {os.getenv('HELICONE_API_KEY')}", # 认证以发送请求到 Helicone API
"Helicone-User-Id": "user-abc", # 指定发起请求的用户
"Helicone-Property-App": "web", # 自定义属性以添加额外信息
"Helicone-Property-Custom": "any-value", # 添加任何自定义属性
"Helicone-Prompt-Id": "prompt-supreme-court", # 分配一个 ID 以将此提示与未来版本关联
"Helicone-Cache-Enabled": "true", # 启用响应缓存
"Cache-Control": "max-age=3600", # 设置缓存限制为 1 小时
"Helicone-RateLimit-Policy": "10;w=60;s=user", # 设置速率限制策略
"Helicone-Retry-Enabled": "true", # 启用重试机制
"helicone-retry-num": "3", # 设置重试次数
"helicone-retry-factor": "2", # 设置指数回退因子
"Helicone-Model-Override": "gpt-3.5-turbo-0613", # 覆盖用于成本计算的模型
"Helicone-Session-Id": "session-abc-123", # 设置会话 ID 以进行跟踪
"Helicone-Session-Path": "parent-trace/child-trace", # 设置会话路径以进行分层跟踪
"Helicone-Omit-Response": "false", # 包括响应在日志中(默认行为)
"Helicone-Omit-Request": "false", # 包括请求在日志中(默认行为)
"Helicone-LLM-Security-Enabled": "true", # 启用 LLM 安全功能
"Helicone-Moderations-Enabled": "true", # 启用内容审核
"Helicone-Fallbacks": '["gpt-3.5-turbo", "gpt-4"]', # 设置备用模型
}
缓存和速率限制
启用缓存并设置速率限制策略:
litellm.metadata = {
"Helicone-Auth": f"Bearer {os.getenv('HELICONE_API_KEY')}", # 认证以发送请求到 Helicone API
"Helicone-Cache-Enabled": "true", # 启用响应缓存
"Cache-Control": "max-age=3600", # 设置缓存限制为 1 小时
"Helicone-RateLimit-Policy": "100;w=3600;s=user", # 设置速率限制策略
}
会话跟踪和追踪
使用会话 ID 和路径跟踪多步骤和代理 LLM 交互:
litellm.metadata = {
"Helicone-Auth": f"Bearer {os.getenv('HELICONE_API_KEY')}", # 认证以发送请求到 Helicone API
"Helicone-Session-Id": "session-abc-123", # 你要跟踪的会话 ID
"Helicone-Session-Path": "parent-trace/child-trace", # 会话的路径
}
Helicone-Session-Id: 使用此项来指定您希望跟踪的会话的唯一标识符。这允许您将相关请求分组在一起。Helicone-Session-Path: 此标头定义会话的路径,使您能够表示父级和子级跟踪。例如,"parent/child" 表示父级跟踪的一个子级跟踪。
通过使用这两个标头,您可以有效地分组和可视化多步骤的LLM交互,深入了解复杂的AI工作流程。
重试与回退机制
设置重试机制和回退选项:
litellm.metadata = {
"Helicone-Auth": f"Bearer {os.getenv('HELICONE_API_KEY')}", # 认证以发送请求到Helicone API
"Helicone-Retry-Enabled": "true", # 启用重试机制
"helicone-retry-num": "3", # 设置重试次数
"helicone-retry-factor": "2", # 设置指数退避因子
"Helicone-Fallbacks": '["gpt-3.5-turbo", "gpt-4"]', # 设置回退模型
}
支持的标头 - 如需查看所有支持的Helicone标头及其描述的完整列表,请参阅Helicone文档。 通过利用这些标头和元数据选项,您可以更深入地了解您的LLM使用情况,优化性能,并通过Helicone和LiteLLM更好地管理您的AI工作流程。