跳到主要内容

Comet Opik - 日志记录 + 评估

Opik 是一个开源的端到端 LLM 评估平台,可帮助开发者在开发和生产过程中追踪其 LLM 提示和响应。用户可以定义和运行评估,以便在部署前测试其 LLM 应用,检查幻觉、准确性、上下文检索等问题!

信息

我们想了解如何改进回调!会见 LiteLLM 创始人加入我们的 Discord

前提条件

您可以在 Opik 快速入门指南中了解更多关于设置 Opik 的信息。您也可以在我们的 自托管指南中了解更多关于自托管 Opik 的信息。

快速入门

仅需 4 行代码,即可使用 Opik 即时记录来自所有提供商的响应

在此处注册获取您的 Opik API 密钥!

import litellm
litellm.callbacks = ["opik"]

完整示例

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)

Opik 特定参数

这些参数可以在 metadata 中通过 opik 键传入。

字段

  • project_name - 要将数据发送到的 Opik 项目名称。
  • current_span_data - 用于追踪的当前 span 数据。
  • tags - 用于追踪的标签。

用法

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

支持与联系创始人