AI 思维导图
AI 思维导图,基于 LLM 大模型,实现智能思维导图的功能。
它的实现原理,是根据 prompt 提示词生成 markdown 内容,之后再通过 markdown 转换成思维导图。

整个功能,涉及到 2 个表:
- 【配置】
ai_api_key:API 密钥表 - 【导图】
ai_mind_map:思维导图记录表
下面,我们逐个表进行介绍,这个过程中也会讲讲对应的功能。
省略 creator/create_time/updater/update_time/deleted/tenant_id 等通用字段
# 1. API 密钥表
在 《AI 对话》 中,我们已经介绍了 API 密钥表,这里就不再赘述了。
你想使用哪个模型生成思维导图,可以参考对应的文档,进行配置:
- 国内模型:《通义千问》、《DeepSeek》、《豆包》、《混元》、《文心一言》、《硅基流动》、《讯飞星火》、《智谱 GLM》、《月之暗面 Kimi》、《MiniMax》、《百川智能》、《阶跃星辰》、《小米 MiMo》
- 国外模型:《OpenAI(ChatGPT)》、《Anthropic(Claude)》、《Grok》、《LLAMA》、《微软 OpenAI(ChatGPT)》、《谷歌 Gemini》
友情提示:
一般情况下,建议先使用 《DeepSeek》 模型,因为免费送了一些 tokens,可以先体验一下。
# 1.1 补充说明
AI 生成思维导图时,使用什么模型和 system prompt 呢?
① 模型:用户在页面上选择,只能选择已启用的「聊天」模型,对应 AiModelTypeEnum 的 CHAT。
② system prompt:内置在 AiChatRoleEnum 的 AI_MIND_MAP_ROLE 中。用户输入的需求,原样作为 user 消息,不套用模板。
# 2. 思维导图记录表
思维导图记录表,用户每发起一次思维导图,都会记录一条记录。
# 2.1 表结构
CREATE TABLE `ai_mind_map` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号',
`user_id` bigint NOT NULL COMMENT '用户编号',
`platform` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '平台',
`model_id` bigint NOT NULL COMMENT '模型编号',
`model` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '模型',
`prompt` text COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '生成内容提示',
`generated_content` text COLLATE utf8mb4_unicode_ci COMMENT '生成的思维导图内容',
`error_message` varchar(1024) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '错误信息',
`request_id` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '本地请求 UUID',
`input_tokens` bigint DEFAULT NULL COMMENT '实际输入 Token,未知为空',
`output_tokens` bigint DEFAULT NULL COMMENT '实际输出 Token,未知为空',
`total_tokens` bigint DEFAULT NULL COMMENT '实际合计 Token,未知为空',
PRIMARY KEY (`id`),
KEY `idx_user_id` (`user_id`),
KEY `idx_request_id` (`request_id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='AI 思维导图表';
① user_id 字段:对应 system_users 表的 id 字段,表示哪个用户生成的思维导图。
② platform 字段:表示平台,对应 AiPlatformEnum 枚举,目前支持多个 AI 大模型。
model_id 字段:表示模型编号,对应 ai_model 表的 id 字段。
model 字段:表示模型标识,对应不同平台的模型标识,例如说 OpenAI 的 gpt-5.5、通义千问的 qwen3.7-plus、DeepSeek 的 deepseek-flash 等等。
③ prompt 字段:表示生成内容提示,即生成思维导图的提示词。
generated_content 字段:表示生成的思维导图内容,markdown 格式。
④ error_message 字段:表示错误信息,如果生成失败,会记录错误信息。
⑤ request_id 字段:请求编号,对应 ai_request_log 表的 request_id 字段,即这次生成的请求日志。
input_tokens、output_tokens、total_tokens 字段:这次生成的输入、输出、合计 Token 数,来自模型平台的返回,没有返回时为空。对应 《请求日志与 Token 用量》 文档。
# 2.2 管理后台
① 前端对应 [AI 大模型 -> AI 思维导图] 菜单,对应 yudao-ui-admin-vue3 项目的 @/views/ai/mindmap/index 目录,提供给普通用户使用,生成思维导图。
左侧「思维导图创作中心」有两种方式:
- AI 生成:选择模型,输入需求,可以是一个主题,也可以粘贴文章、会议纪要等长文,点击「智能生成思维导图」
- 已有 Markdown:粘贴 Markdown 内容,点击「直接生成」,只在前端渲染成思维导图,不调用模型,也不新增记录
右侧「思维导图预览」,生成过程中流式展示 Markdown,完成后渲染成思维导图,并展示生成状态、本次的 Token 用量。渲染成功后,可以点击「下载 PNG」导出图片;导图中的外链图片可能缺失,文字节点保证完整。

它的后端 HTTP 接口,由 yudao-module-ai 模块的 mindmap 包的 AiMindMapController 实现。
最最最关键的代码!!!大家可以重点看看!!!
AiMindMapController 提供的 #generateMindMap(...) 生成思维导图接口,即 POST /ai/mind-map/generate-stream。
它的内部,校验所选的模型后,调用 Spring AI 的 ChatModel 的 #stream(...) 方法,实现大模型的流式调用。
② 前端对应 [AI 大模型 -> 控制台 -> 思维导图管理] 菜单,对应 yudao-ui-admin-vue3 项目的 @/views/ai/mindmap/manager 目录,提供给管理员使用,按用户、提示词、创建时间查询思维导图记录,可以预览导图、查看 Token 用量和错误信息,以及删除记录。
