当前位置: 首页 > ds >正文

动手实践:LangChain流图可视化全解析

图片

为什么需要可视化?

LCEL的可组合模式支持组件的声明式链接
该模式使得任意Runnable都可通过管道操作符(|)和字典常量(dict)与其他Runnable组合到一起,从而通过简单的组件创建出复杂的工作流。但是不管如何组合,组合结果仍然是Runnable

当组合链变复杂时,get_graph接口生成的图结构(Graph)能清晰展示执行流的节点(nodes)和边(edges),帮助开发者:

  1. 1. 直观理解工作流逻辑
  2. 2. 快速定位性能瓶颈

 往期文章推荐:

  • 20.Python3安装MySQL-python踩坑实录:从报错到完美解决的实战指南
  • 19.Git可视化革命:3分钟学会用Mermaid+AI画专业分支图
  • 18.vscode常用快捷命令和插件
  • 17.AI制图新纪元:3分钟用Mermaid画出专业类图
  • 16.3分钟搞定数据可视化:Mermaid饼图终极指南
  • 15.5分钟玩转Swagger UI:Docker部署+静态化实战
  • 14.记录下blog的成长过程
  • 13.再说一说LangChain Runnable接口
  • 12.Docker实战:5分钟搞定MySQL容器化部署与最佳实践
  • 11.Ollama模板全解析:从基础语法到高级应用实战
  • 10.Ollama完全指南:从零开始玩转本地大模型部署
  • 9.django中如何解析content-type=application/json的请求
  • 8.实测DeepSeek分词机制:你的输入如何变成计费Token?
  • 7.英语分词进化论:BPE相关论文汇总
  • 6.硬核实战 | 3分钟Docker部署ClickHouse列存数据库
  • 5.技术深解 | DeepSeek-R1-0528训练参数全透视:163K上下文与MoE高效架构的基石
  • 4.DeepSeek最新升级实测:推理能力翻倍,但离世界顶尖还有多远?
  • 3.血泪教训!Redis默认配置竟会导致数据丢失?Docker生产部署指南
  • 2.Function Call:大模型如何突破自身局限“使用工具“
  • 1.DeepSeek动手实践:创建一个自动连点器

图表征 Graph Representation

通过get_graph接口可以查看通过各种组合构建的Runnable的执行流的结构。该结构表示为一张图Graph,主要属性就是节点nodes和边edges

Graph有多种可视化方法。可以用来可视化执行流的结构、调试或分析Runnable组合的复杂的执行流,能够帮助理解该执行流和识别该LCEL组合的执行流的瓶颈。

  • • to_json() - 生成json表示
  • • draw_ascii() - 以ascii码艺术字符串的方式可视化(主要在终端显示)(依赖包grandalf)
  • • draw_mermaid() - 以mermaid格式的字符串可视化
  • • draw_mermaid_png() - 以mermaid格式的字符串可视化为png图片,默认通过API渲染图片(需要联网(mermaid.ink)),可设置draw_method=MermaidDrawMethod.PYPPETEER(依赖pyppeteer和chromium(需要访问https://storage.googleapis.com/chromium-browser-snapshots/Win_x64/1181205/chrome-win.zip))
  • • draw_png() - 生成png格式的图片(依赖包pygraphviz和本地安装graphviz)

可视化

基本可组合示例

Ascii码可视化
        +-------------+| LambdaInput |+-------------+***+--------+| Lambda |+--------+***
+----------------------------+
| Parallel<mul_2,mul_5>Input |
+----------------------------+**        ****            ***                *
+--------+          +--------+
| Lambda |          | Lambda |
+--------+          +--------+**        ****    ***  *
+-----------------------------+
| Parallel<mul_2,mul_5>Output |
+-----------------------------+
Mermaid可视化

Reference

  • • https://deepwiki.com/langchain-ai/langchain/2-core-architecture
  • • https://deepwiki.com/langchain-ai/langchain/2.2-runnable-interface-and-lcel

本文由「大千AI助手」原创发布,专注用真话讲AI,回归技术本质。拒绝神话或妖魔化。搜索「大千AI助手」关注我,一起撕掉过度包装,学习真实的AI技术!

http://www.xdnf.cn/news/14597.html

相关文章:

  • [从0到1]环境准备--anaconda与pycharm的安装
  • Linux系统firewall-offline-cmd命令在企业网络安全防护中的应用案例分析
  • 图形编辑器基于Paper.js教程29:基于图层的所有矢量图元的填充规则实现
  • 【C++】list容器实现
  • Lighthouse与首屏优化
  • 【看到哪里写到哪里】如何在C中使用多进程设计(1)
  • STM32 开发 - STM32CubeMX 下载芯片支持包、创建 HAL 库工程
  • 牙科医疗设备EMC电磁兼容技术讨论
  • 数列的极限
  • 推荐标注数据标注
  • 【精选】计算机毕业设计基于SpringBoot高校社团管理系统 社团信息维护 活动发布报名 成员审核与公告发布平台源码+论文+PPT+讲解
  • Git(三) Git 分支工作流管理模型探究与实践
  • 电容篇---常见作用
  • Apache Iceberg与Hive集成:分区表篇
  • StarRocks Community Monthly Newsletter (May)
  • JavaScript中Date对象用法详解
  • 深入实践Caffeine+Redis两级缓存架构:从原理到高可用设计
  • 「Linux文件及目录管理」文件及目录操作类命令
  • Grdle版本与Android Gradle Plugin版本, Android Studio对应关系
  • OpenWrt:交叉编译openssl
  • redis缓存的基础知识
  • DBSCAN(Density-Based Spatial Clustering of Applications with Noise)基于密度的聚类方法介绍
  • 移动应用开发实验室web组大一下期末考核题解
  • 【arXiv2024】时间序列|TimesFM-ICF:即插即用!时间序列预测新王者!吊打微调!
  • 如何用ai设计测试
  • WebStorm编辑器侧边栏
  • NodeJS的fs模块的readFile和createReadStream区别以及常见方法
  • Nacos 实战指南:服务注册、分级与环境隔离
  • 第二十六周:序列化和反序列化
  • 变幻莫测:CoreData 中 Transformable 类型面面俱到(三)