Commit 83d86bcf9bba3e39337650fa6bae68c17effaf59
1 parent
7c9714d0
【功能新增】AI 大模型:支持思维导图的管理
Showing
5 changed files
with
6 additions
and
6 deletions
yudao-module-ai/pom.xml
| @@ -18,7 +18,7 @@ | @@ -18,7 +18,7 @@ | ||
| 18 | 18 | ||
| 19 | <name>${project.artifactId}</name> | 19 | <name>${project.artifactId}</name> |
| 20 | <description> | 20 | <description> |
| 21 | - ai 模块下,接入 LLM 大模型,支持聊天、绘图、音乐、写作、思维脑图等功能。 | 21 | + ai 模块下,接入 LLM 大模型,支持聊天、绘图、音乐、写作、思维导图等功能。 |
| 22 | 目前已接入各种模型,不限于: | 22 | 目前已接入各种模型,不限于: |
| 23 | 国内:通义千问、文心一言、讯飞星火、智谱 GLM、DeepSeek | 23 | 国内:通义千问、文心一言、讯飞星火、智谱 GLM、DeepSeek |
| 24 | 国外:OpenAI、Ollama、Midjourney、StableDiffusion、Suno | 24 | 国外:OpenAI、Ollama、Midjourney、StableDiffusion、Suno |
yudao-module-ai/yudao-module-ai-api/src/main/java/cn/iocoder/yudao/module/ai/enums/AiChatRoleEnum.java
| @@ -22,7 +22,7 @@ public enum AiChatRoleEnum implements IntArrayValuable { | @@ -22,7 +22,7 @@ public enum AiChatRoleEnum implements IntArrayValuable { | ||
| 22 | 除此之外不需要除了正文内容外的其他回复,如标题、开头、任何解释性语句或道歉。 | 22 | 除此之外不需要除了正文内容外的其他回复,如标题、开头、任何解释性语句或道歉。 |
| 23 | """), | 23 | """), |
| 24 | 24 | ||
| 25 | - AI_MIND_MAP_ROLE(2, "脑图助手", """ | 25 | + AI_MIND_MAP_ROLE(2, "导图助手", """ |
| 26 | 你是一位非常优秀的思维导图助手,你会把用户的所有提问都总结成思维导图,然后以 Markdown 格式输出。markdown 只需要输出一级标题,二级标题,三级标题,四级标题,最多输出四级,除此之外不要输出任何其他 markdown 标记。下面是一个合格的例子: | 26 | 你是一位非常优秀的思维导图助手,你会把用户的所有提问都总结成思维导图,然后以 Markdown 格式输出。markdown 只需要输出一级标题,二级标题,三级标题,四级标题,最多输出四级,除此之外不要输出任何其他 markdown 标记。下面是一个合格的例子: |
| 27 | # Geek-AI 助手 | 27 | # Geek-AI 助手 |
| 28 | ## 完整的开源系统 | 28 | ## 完整的开源系统 |
yudao-module-ai/yudao-module-ai-biz/pom.xml
| @@ -12,7 +12,7 @@ | @@ -12,7 +12,7 @@ | ||
| 12 | 12 | ||
| 13 | <name>${project.artifactId}</name> | 13 | <name>${project.artifactId}</name> |
| 14 | <description> | 14 | <description> |
| 15 | - ai 模块下,接入 LLM 大模型,支持聊天、绘图、音乐、写作、思维脑图等功能。 | 15 | + ai 模块下,接入 LLM 大模型,支持聊天、绘图、音乐、写作、思维导图等功能。 |
| 16 | 目前已接入各种模型,不限于: | 16 | 目前已接入各种模型,不限于: |
| 17 | 国内:通义千问、文心一言、讯飞星火、智谱 GLM、DeepSeek | 17 | 国内:通义千问、文心一言、讯飞星火、智谱 GLM、DeepSeek |
| 18 | 国外:OpenAI、Ollama、Midjourney、StableDiffusion、Suno | 18 | 国外:OpenAI、Ollama、Midjourney、StableDiffusion、Suno |
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/mindmap/AiMindMapController.java
| @@ -31,7 +31,7 @@ public class AiMindMapController { | @@ -31,7 +31,7 @@ public class AiMindMapController { | ||
| 31 | private AiMindMapService mindMapService; | 31 | private AiMindMapService mindMapService; |
| 32 | 32 | ||
| 33 | @PostMapping(value = "/generate-stream", produces = MediaType.TEXT_EVENT_STREAM_VALUE) | 33 | @PostMapping(value = "/generate-stream", produces = MediaType.TEXT_EVENT_STREAM_VALUE) |
| 34 | - @Operation(summary = "脑图生成(流式)", description = "流式返回,响应较快") | 34 | + @Operation(summary = "导图生成(流式)", description = "流式返回,响应较快") |
| 35 | @PermitAll // 解决 SSE 最终响应的时候,会被 Access Denied 拦截的问题 | 35 | @PermitAll // 解决 SSE 最终响应的时候,会被 Access Denied 拦截的问题 |
| 36 | public Flux<CommonResult<String>> generateMindMap(@RequestBody @Valid AiMindMapGenerateReqVO generateReqVO) { | 36 | public Flux<CommonResult<String>> generateMindMap(@RequestBody @Valid AiMindMapGenerateReqVO generateReqVO) { |
| 37 | return mindMapService.generateMindMap(generateReqVO, getLoginUserId()); | 37 | return mindMapService.generateMindMap(generateReqVO, getLoginUserId()); |
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/mindmap/AiMindMapServiceImpl.java
| @@ -61,10 +61,10 @@ public class AiMindMapServiceImpl implements AiMindMapService { | @@ -61,10 +61,10 @@ public class AiMindMapServiceImpl implements AiMindMapService { | ||
| 61 | 61 | ||
| 62 | @Override | 62 | @Override |
| 63 | public Flux<CommonResult<String>> generateMindMap(AiMindMapGenerateReqVO generateReqVO, Long userId) { | 63 | public Flux<CommonResult<String>> generateMindMap(AiMindMapGenerateReqVO generateReqVO, Long userId) { |
| 64 | - // 1. 获取脑图模型。尝试获取思维导图助手角色,如果没有则使用默认模型 | 64 | + // 1. 获取导图模型。尝试获取思维导图助手角色,如果没有则使用默认模型 |
| 65 | AiChatRoleDO role = CollUtil.getFirst( | 65 | AiChatRoleDO role = CollUtil.getFirst( |
| 66 | chatRoleService.getChatRoleListByName(AiChatRoleEnum.AI_MIND_MAP_ROLE.getName())); | 66 | chatRoleService.getChatRoleListByName(AiChatRoleEnum.AI_MIND_MAP_ROLE.getName())); |
| 67 | - // 1.1 获取脑图执行模型 | 67 | + // 1.1 获取导图执行模型 |
| 68 | AiChatModelDO model = getModel(role); | 68 | AiChatModelDO model = getModel(role); |
| 69 | // 1.2 获取角色设定消息 | 69 | // 1.2 获取角色设定消息 |
| 70 | String systemMessage = role != null && StrUtil.isNotBlank(role.getSystemMessage()) | 70 | String systemMessage = role != null && StrUtil.isNotBlank(role.getSystemMessage()) |