Comet Opik - 日志记录 + 评估
Opik 是一个开源的端到端 LLM 评估平台,可帮助开发者在开发和生产过程中追踪其 LLM 提示和响应。用户可以定义和运行评估,以便在部署前测试其 LLM 应用,检查幻觉、准确性、上下文检索等问题!
信息
我们想了解如何改进回调!会见 LiteLLM 创始人 或 加入我们的 Discord
前提条件
您可以在 Opik 快速入门指南中了解更多关于设置 Opik 的信息。您也可以在我们的 自托管指南中了解更多关于自托管 Opik 的信息。
快速入门
仅需 4 行代码,即可使用 Opik 即时记录来自所有提供商的响应
在此处注册获取您的 Opik API 密钥!
import litellm
litellm.callbacks = ["opik"]
完整示例
- SDK
- 代理
import litellm
import os
# Configure the Opik API key or call opik.configure()
os.environ["OPIK_API_KEY"] = ""
os.environ["OPIK_WORKSPACE"] = ""
# LLM provider API Keys:
os.environ["OPENAI_API_KEY"] = ""
# set "opik" as a callback, litellm will send the data to an Opik server (such as comet.com)
litellm.callbacks = ["opik"]
# openai call
response = litellm.completion(
model="gpt-3.5-turbo",
messages=[
{"role": "user", "content": "Why is tracking and evaluation of LLMs important?"}
]
)
如果您在使用了 Opik 的 @track
装饰器追踪的函数中使用 liteLLM,您需要在 metadata 属性中提供 current_span_data
字段,以便将 LLM 调用分配到正确的跟踪链中
from opik import track
from opik.opik_context import get_current_span_data
import litellm
litellm.callbacks = ["opik"]
@track()
def streaming_function(input):
messages = [{"role": "user", "content": input}]
response = litellm.completion(
model="gpt-3.5-turbo",
messages=messages,
metadata = {
"opik": {
"current_span_data": get_current_span_data(),
"tags": ["streaming-test"],
},
}
)
return response
response = streaming_function("Why is tracking and evaluation of LLMs important?")
chunks = list(response)
- 设置 config.yaml
model_list:
- model_name: gpt-3.5-turbo-testing
litellm_params:
model: gpt-3.5-turbo
api_key: os.environ/OPENAI_API_KEY
litellm_settings:
callbacks: ["opik"]
environment_variables:
OPIK_API_KEY: ""
OPIK_WORKSPACE: ""
- 运行代理
litellm --config config.yaml
- 测试它!
curl -L -X POST 'http://0.0.0.0:4000/v1/chat/completions' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer sk-1234' \
-d '{
"model": "gpt-3.5-turbo-testing",
"messages": [
{
"role": "user",
"content": "What's the weather like in Boston today?"
}
]
}'
Opik 特定参数
这些参数可以在 metadata 中通过 opik
键传入。
字段
project_name
- 要将数据发送到的 Opik 项目名称。current_span_data
- 用于追踪的当前 span 数据。tags
- 用于追踪的标签。
用法
- SDK
- 代理
from opik import track
from opik.opik_context import get_current_span_data
import litellm
litellm.callbacks = ["opik"]
messages = [{"role": "user", "content": input}]
response = litellm.completion(
model="gpt-3.5-turbo",
messages=messages,
metadata = {
"opik": {
"current_span_data": get_current_span_data(),
"tags": ["streaming-test"],
},
}
)
return response
curl -L -X POST 'http://0.0.0.0:4000/v1/chat/completions' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer sk-1234' \
-d '{
"model": "gpt-3.5-turbo-testing",
"messages": [
{
"role": "user",
"content": "What's the weather like in Boston today?"
}
],
"metadata": {
"opik": {
"current_span_data": "...",
"tags": ["streaming-test"],
},
}
}'
支持与联系创始人
- 安排演示 👋
- 社区 Discord 💭
- 我们的电话号码 📞 +1 (770) 8783-106 / +1 (412) 618-6238
- 我们的电子邮件 ✉️ ishaan@berri.ai / krrish@berri.ai