综合介绍
观察者(Observers)是一个开源的Python SDK,旨在为生成式AI API提供全面的可观测性。该库使用户能够轻松跟踪和记录与AI模型的交互,并将这些观察结果存储在多个后端中。无论是OpenAI还是其他实现OpenAI API消息格式的LLM提供商,观察者都能有效地进行监控和记录。通过与DuckDB、Hugging Face数据集等存储后端的集成,用户可以方便地查询和分析AI交互数据。
功能列表
- 生成式AI API监控:支持OpenAI及其他实现OpenAI API消息格式的LLM提供商。
- 多后端数据存储:支持DuckDB、Hugging Face数据集等多种存储后端。
- 文档信息观察:通过Docling集成,支持PDF、DOCX、PPTX、XLSX、Images、HTML、AsciiDoc和Markdown等多种文档格式。
- 开源遥测支持:通过OpenTelemetry集成,支持多种遥测提供商。
- 统一接口:通过AISuite和Litellm,提供统一的LLM API接口。
使用帮助
安装
首先,您可以使用pip安装观察者SDK:
pip install observers
如果您希望通过AISuite或Litellm使用其他LLM提供商,可以使用以下命令安装:
pip install observers[aisuite] # 或者 observers[litellm]
若需观察文档信息,可以使用Docling集成:
pip install observers[docling]
对于开源遥测支持,可以安装以下内容:
pip install observers[opentelemetry]
使用
观察者库区分观察者和存储。观察者包装生成式AI API(如OpenAI或llama-index)并跟踪其交互。存储类则将这些观察结果同步到不同的存储后端(如DuckDB或Hugging Face数据集)。
示例代码
以下是一个简单的示例代码,展示了如何使用观察者库发送请求并记录交互:
from observers.observers import wrap_openai
from observers.stores import DuckDBStore
from openai import OpenAI
store = DuckDBStore()
openai_client = OpenAI()
client = wrap_openai(openai_client, store=store)
response = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": "Tell me a joke."}],
)
该代码将请求发送到一个无服务器端点,并使用默认存储DatasetsStore将交互记录到Hub数据集中。数据集将被推送到您的个人工作区(如http://hf.co/{your_username})。
配置存储
要配置不同的存储后端,可以参考以下示例:
- DuckDB存储:默认存储为DuckDB,可以使用DuckDB CLI进行查看和查询。
- Hugging Face数据集存储:可以使用Hugging Face Datasets Viewer查看和查询数据集。
- Argilla存储:允许将观察结果同步到Argilla。
- OpenTelemetry存储:允许将观察结果同步到任何支持OpenTelemetry的提供商。