系统预设助手介绍

系统已经为您准备了多种预设的 AI 助手模式,每种模式都针对不同的使用场景进行了优化。您可以根据具体需求选择合适的助手模式:

自由模式

直接与大模型对话,适用于各种通用场景

深度推理

开启深度思考模式,AI 会展示详细的推理过程

业务联动

将大模型与业务系统结合,处理特定业务场景

Chat2BI

通过自然语言描述自动生成各种数据图表

MCP 服务

调用 MCP(Model Context Protocol)服务扩展功能

文生脑图

根据文字描述自动生成思维导图

AI 助手模式选择界面

自定义开发助手

如果预设的助手模式无法满足您的特殊需求,您可以按照以下步骤开发自己的 AI 助手。

第一步:注册助手信息

首先需要在前端配置文件中注册您的助手信息。

找到 gpt.ts 文件,在助手配置数组中添加新的助手信息

在 gpt.ts 中添加助手配置

{
    "id": "110",           // 助手唯一标识,不能与其他助手重复
    "name": "自定义模式",    // 助手显示名称
    "description": "自定义测试", // 助手功能描述
    "placeholder": "请输入您的问题", // 输入框提示文字
    "avatarUrl": "",       // 助手头像地址(可选)
    "welcomeMsg": "自定义测试模式" // 欢迎消息
}

建议 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) {
        // 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 名称
}

第四步:测试您的助手

完成上述配置后,您就可以在界面中看到并测试您的自定义助手了。

自定义助手测试界面

高级功能:复杂助手开发

对于有经验的开发者,您可以在自定义助手中调用其他已有的功能模块。

调用自由聊天模式

如果您想在自定义助手中复用自由聊天的能力:

// 获取自由聊天处理器并调用
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 助手了。记住开发流程的三个关键步骤:

  1. 前端注册:在 gpt.ts 中添加助手信息
  2. 后端实现:创建 ChatRule 实现类
  3. 系统注册:在枚举中建立映射关系

如果您在开发过程中遇到问题,建议先检查日志输出,大多数问题都可以通过日志信息快速定位。