【AI Agent系列】【LangGraph】3. 一行代码让你的 LangGraph 结构可视化!

简介: 【AI Agent系列】【LangGraph】3. 一行代码让你的 LangGraph 结构可视化!
  • 大家好,我是 同学小张,日常分享AI知识和实战案例
  • 欢迎 点赞 + 关注 👏,持续学习持续干货输出
  • +v: jasper_8017 一起交流💬,一起进步💪。
  • 微信公众号也可搜【同学小张】 🙏

本站文章一览:


可视化是个非常非常非常有用和友好的东西。本文我们来实现 LangGraph 结构的可视化,当你创建的 LangGraph 结构越来越复杂时,可以利用它来方便地调查和优化逻辑。

一行代码即可搞定,非常简单。

0. 示例Demo

0.1 完整代码

先上完整代码,跑通再说

from langchain_openai import ChatOpenAI
from langchain_community.tools.tavily_search import TavilySearchResults
from langgraph.prebuilt import chat_agent_executor
from langchain_core.messages import HumanMessage
tools = [TavilySearchResults(max_results=1)]
model = ChatOpenAI()
app = chat_agent_executor.create_function_calling_executor(model, tools)
app.get_graph().print_ascii()

0.2 踩坑:No module named ‘grandalf’

运行时遇到问题:

安装 grandalf 即可:

pip install -U grandalf -i https://pypi.tuna.tsinghua.edu.cn/simple

0.3 运行结果

可以看到它可视化的图与上篇文章我自己画的图一样:

1. 代码详解

代码很简单,就两行有效代码:

(1)app = chat_agent_executor.create_function_calling_executor(model, tools),创建一个 Graph。

(2)app.get_graph().print_ascii(),以 ASCII 的形式打印出图形。

1.1 create_function_calling_executor

这个其实就是将我们上篇文章实现的 LangGraph 创建的过程做了一下封装而已,源码如下:

1.2 print_ascii

从运行结果来看,它最终实现的效果其实就是将节点和边打印出来,多了一些空格和星号。实现原理并不难,但是想要组织好这个这个显示的效果(空格和星号的数量等),感觉很难。部分源码如下,看看就好,会用就行:

def draw_ascii(self) -> str:
    return draw_ascii(
        {node.id: node_data_str(node) for node in self.nodes.values()},
        [(edge.source, edge.target) for edge in self.edges],
    )
def print_ascii(self) -> None:
    print(self.draw_ascii())  # noqa: T201
def draw_ascii(vertices: Mapping[str, str], edges: Sequence[Tuple[str, str]]) -> str:
    """Build a DAG and draw it in ASCII.
    Args:
        vertices (list): list of graph vertices.
        edges (list): list of graph edges.
    Returns:
        str: ASCII representation
    Example:
        >>> from dvc.dagascii import draw
        >>> vertices = [1, 2, 3, 4]
        >>> edges = [(1, 2), (2, 3), (2, 4), (1, 4)]
        >>> print(draw(vertices, edges))
        +---+     +---+
        | 3 |     | 4 |
        +---+    *+---+
          *    **   *
          *  **     *
          * *       *
        +---+       *
        | 2 |      *
        +---+     *
             *    *
              *  *
               **
             +---+
             | 1 |
             +---+
    """

2. 更好看一点的可视化

教程中还写了另一种可视化的方式,结果如下:

代码如下:

# app.get_graph().print_ascii() ## 替换掉这一句
from IPython.display import Image
Image(app.get_graph().draw_png())

运行前需要先安装如下依赖库

pip install -U prompt_toolkit  -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install -U grandalf -i https://pypi.tuna.tsinghua.edu.cn/simple

安装过程中你可能会遇到如下问题:ERROR: Could not build wheels for pygraphviz, which is required to install pyproject.toml-based projects

Windows平台的解决方法可参考这篇文章:https://savleen307.medium.com/pygraphviz-installation-in-windows-f45cc6fed981

3. 总结

本文介绍了两种将 LangGraph 可视化的方法,一行代码就可以搞定:

app.get_graph().print_ascii()

Image(app.get_graph().draw_png())

其中 app 是你构建的 LangGraph:

workflow = StateGraph(AgentState)
......
app = workflow.compile()

4. 参考

如果觉得本文对你有帮助,麻烦点个赞和关注呗 ~~~


  • 大家好,我是 同学小张,日常分享AI知识和实战案例
  • 欢迎 点赞 + 关注 👏,持续学习持续干货输出
  • +v: jasper_8017 一起交流💬,一起进步💪。
  • 微信公众号也可搜【同学小张】 🙏

本站文章一览:

