【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 一起交流💬,一起进步💪。
  • 微信公众号也可搜【同学小张】 🙏

本站文章一览:

相关文章
|
1月前
|
人工智能 自然语言处理 Java
效率飙升!3 款免费 AI 神器,让代码编写快到飞起
在快节奏的软件开发中,效率至关重要。本文推荐三款免费AI工具助力开发者:ChatCode基于自然语言生成高质量代码框架;CodeChecker实时检查语法与风格问题,提升代码规范性;飞算JavaAI通过一键生成完整工程代码,大幅缩短开发周期。这些工具从不同角度优化开发流程,让开发者事半功倍。
|
1月前
|
人工智能 缓存 NoSQL
告别繁琐:AI 工具 1 天搞定秒杀系统,代码全公开
秒杀系统是电商领域吸引流量和促进销售的重要工具,但传统开发面临高并发、库存超卖、缓存击穿等问题,耗时耗力。如今,AI工具如飞算JavaAI可自动生成高质量Java代码,例如Redis + Lua分布式锁,解决高并发下的锁问题,大幅提升QPS并优化响应时间。通过AI生成代码,不仅能有效应对缓存击穿和库存超卖等挑战,还显著缩短开发周期至1天,为高并发系统开发带来革命性变化。
|
15天前
|
机器学习/深度学习 人工智能 JSON
这个AI把arXiv变成代码工厂,快速复现顶会算法!Paper2Code:AI论文自动转代码神器,多智能体框架颠覆科研复现
Paper2Code是由韩国科学技术院与DeepAuto.ai联合开发的多智能体框架,通过规划、分析和代码生成三阶段流程,将机器学习论文自动转化为可执行代码仓库,显著提升科研复现效率。
146 18
这个AI把arXiv变成代码工厂,快速复现顶会算法!Paper2Code:AI论文自动转代码神器,多智能体框架颠覆科研复现
|
18天前
|
人工智能 Rust API
AI 乱写代码怎么破?使用 Context7 MCP Server 让 AI 写出靠谱代码!
本文通过实际案例演示了如何利用 Context7 MCP Server 解决 AI 编程助手中的代码幻觉问题和使用过时 API 的问题。借助 Context7 获取最新、最准确的代码建议,显著提升了 AI 生成的代码质量,从而有效提高了开发效率。
436 10
AI 乱写代码怎么破?使用 Context7 MCP Server 让 AI 写出靠谱代码!
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
用AI精准定位问题代码,调试时间直接砍半!LocAgent:斯坦福开源代码调试神器,多跳推理锁定问题代码
LocAgent是由斯坦福大学、耶鲁大学等顶尖机构联合开发的代码定位框架,通过将代码库转化为图结构并利用大语言模型的多跳推理能力,实现精准的问题代码定位。
125 1
用AI精准定位问题代码,调试时间直接砍半!LocAgent:斯坦福开源代码调试神器,多跳推理锁定问题代码
|
21天前
|
人工智能 自然语言处理 JavaScript
我定制的通义灵码 Project Rules,用 AI 写出“更懂我”的代码
本文分享了一名全栈开发同学使用通义灵码做代码生成、接口注释、测试代码补全等工作,效率明显提升的体会。
|
23天前
|
人工智能 自然语言处理 JavaScript
我定制的通义灵码 Project Rules,用 AI 写出“更懂我”的代码
本文分享了一名全栈开发者使用通义灵码的经验,重点介绍了其新推出的“Project Rules”功能。通过定制规则,解决了团队代码风格不统一、AI生成代码不符合项目规范等问题。示例配置包括Vue 3 + Composition API的语法规范、命名约定、注释风格等。作者总结,该功能显著提升了编码效率和团队协作一致性,并建议用户根据自身需求定制规则以优化体验。文中还提出了对团队规则共享、行业模版内置等功能的期待。
|
23天前
|
人工智能 前端开发 Java
十几行代码实现 Manus,Spring AI Alibaba Graph 快速预览
Spring AI Alibaba Graph 的核心开发已完成,即将发布正式版本。开发者可基于此轻松构建工作流、智能体及多智能体系统,功能丰富且灵活。文章通过三个示例展示了其应用:1) 客户评价处理系统,实现两级问题分类与自动处理;2) 基于 ReAct Agent 的天气预报查询系统,循环执行用户指令直至完成;3) 基于 Supervisor 多智能体的 OpenManus 实现,简化了流程控制逻辑并优化了工具覆盖度。此外,还提供了运行示例的方法及未来规划,欢迎开发者参与贡献。
|
28天前
|
人工智能 自然语言处理 测试技术
自然语言生成代码一键搞定!Codex CLI:OpenAI开源终端AI编程助手,代码重构+测试全自动
Codex CLI是OpenAI推出的轻量级AI编程智能体,基于自然语言指令帮助开发者高效生成代码、执行文件操作和进行版本控制,支持代码生成、重构、测试及数据库迁移等功能。
137 0
自然语言生成代码一键搞定!Codex CLI:OpenAI开源终端AI编程助手,代码重构+测试全自动
|
1月前
|
人工智能 数据可视化 关系型数据库
23.5K star!零代码构建AI知识库,这个开源神器让问答系统开发像搭积木一样简单!
FastGPT 是一个基于大语言模型的智能知识库平台,提供开箱即用的数据处理、RAG检索和可视化AI工作流编排能力,让你无需编写代码就能轻松构建复杂的问答系统!