# 使用Arthur Callback Handler自动记录模型推理:完整指南
## 引言
在快速发展的AI领域,模型监控和可观测性(Observability)变得越来越重要。Arthur平台为开发者提供了一种监控AI模型性能的高效方式。本指南将介绍如何使用Arthur Callback Handler来自动记录LLM(大型语言模型)的推理过程。如果您的模型尚未集成到Arthur平台,请查看我们的[生成文本模型入门指南](https://app.arthur.ai)。更多关于Arthur SDK的使用信息,请访问[官方文档](https://docs.arthur.ai)。
## 主要内容
### 安装和设置
首先,确保您已经安装了所需的Python包,并在代码中设置Arthur的凭证:
```python
# 放置Arthur凭证
arthur_url = "https://app.arthur.ai"
arthur_login = "your-arthur-login-username-here"
arthur_model_id = "your-arthur-model-id-here"
使用Callback Handler
通过结合Langchain库和Arthur Callback Handler,我们可以方便地捕获和记录模型推理的每一个步骤:
from langchain_community.callbacks import ArthurCallbackHandler
from langchain_core.callbacks import StreamingStdOutCallbackHandler
from langchain_core.messages import HumanMessage
from langchain_openai import ChatOpenAI
def make_langchain_chat_llm():
return ChatOpenAI(
streaming=True,
temperature=0.1,
callbacks=[
StreamingStdOutCallbackHandler(),
ArthurCallbackHandler.from_credentials(
arthur_model_id, arthur_url=arthur_url, arthur_login=arthur_login
),
],
)
chatgpt = make_langchain_chat_llm()
运行Chat LLM
使用以下代码实现循环输入输出,使得用户的交互记录自动保存到Arthur平台:
def run(llm):
history = []
while True:
user_input = input("\n>>> input >>>\n>>>: ")
if user_input == "q":
break
history.append(HumanMessage(content=user_input))
history.append(llm(history))
run(chatgpt)
常见问题和解决方案
什么是Callback Handler?
Callback Handler是一种用于响应特定事件或条件的代码块。在支持事件驱动或异步编程的语言中非常常见。开发者可以定义自定义行为,以便在事件触发时执行。它们可以在处理用户输入、网络请求、异步操作等场景中提供灵活且模块化的处理方式。
如何充分利用Callback Handler?
- 理解事件或条件:明确需要响应的事件或条件。
- 定义回调函数:创建一个在事件发生时执行的函数。
- 注册回调函数:确保回调函数在事件发生时被调用。
- 处理回调逻辑:在回调函数中实现所需的逻辑。
- 考虑错误处理:确保回调函数内的错误能被优雅地处理。
- 保持代码可读性和模块化:使用设计模式来保持代码的整洁和可扩展性。
总结和进一步学习资源
通过本文,您了解了如何使用Arthur Callback Handler来记录LLM的推理过程。您可以进一步学习以下资源:
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---