7.7 KiB
7.7 KiB
腾讯云思维导图工作流说明
1. 工作流目标
当前工作流的目标是:
- 接收用户主题与会话 ID
- 通过大模型生成思维导图内容
- 将内容整理为合法 JSON 字符串
- 对 JSON 做校验和修复
- 将 JSON 字符串反序列化为对象
- 调用后端工具保存脑图
- 将生成后的访问链接回复给用户
这条链路的关键点是:
- 大模型节点输出保持为
string - 插件节点接收的
mindmap_json必须是object - 所以中间必须经过一次
变量转换节点 -> JSON 反序列化
2. 当前工作流节点
根据当前画布,节点顺序为:
开始生成思维导图内容生成思维导图内容json检查json变量转换1生成前端页面回复1结束
3. 节点职责说明
3.1 开始
作用:
- 接收工作流启动输入
建议输入变量:
topicsession_id
说明:
topic用于告诉大模型本次脑图主题session_id用于插件调用时传给后端接口
3.2 生成思维导图内容
节点类型:
- 大模型节点
作用:
- 根据用户主题先生成一版结构化脑图内容
建议输出:
Output.Content:文本内容
建议:
- 这一层可以先输出脑图提纲或中间描述
- 不要求它直接输出最终可落库的 JSON
3.3 生成思维导图内容json
节点类型:
- 大模型节点
作用:
- 将上一节点的内容转换成思维导图 JSON 字符串
建议输出:
Output.Content:JSON 字符串
这一节点必须满足:
- 只输出纯 JSON
- 不要输出解释文字
- 不要输出 markdown 代码块
- 不要输出前后缀说明
建议要求它输出的格式为:
{
"id": "node_0",
"label": "主题",
"parent_id": null,
"level": 0,
"is_leaf": false,
"children": []
}
3.4 检查json
节点类型:
- 大模型节点
作用:
- 对上一节点生成的 JSON 字符串做检查和修复
建议输出:
Output.Content:修复后的 JSON 字符串
建议规则:
- 如果 JSON 合法且结构正确,原样返回
- 如果不合法,修复后返回
- 始终只输出 JSON 字符串
- 不输出解释文字
这一节点输出仍然应该是 string,不要直接改成 JSON 类型输出。
3.5 变量转换1
节点类型:
- 变量转换节点
当前建议配置:
- 转换类型:
JSON - 转换方式:
JSON 反序列化 - 转换变量:
检查json.Output.Content
作用:
- 将
检查json节点输出的 JSON 字符串反序列化为对象
为什么必须有这一步:
- 大模型节点输出的是字符串
- 插件节点里的
mindmap_json入参需要的是object
该节点默认输出:
OutputError
后续插件节点应引用:
变量转换1.Output
不要引用:
变量转换1.Error
3.6 生成前端页面
节点类型:
- 插件节点
作用:
- 调用后端 API 创建并保存思维导图
- 返回脑图访问链接
当前插件接口建议:
- 调用地址:
http://公网IP:8000/api/mindmaps - 请求方式:
POST - Content-Type:
application/json
插件输入参数应配置为:
session_idmindmap_json
工作流内的输入映射建议如下:
输入参数 session_id
来源建议:
开始.session_id
如果你是通过应用 API 调工作流,也可以使用:
API.session_id
输入参数 mindmap_json
来源必须是:
变量转换1.Output
也就是反序列化后的对象,而不是大模型输出的字符串。
3.7 回复1
节点类型:
- 回复节点
作用:
- 将生成后的脑图链接返回给用户
当前文案可以写成:
思维导图已生成!请打开以下链接查看:{{url}}
如果你在插件节点里直接暴露的是完整路径变量,也可以写成:
思维导图已生成!请打开以下链接查看:{{生成前端页面.Output.Body.url}}
如果还想带标题,可以改成:
思维导图已生成!
标题:{{生成前端页面.Output.Body.title}}
链接:{{生成前端页面.Output.Body.url}}
3.8 结束
作用:
- 标记工作流结束
4. 当前工作流的数据流
可以理解为:
开始
-> 生成思维导图内容
-> 生成思维导图内容json
-> 检查json
-> 变量转换1(JSON反序列化)
-> 生成前端页面(插件/API落库)
-> 回复1
-> 结束
其中最关键的一段是:
检查json.Output.Content (string)
-> 变量转换1.Output (object)
-> 生成前端页面.mindmap_json
5. 插件节点推荐配置
如果你使用当前项目现有后端接口,插件建议如下:
工具基础信息
- 工具名称:
create_mindmap - 调用地址:
http://公网IP:8000/api/mindmaps - 请求方法:
POST - 请求体格式:
JSON
输入参数
body.session_id:stringbody.mindmap_json:object
输出参数
url:stringtitle:stringunique_id:string
如果平台输出变量是以返回体路径显示,也可以直接使用:
Output.Body.urlOutput.Body.titleOutput.Body.unique_id
6. 当前工作流下各节点变量关系
| 节点 | 关键输入 | 关键输出 | 备注 |
|---|---|---|---|
| 开始 | topic、session_id |
输入变量本身 | 作为整条链路源头 |
| 生成思维导图内容 | topic |
Output.Content |
生成脑图内容 |
| 生成思维导图内容json | 上一节点内容 | Output.Content |
输出 JSON 字符串 |
| 检查json | 上一节点 JSON 字符串 | Output.Content |
修复后的 JSON 字符串 |
| 变量转换1 | 检查json.Output.Content |
Output、Error |
Output 为 object |
| 生成前端页面 | session_id、mindmap_json |
Output.Body.url 等 |
调用插件/API |
| 回复1 | url |
文本回复 | 回复用户链接 |
7. 当前工作流的关键注意点
7.1 不要让大模型节点直接输出 object 给插件
当前这条链里,最稳的方式仍然是:
- 大模型输出
string - 变量转换节点做
JSON 反序列化 - 插件节点接收
object
7.2 插件节点的 mindmap_json 必须吃反序列化后的结果
正确:
变量转换1.Output
错误:
检查json.Output.Content生成思维导图内容json.Output.Content
因为这两者还是字符串。
7.3 插件节点的 session_id 不要写死
建议引用:
开始.session_id- 或
API.session_id
这样才能保证每次生成的脑图都能和对应会话关联。
7.4 当前工作流还缺少显式异常分支
建议后续补一个条件判断:
- 如果
变量转换1.Error不为空,直接回复“JSON 解析失败” - 如果
生成前端页面.Error不为空,直接回复“脑图保存失败”
当前不加也能跑,但可维护性会差一些。
8. 建议的后续优化
如果你后面想继续提升稳定性,优先做这几件事:
- 在
检查json节点里进一步收紧输出约束,只允许返回纯 JSON 字符串 - 在工作流里增加错误分支,处理反序列化失败和插件调用失败
- 插件输出中除了
url外,再将title一并回复给用户 - 如果后面模型经常输出不稳定,可以增加代码节点做 schema 校验
9. 当前工作流与项目接口的对应关系
当前插件节点 生成前端页面 对应后端接口:
接口实际请求体结构为:
{
"session_id": "string",
"mindmap_json": {
"id": "node_0",
"label": "主题",
"parent_id": null,
"level": 0,
"is_leaf": false,
"children": []
}
}
接口实际返回中至少会包含:
{
"unique_id": "string",
"title": "string",
"url": "string"
}