Administrator
2025-09-03 18fdf89338e84e1cab48c2795631777e22b05b81
feat(ai): 添加灵通角色设定PROMPT功能

- 在 AiService 接口中新增 getSystemSetLTAiPrompt 方法
- 在 AiServiceImpl 类中实现 getSystemSetLTAiPrompt 方法,用于获取灵通角色设定PROMPT
- 修改 AiTalkServiceImpl 类,使用新的灵通角色设定PROMPT替代原有的固定提示语
- 在 LlmStrategyContextEnum 枚举中添加 LLM_LING_TONG_PROMPT 项,用于定义灵通角色设定PROMPT的类型
4 files modified
22 ■■■■ changed files
src/main/java/cc/mrbird/febs/ai/service/AiService.java 1 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/ai/service/impl/AiServiceImpl.java 13 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/ai/service/impl/AiTalkServiceImpl.java 2 ●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/ai/strategy/enumerates/LlmStrategyContextEnum.java 6 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/ai/service/AiService.java
@@ -17,6 +17,7 @@
public interface AiService {
    Integer getSystemSetAiType();
    String getSystemSetLTAiPrompt();
    AiResponse start(List<AiMessage> aiMessageDtoList,Integer type, String productRoleId, String answer, String question);
src/main/java/cc/mrbird/febs/ai/service/impl/AiServiceImpl.java
@@ -129,6 +129,19 @@
    }
    @Override
    public String getSystemSetLTAiPrompt() {
        String prompt = "请将问题转换为中文,并给出一个最详细的答案。";
        DataDictionaryCustom dataDictionaryCustom = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                LlmStrategyContextEnum.LLM_LING_TONG_PROMPT.getCode(),
                LlmStrategyContextEnum.LLM_LING_TONG_PROMPT.getCode()
        );
        if (dataDictionaryCustom != null) {
            prompt = dataDictionaryCustom.getValue();
        }
        return prompt;
    }
    @Override
    public AiResponse start(List<AiMessage> aiMessageDtoList,Integer type,String productRoleId, String content, String question) {
        if (!StringUtils.hasText(productRoleId)) {
            log.warn("productRoleId 不能为空");
src/main/java/cc/mrbird/febs/ai/service/impl/AiTalkServiceImpl.java
@@ -138,7 +138,7 @@
        if (dto.getPrompt() != null){
            LlmStrategyDto llmStrategyDto = new LlmStrategyDto();
            llmStrategyDto.setRole(Role.SYSTEM.getValue());
            llmStrategyDto.setContent(AiPromptEnum.STREAM_NORMAL.getPrompt());
            llmStrategyDto.setContent(aiService.getSystemSetLTAiPrompt());
            llmStrategyDtoList.add(llmStrategyDto);
        }
        if (dto.getQuestion() != null){
src/main/java/cc/mrbird/febs/ai/strategy/enumerates/LlmStrategyContextEnum.java
@@ -10,10 +10,8 @@
public enum LlmStrategyContextEnum {
    /**
     * 1:用户提问
     * 2:AI回答
     */
    LLM_LING_TONG_PROMPT("LLM_LING_TONG_PROMPT","灵通角色设定PROMPT"),
    LLM_STRATEGY("LLM_STRATEGY","系统设置AI模型平台"),
    /**