项目介绍:LangChain Visualizer
LangChain Visualizer 是一个工具,旨在为使用 LangChain 的开发者提供一种可视化 UI,以便更好地观察和分析与语言模型的交互。
功能与特点
LangChain Visualizer 通过借鉴 Ought 的 ICE 可视化工具,以美观的界面展现 LangChain 的交互过程。以下是它的一些主要功能:
- 查看完整提示文本:用户可以看到每次与语言模型(LLM)交互时发送的完整提示文本。这为用户提供了清晰的上下文,以确保每次调用的输入是正确的。
- 可视化提示组成:通过不同颜色标识,可以轻松分辨出哪些部分是硬编码的,哪些部分是通过模板替换而来的。
- 执行流程检查:软件允许用户查看每个函数在执行栈中的变化,帮助追踪执行步骤。
- 成本查看:如果使用的是 OpenAI 的
text-davinci-003
模型,用户还可以查看每次语言模型调用的费用及整个运行过程的总费用。
快速开始
要快速上手 LangChain Visualizer,请按照以下步骤操作:
-
通过命令安装库:
pip install langchain-visualizer
注意:如果您使用的是 Linux 系统,可能需要先安装
libyaml
:apt install -y libyaml-dev
-
在 Python 的入口文件中,将
import langchain_visualizer
作为首个导入。 -
编写一个异步函数以可视化您正在运行的工作流程。
-
使用
langchain_visualizer.visualize
来调用该函数。
示例运行
想要运行截图展示的示例,您可以安装库及可选依赖:
pip install langchain-visualizer google-search-results openai
如果尚未设置 OpenAI 或 SERP 的 API 密钥,可以通过克隆项目来重放录制的交互:
pip install vcr-langchain
OPENAI_API_KEY=dummy python tests/agents/test_langchain_getting_started.py
若已完成 API 密钥设置,您可以直接运行以下脚本:
import langchain_visualizer
import asyncio
from langchain.agents import initialize_agent, load_tools
from langchain.llms import OpenAI
llm = OpenAI(temperature=0.7)
tools = load_tools(["serpapi", "llm-math"], llm=llm)
agent = initialize_agent(tools, llm, agent="zero-shot-react-description", verbose=True)
async def search_agent_demo():
return agent.run(
"Who is Olivia Wilde's boyfriend? What is his current age raised to the 0.23 power?"
)
langchain_visualizer.visualize(search_agent_demo)
运行后,将打开一个浏览器窗口,您可以实时观察代理的执行过程。
Jupyter Notebook 支持
LangChain Visualizer 还支持在 Jupyter Notebook 中使用。在 Notebook 中使用前,请确保从 langchain_visualizer.jupyter
导入 visualize
函数。
嵌入可视化
如果需要可视化文档分块的嵌入过程,可以使用 visualize_embeddings
函数,然后再可视化主链:
from langchain_visualizer import visualize, visualize_embeddings
async def run_chain():
...
visualize_embeddings()
visualize(run_chain)
为什么不使用 LangChain 的内置跟踪器?
LangChain Visualizer 提供了一些独特的功能:
- 我更喜欢 ICE 的用户界面,特别是:
- 对于模板变量填充部分用颜色高亮显示
- 可以在不离开追踪页面的情况下快速检查不同的 LLM 调用
- 对于缓存的 LLM 调用,我更希望我的代理逻辑可视化保持静态
- 更喜欢查看工具(如
PythonREPL
)的实际调用时机,而不仅仅是高层次的链执行(如LLMMathChain
)
尽管如此,LangChain 的跟踪器支持仍更强大。需注意,目前 LangChain Visualizer 还未完全支持所有功能,如有需要,请提交 PR 或问题反馈。
其他项目
还请查看 VCR LangChain,它是一个用于记录 LLM 交互的库,方便用于测试和演示。