开发 AI 助手
系统已经为您准备了多种预设的 AI 助手模式,每种模式都针对不同的使用场景进行了优化。您可以根据具体需求选择合适的助手模式:
| 模式 | 描述 |
|---|
| 自由模式 | 直接与大模型对话,适用于各种通用场景 |
| 深度推理 | 开启深度思考模式,AI 会展示详细的推理过程 |
| 业务联动 | 将大模型与业务系统结合,处理特定业务场景 |
| Chat2BI | 通过自然语言描述自动生成各种数据图表 |
| MCP 服务 | 调用 MCP(Model Context Protocol)服务扩展功能 |
| 文生脑图 | 根据文字描述自动生成思维导图 |
自定义开发助手
如果预设的助手模式无法满足您的特殊需求,您可以按照以下步骤开发自己的 AI 助手。
第一步:注册助手信息
首先需要在前端配置文件中注册您的助手信息。
💡配置文件位置
找到 gpt.ts 文件,在助手配置数组中添加新的助手信息
{
"id": "110",
"name": "自定义模式",
"description": "自定义测试",
"placeholder": "请输入您的问题",
"avatarUrl": "",
"welcomeMsg": "自定义测试模式"
}
💡ID 命名建议
建议使用三位数字作为助手 ID,避免与系统预设助手冲突
第二步:实现助手业务逻辑
在后端创建助手的核心逻辑处理类。
1
创建助手类
在 com.pig4cloud.pigx.knowledge.support.rule 包下创建新的 Java 类
2
实现 ChatRule 接口
让您的类实现 ChatRule 接口,这是所有助手必须遵循的规范
3
编写处理逻辑
在 process 方法中实现您的具体业务逻辑
@Slf4j
@RequiredArgsConstructor
@Component("customChat")
public class CustomChatRule implements ChatRule {
private final ModelProvider modelProvider;
@SneakyThrows
public Flux<AiMessageResultDTO> process(ChatMessageDTO chatMessageDTO) {
// 获取流式助手服务
AiStreamAssistantService streamAssistantService = modelProvider
.getAiStreamAssistant(chatMessageDTO.getModelName())
.getValue();
// 调用大模型进行对话
Flux<String> chatResponseFlux = streamAssistantService.chat(
chatMessageDTO.getConversationId(),
PromptBuilder.render("base-simple-system.st"),
chatMessageDTO.getContent()
);
// 转换为标准格式并返回
return chatResponseFlux.map(AiMessageResultDTO::new);
}
}
⚠组件名称唯一性
确保 @Component 注解中的名称(如 "customChat")是唯一的,它将作为助手的标识符
第三步:注册助手枚举
在系统枚举中注册您的助手,建立 ID 与实现类的映射关系。
在 com.pig4cloud.pigx.knowledge.support.constant.ChatTypeEnums 中添加:
public enum ChatTypeEnums {
// ...其他已有的助手
CUSTOM_CHAT(110L, "customChat"),
// 110L 对应第一步中的 ID
// "customChat" 对应第二步中的 @Component 名称
}
ℹ枚举作用说明
这个枚举建立了前端助手 ID 与后端实现类之间的映射关系,系统通过这个映射来找到对应的处理逻辑
第四步:测试您的助手
完成上述配置后,您就可以在界面中看到并测试您的自定义助手了。
高级功能:复杂助手开发
对于有经验的开发者,您可以在自定义助手中调用其他已有的功能模块。
调用自由聊天模式
如果您想在自定义助手中复用自由聊天的能力:
// 获取自由聊天处理器并调用
Flux<AiMessageResultDTO> resultDTOFlux = SpringUtil
.getBean(SimpleChatRule.class)
.process(chatMessageDTO);
调用知识库功能
让您的助手具备知识库检索能力:
// 设置要查询的知识库 ID
chatMessageDTO.setDatasetId(1L);
// 调用知识库助手
Flux<AiMessageResultDTO> resultDTOFlux = SpringUtil
.getBean(VectorChatRule.class)
.process(chatMessageDTO);
调用 MCP 服务
整合 MCP(Model Context Protocol)服务:
// 创建扩展配置
ChatMessageDTO.ExtDetails extDetails = new ChatMessageDTO.ExtDetails();
extDetails.setMcpId("your-mcp-service-id");
chatMessageDTO.setExtDetails(extDetails);
// 调用 MCP 助手
Flux<AiMessageResultDTO> resultDTOFlux = SpringUtil
.getBean(McpChatRule.class)
.process(chatMessageDTO);
💡查看可用服务
您可以在 MCP 管理界面中查看可用的 MCP 服务 ID
总结
通过以上步骤,您就可以创建属于自己的 AI 助手了。记住开发流程的三个关键步骤:
- 前端注册 - 在 gpt.ts 中添加助手信息
- 后端实现 - 创建 ChatRule 实现类
- 系统注册 - 在枚举中建立映射关系