系统预设助手介绍
系统已经为您准备了多种预设的 AI 助手模式,每种模式都针对不同的使用场景进行了优化。您可以根据具体需求选择合适的助手模式:
MCP 服务
调用 MCP(Model Context Protocol)服务扩展功能
自定义开发助手
如果预设的助手模式无法满足您的特殊需求,您可以按照以下步骤开发自己的 AI 助手。
第一步:注册助手信息
首先需要在前端配置文件中注册您的助手信息。
找到 gpt.ts
文件,在助手配置数组中添加新的助手信息
{
"id": "110", // 助手唯一标识,不能与其他助手重复
"name": "自定义模式", // 助手显示名称
"description": "自定义测试", // 助手功能描述
"placeholder": "请输入您的问题", // 输入框提示文字
"avatarUrl": "", // 助手头像地址(可选)
"welcomeMsg": "自定义测试模式" // 欢迎消息
}
第二步:实现助手业务逻辑
在后端创建助手的核心逻辑处理类。
创建助手类
在 com.pig4cloud.pigx.knowledge.support.rule
包下创建新的 Java 类
实现 ChatRule 接口
让您的类实现 ChatRule
接口,这是所有助手必须遵循的规范
@Slf4j
@RequiredArgsConstructor
@Component("customChat") // 注意:这个名称将在后续步骤中使用
public class CustomChatRule implements ChatRule {
private final ModelProvider modelProvider;
@SneakyThrows
public Flux<AiMessageResultDTO> process(ChatMessageDTO chatMessageDTO) {
// 1. 获取流式助手服务
AiStreamAssistantService streamAssistantService = modelProvider
.getAiStreamAssistant(chatMessageDTO.getModelName())
.getValue();
// 2. 调用大模型进行对话
// PromptBuilder.render("base-simple-system.st") 是系统提示词模板
Flux<String> chatResponseFlux = streamAssistantService.chat(
chatMessageDTO.getConversationId(), // 会话ID
PromptBuilder.render("base-simple-system.st"), // 系统提示词
chatMessageDTO.getContent() // 用户输入内容
);
// 3. 将响应转换为标准格式并返回
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); // 1L 是知识库的 ID
// 调用知识库助手
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"); // 替换为实际的 MCP 服务 ID
chatMessageDTO.setExtDetails(extDetails);
// 调用 MCP 助手
Flux<AiMessageResultDTO> resultDTOFlux = SpringUtil
.getBean(McpChatRule.class)
.process(chatMessageDTO);
您可以在 MCP 管理界面中查看可用的 MCP 服务 ID
通过以上步骤,您就可以创建属于自己的 AI 助手了。记住开发流程的三个关键步骤:
- 前端注册:在 gpt.ts 中添加助手信息
- 后端实现:创建 ChatRule 实现类
- 系统注册:在枚举中建立映射关系
如果您在开发过程中遇到问题,建议先检查日志输出,大多数问题都可以通过日志信息快速定位。