相关文章
|
10天前
|
机器学习/深度学习 人工智能 自然语言处理
Gemini 2.0:谷歌推出的原生多模态输入输出 + Agent 为核心的 AI 模型
谷歌最新推出的Gemini 2.0是一款原生多模态输入输出的AI模型,以Agent技术为核心,支持多种数据类型的输入与输出,具备强大的性能和多语言音频输出能力。本文将详细介绍Gemini 2.0的主要功能、技术原理及其在多个领域的应用场景。
111 20
Gemini 2.0:谷歌推出的原生多模态输入输出 + Agent 为核心的 AI 模型
|
10天前
|
人工智能 API 语音技术
TEN Agent:开源的实时多模态 AI 代理框架,支持语音、文本和图像的实时通信交互
TEN Agent 是一个开源的实时多模态 AI 代理框架,集成了 OpenAI Realtime API 和 RTC 技术,支持语音、文本和图像的多模态交互,具备实时通信、模块化设计和多语言支持等功能,适用于智能客服、实时语音助手等多种场景。
93 15
TEN Agent:开源的实时多模态 AI 代理框架,支持语音、文本和图像的实时通信交互
|
5天前
|
机器学习/深度学习 人工智能 自然语言处理
AI自己长出了类似大脑的脑叶?新研究揭示LLM特征的惊人几何结构
近年来,大型语言模型(LLM)的内部运作机制备受关注。麻省理工学院的研究人员在论文《The Geometry of Concepts: Sparse Autoencoder Feature Structure》中,利用稀疏自编码器(SAE)分析LLM的激活空间,揭示了其丰富的几何结构。研究发现,特征在原子、大脑和星系三个尺度上展现出不同的结构,包括晶体结构、中尺度模块化结构和大尺度点云结构。这些发现不仅有助于理解LLM的工作原理,还可能对模型优化和其他领域产生重要影响。
46 25
|
19天前
|
人工智能 自然语言处理 JavaScript
Agent-E:基于 AutoGen 代理框架构建的 AI 浏览器自动化系统
Agent-E 是一个基于 AutoGen 代理框架构建的智能自动化系统,专注于浏览器内的自动化操作。它能够执行多种复杂任务,如填写表单、搜索和排序电商产品、定位网页内容等,从而提高在线效率,减少重复劳动。本文将详细介绍 Agent-E 的功能、技术原理以及如何运行该系统。
66 5
Agent-E:基于 AutoGen 代理框架构建的 AI 浏览器自动化系统
|
10天前
|
人工智能 数据挖掘
AI长脑子了?LLM惊现人类脑叶结构并有数学代码分区,MIT大牛新作震惊学界!
麻省理工学院的一项新研究揭示了大型语言模型(LLM)内部概念空间的几何结构,与人脑类似。研究通过分析稀疏自编码器生成的高维向量,发现了概念空间在原子、大脑和星系三个层次上的独特结构,为理解LLM的内部机制提供了新视角。论文地址:https://arxiv.org/abs/2410.19750
51 12
|
17天前
|
人工智能 文字识别 API
OpenSearch & AI 开放平台,实现0代码图片搜索!
本文主要介绍了如何利用阿里云的 OpenSearch 和 AI 搜索开放平台来构建一个无需编写代码就能完成的图片搜索功能。
63 12
|
12天前
|
人工智能 搜索推荐 安全
数百名研发人员用通义灵码,33%新增代码由AI生成,信也科技研发模式焕新升级
目前,信也科技数百名研发人员正在使用通义灵码,周活跃用户占比70%,新增代码中有33%由通义灵码编写,整体研发效率提升了11%,真正实现了数百研发人员开发效能的全面提升。
|
18天前
|
人工智能 自然语言处理 数据挖掘
田渊栋团队新作祭出Agent-as-a-Judge!AI智能体自我审判,成本暴跌97%
田渊栋团队提出Agent-as-a-Judge框架,利用智能体自身评估其他智能体的性能,不仅关注最终结果,还能提供中间反馈,更全面准确地反映智能体的真实能力。该框架在DevAI基准测试中表现出色,成本效益显著,为智能体的自我改进提供了有力支持。
35 7
|
26天前
|
人工智能 自然语言处理 搜索推荐
🤖【多Agent大爆炸】——灵活调用与实践指南,解锁AI协作新技能!
本文深入探讨了单Agent与多Agent在不同场景下的应用及优势,通过实例讲解多Agent如何实现高效协作,涵盖智能物流、教育、医疗等多个领域的实际应用,旨在帮助开发者掌握多Agent系统的调用与实践技巧。
94 5
|
26天前
|
机器学习/深度学习 人工智能 算法
【AI系统】AI 系统与程序代码关系
本文探讨了AI系统与程序代码之间的关系,通过PyTorch实现LeNet5神经网络模型为例,详细介绍了AI训练流程原理、网络模型构建方法、算子实现的系统问题以及AI系统执行的具体计算过程。文章不仅解释了神经网络的前向传播和反向传播机制,还深入分析了算子在AI框架中的作用及其底层实现,包括卷积层的具体计算和优化问题。此外,文章对比了使用PyTorch与直接使用cuDNN+CUDA编程实现神经网络模型的差异,强调了AI框架在提高开发效率、自动化内存管理和实现自动微分等方面的重要性。
33 1
下一篇
DataWorks