技术背景介绍
在进行AI模型调用时,尤其是使用LangChain时,我们经常需要对调用过程进行日志记录和调试,以便分析和优化调用的效果。Log10 是一个开源的无代理 LLM 数据管理和应用开发平台,让我们可以记录、调试和标记 LangChain 调用,从而更便捷地进行模型调用的管理。
核心原理解析
Log10通过提供一系列的回调函数,集成到LangChain中,从而实现对每次调用的日志记录和调试功能。它可以帮助开发者更好地理解模型的行为,快速发现并解决问题。
代码实现演示
环境变量配置
首先,请在创建Log10账户后,在环境变量中设置以下变量:
LOG10_TOKEN
和LOG10_ORG_ID
LOG10_URL=https://log10.io
OPENAI_API_KEY
或ANTHROPIC_API_KEY
这些变量在设置账户时可以从Settings和Organization标签页中获取。
LangChain调用日志记录
下面是一个使用Log10进行LangChain调用日志记录的示例代码:
from langchain_openai import ChatOpenAI
from langchain_core.messages import HumanMessage
from log10.langchain import Log10Callback
from log10.llm import Log10Config
# 初始化Log10回调函数
log10_callback = Log10Callback(log10_config=Log10Config())
# 定义消息列表
messages = [
HumanMessage(content="You are a ping pong machine"),
HumanMessage(content="Ping?"),
]
# 创建LangChain模型实例并添加回调函数
llm = ChatOpenAI(model="gpt-3.5-turbo", callbacks=[log10_callback])
# 预测消息
completion = llm.predict_messages(messages)
print(completion)
使用标签
为每次调用添加标签可以帮助我们更好地管理和筛选日志。下面是一个带有标签的示例代码:
from langchain_openai import ChatOpenAI
from langchain_core.messages import HumanMessage
from log10.langchain import Log10Callback
from log10.llm import Log10Config
# 初始化Log10回调函数
log10_callback = Log10Callback(log10_config=Log10Config())
# 定义消息列表
messages = [
HumanMessage(content="You are a ping pong machine"),
HumanMessage(content="Ping?"),
]
# 创建LangChain模型实例并添加标签
llm = ChatOpenAI(model="gpt-3.5-turbo", callbacks=[log10_callback], temperature=0.5, tags=["test"])
completion = llm.predict_messages(messages, tags=["foobar"])
print(completion)
LangChain与OpenAI API混用
我们还可以将直接的OpenAI调用与LangChain调用混用,并使用Log10记录日志:
import os
from log10.load import log10, log10_session
import openai
from langchain_openai import OpenAI
# 初始化Log10
log10(openai)
# 使用标签记录会话
with log10_session(tags=["foo", "bar"]):
# 直接调用OpenAI API
response = openai.Completion.create(
model="text-ada-001",
prompt="Where is the Eiffel Tower?",
temperature=0,
max_tokens=1024,
top_p=1,
frequency_penalty=0,
presence_penalty=0,
)
print(response)
# 通过LangChain调用
llm = OpenAI(model_name="text-ada-001", temperature=0.5)
response = llm.predict("You are a ping pong machine.\nPing?\n")
print(response)
应用场景分析
通过Log10对LangChain调用进行日志记录,主要适用于以下几个场景:
- 调试模型调用:快速发现调用中的问题,提高开发效率。
- 调用分析:记录调用数据,分析模型的表现和改进点。
- 调用分类:通过标签管理调用,更好地组织和查找日志。
实践建议
- 合理使用标签:给不同类型的调用添加标签,有助于后续的筛选和分析。
- 定期检查日志:及时检查记录的日志,发现并解决潜在问题。
- 结合具体需求调试:根据具体的业务需求进行调试,优化调用效果。
如果遇到问题欢迎在评论区交流。
—END—