数据模型与节点系统:一张图怎么被表示
30 秒导读: Flowise 里你在画布上拖出来的那张图,落到磁盘上就是一段 JSON 字符串(叫
flowData)。这一章讲两件事:这段 JSON 是什么结构(nodes+edges),以及图里每一个"积木"(节点)在代码里长什么样、怎么被加载进内存。只讲静态结构与积木本身;积木怎么被拼成流水线、怎么跑起来,留给 02(经典引擎)和 03(AgentFlow V2 引擎)。
本章属于 Flowise 讲解组,全景见 index.md。
1. 先建立直觉:图 = 数据 + 积木
Flowise 是"用拖拽搭 LLM 应用"的工具(详见 index.md)。要理解它,先分清两个层次:
- 一张具体的流(chatflow / agentflow):你画的这一张图,是运行时数据,存在数据库里。
- 一类积木(节点,node):图里的每个方框背后是一个代码类,随程序启动被加载,所有流共享。
打个比方:积木是乐高零件的模具(程序里固定的一批类),流是你用这些零件拼出来的某个模型(一份 JSON)。这一章就把这两层各自讲透。
┌───── ────────────────────────┐
│ 一类积木(节点类) │ ← 随程序启动加载一次
│ Calculator / LLM / … │ 所有流共享
└──────────────┬──────────────┘
│ 被引用
▼
flowData(JSON) ──解析──▶ { nodes, edges } ← 某一张具体的流
每个 node.data 存在 DB,一流一份
指向一类积木