Administrator
2025-09-01 537cea53b6e54fdcf1b178f1ef84d5fd07e27f57
refactor(ai): 重构 AI模块代码

- 新增 LlmStrategyContextEnum 枚举类,用于统一响应内容的键名
- 重构 AliLlmStrategyServiceImpl 类,使用新的枚举类替换硬编码字符串
- 重命名 LlmStrategyEnum 文件路径,统一枚举类存放位置
- 更新相关控制器和工具类的引用,以适应新的枚举类结构
2 files modified
1 files added
1 files renamed
27 ■■■■ changed files
src/main/java/cc/mrbird/febs/ai/controller/TestController.java 4 ●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/ai/strategy/Impl/AliLlmStrategyServiceImpl.java 5 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/ai/strategy/enumerates/LlmStrategyContextEnum.java 16 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/ai/strategy/enumerates/LlmStrategyEnum.java 2 ●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/ai/controller/TestController.java
@@ -4,7 +4,7 @@
import cc.mrbird.febs.ai.mapper.AiMemberMapper;
import cc.mrbird.febs.ai.req.talk.AiTalkAnswerStream;
import cc.mrbird.febs.ai.res.memberTalk.ApiMemberTalkStreamVo;
import cc.mrbird.febs.ai.strategy.LlmStrategyEnum;
import cc.mrbird.febs.ai.strategy.enumerates.LlmStrategyEnum;
import cc.mrbird.febs.ai.strategy.LlmStrategyFactory;
import cc.mrbird.febs.ai.strategy.param.LlmStrategyDto;
import cc.mrbird.febs.ai.utils.UUID;
@@ -18,8 +18,6 @@
import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.asymmetric.KeyType;
import cn.hutool.crypto.asymmetric.RSA;
import cn.hutool.json.JSONUtil;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationResult;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import io.reactivex.Flowable;
src/main/java/cc/mrbird/febs/ai/strategy/Impl/AliLlmStrategyServiceImpl.java
@@ -1,6 +1,7 @@
package cc.mrbird.febs.ai.strategy.Impl;
import cc.mrbird.febs.ai.strategy.LlmStrategyService;
import cc.mrbird.febs.ai.strategy.enumerates.LlmStrategyContextEnum;
import cc.mrbird.febs.ai.strategy.param.LlmStrategyDto;
import cc.mrbird.febs.common.entity.FebsResponse;
import cc.mrbird.febs.common.exception.FebsException;
@@ -114,10 +115,10 @@
                .map(message -> {
                    HashMap<String, String> stringStringHashMap = new HashMap<>();
                    if (StrUtil.isNotEmpty(message.getOutput().getChoices().get(0).getMessage().getReasoningContent())){
                        stringStringHashMap.put("reasoningContent",message.getOutput().getChoices().get(0).getMessage().getReasoningContent());
                        stringStringHashMap.put(LlmStrategyContextEnum.THINK.name(),message.getOutput().getChoices().get(0).getMessage().getReasoningContent());
                    }
                    if (StrUtil.isNotEmpty(message.getOutput().getChoices().get(0).getMessage().getContent())){
                        stringStringHashMap.put("content",message.getOutput().getChoices().get(0).getMessage().getReasoningContent());
                        stringStringHashMap.put(LlmStrategyContextEnum.CONTENT.name(),message.getOutput().getChoices().get(0).getMessage().getReasoningContent());
                    }
                    return new FebsResponse().success().data(stringStringHashMap);
                })
src/main/java/cc/mrbird/febs/ai/strategy/enumerates/LlmStrategyContextEnum.java
New file
@@ -0,0 +1,16 @@
package cc.mrbird.febs.ai.strategy.enumerates;
public enum LlmStrategyContextEnum {
    THINK("思考过程","THINK"),
    CONTENT("响应内容","CONTENT");
    private final String code;
    private final String name;
    LlmStrategyContextEnum(String code,String name) {
        this.code = code;
        this.name = name;
    }
}
src/main/java/cc/mrbird/febs/ai/strategy/enumerates/LlmStrategyEnum.java
File was renamed from src/main/java/cc/mrbird/febs/ai/strategy/LlmStrategyEnum.java
@@ -1,4 +1,4 @@
package cc.mrbird.febs.ai.strategy;
package cc.mrbird.febs.ai.strategy.enumerates;
import lombok.Getter;