Commit f4a0058e88ab97b6c4af52a155ff1975dd7129b5

Authored by YunaiV
1 parent 645dfae0

【代码评审】AI:qwen 的接入调整

Showing 12 changed files with 22 additions and 24 deletions
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/config/AiChatClientFactory.java
@@ -3,7 +3,7 @@ package cn.iocoder.yudao.module.ai.config; @@ -3,7 +3,7 @@ package cn.iocoder.yudao.module.ai.config;
3 import cn.iocoder.yudao.framework.ai.core.enums.AiPlatformEnum; 3 import cn.iocoder.yudao.framework.ai.core.enums.AiPlatformEnum;
4 import org.springframework.ai.chat.ChatClient; 4 import org.springframework.ai.chat.ChatClient;
5 import org.springframework.ai.chat.StreamingChatClient; 5 import org.springframework.ai.chat.StreamingChatClient;
6 -import org.springframework.ai.models.tongyi.QianWenChatClient; 6 +import cn.iocoder.yudao.framework.ai.core.model.tongyi.QianWenChatClient;
7 import cn.iocoder.yudao.framework.ai.core.model.xinghuo.XingHuoChatClient; 7 import cn.iocoder.yudao.framework.ai.core.model.xinghuo.XingHuoChatClient;
8 import cn.iocoder.yudao.framework.ai.core.model.yiyan.YiYanChatClient; 8 import cn.iocoder.yudao.framework.ai.core.model.yiyan.YiYanChatClient;
9 import org.springframework.ai.ollama.OllamaChatClient; 9 import org.springframework.ai.ollama.OllamaChatClient;
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/config/YudaoAiAutoConfiguration.java
1 package cn.iocoder.yudao.framework.ai.config; 1 package cn.iocoder.yudao.framework.ai.config;
2 2
3 import cn.hutool.core.io.IoUtil; 3 import cn.hutool.core.io.IoUtil;
4 -import org.springframework.ai.models.tongyi.QianWenChatClient;  
5 -import org.springframework.ai.models.tongyi.QianWenChatModal;  
6 -import org.springframework.ai.models.tongyi.QianWenOptions;  
7 -import org.springframework.ai.models.tongyi.api.QianWenApi; 4 +import cn.iocoder.yudao.framework.ai.core.model.tongyi.QianWenChatClient;
  5 +import cn.iocoder.yudao.framework.ai.core.model.tongyi.QianWenChatModal;
  6 +import cn.iocoder.yudao.framework.ai.core.model.tongyi.QianWenOptions;
  7 +import cn.iocoder.yudao.framework.ai.core.model.tongyi.api.QianWenApi;
8 import cn.iocoder.yudao.framework.ai.core.model.xinghuo.XingHuoChatClient; 8 import cn.iocoder.yudao.framework.ai.core.model.xinghuo.XingHuoChatClient;
9 import cn.iocoder.yudao.framework.ai.core.model.xinghuo.XingHuoOptions; 9 import cn.iocoder.yudao.framework.ai.core.model.xinghuo.XingHuoOptions;
10 import cn.iocoder.yudao.framework.ai.core.model.xinghuo.api.XingHuoApi; 10 import cn.iocoder.yudao.framework.ai.core.model.xinghuo.api.XingHuoApi;
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/enums/AiPlatformEnum.java
@@ -5,10 +5,9 @@ import lombok.Getter; @@ -5,10 +5,9 @@ import lombok.Getter;
5 5
6 // TODO 芋艿:这块,看看要不要调整下; 6 // TODO 芋艿:这块,看看要不要调整下;
7 /** 7 /**
8 - * ai 模型平台 8 + * AI 模型平台
9 * 9 *
10 - * author: fansili  
11 - * time: 2024/3/11 10:12 10 + * @author fansili
12 */ 11 */
13 @Getter 12 @Getter
14 @AllArgsConstructor 13 @AllArgsConstructor
@@ -18,7 +17,6 @@ public enum AiPlatformEnum { @@ -18,7 +17,6 @@ public enum AiPlatformEnum {
18 OLLAMA("Ollama", "Ollama"), 17 OLLAMA("Ollama", "Ollama"),
19 YI_YAN("YiYan", "文心一言"), // 百度 18 YI_YAN("YiYan", "文心一言"), // 百度
20 XING_HUO("XingHuo", "星火"), // 讯飞 19 XING_HUO("XingHuo", "星火"), // 讯飞
21 -  
22 QIAN_WEN("qianwen", "千问"), // 阿里 20 QIAN_WEN("qianwen", "千问"), // 阿里
23 21
24 OPEN_AI_DALL("dall", "dall"), 22 OPEN_AI_DALL("dall", "dall"),
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/org/springframework/ai/models/tongyi/QianWenChatClient.java renamed to yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/model/tongyi/QianWenChatClient.java
1 -package org.springframework.ai.models.tongyi; 1 +package cn.iocoder.yudao.framework.ai.core.model.tongyi;
2 2
3 import cn.iocoder.yudao.framework.ai.core.exception.ChatException; 3 import cn.iocoder.yudao.framework.ai.core.exception.ChatException;
  4 +import cn.iocoder.yudao.framework.ai.core.model.tongyi.api.QianWenApi;
4 import org.springframework.ai.chat.*; 5 import org.springframework.ai.chat.*;
5 import org.springframework.ai.chat.prompt.ChatOptions; 6 import org.springframework.ai.chat.prompt.ChatOptions;
6 import org.springframework.ai.chat.prompt.Prompt; 7 import org.springframework.ai.chat.prompt.Prompt;
7 -import org.springframework.ai.models.tongyi.api.QianWenApi;  
8 import cn.iocoder.yudao.framework.ai.core.model.yiyan.exception.YiYanApiException; 8 import cn.iocoder.yudao.framework.ai.core.model.yiyan.exception.YiYanApiException;
9 import com.alibaba.dashscope.aigc.generation.GenerationResult; 9 import com.alibaba.dashscope.aigc.generation.GenerationResult;
10 import com.alibaba.dashscope.aigc.generation.models.QwenParam; 10 import com.alibaba.dashscope.aigc.generation.models.QwenParam;
@@ -24,6 +24,7 @@ import java.time.Duration; @@ -24,6 +24,7 @@ import java.time.Duration;
24 import java.util.List; 24 import java.util.List;
25 import java.util.stream.Collectors; 25 import java.util.stream.Collectors;
26 26
  27 +// TODO @芋艿:暂时不需要重构;等 spring cloud alibaba 的 ai 发布最新的
27 /** 28 /**
28 * 阿里 通义千问 client 29 * 阿里 通义千问 client
29 * <p> 30 * <p>
@@ -39,7 +40,6 @@ public class QianWenChatClient implements ChatClient, StreamingChatClient { @@ -39,7 +40,6 @@ public class QianWenChatClient implements ChatClient, StreamingChatClient {
39 40
40 private QianWenOptions qianWenOptions; 41 private QianWenOptions qianWenOptions;
41 42
42 -  
43 public QianWenChatClient() { 43 public QianWenChatClient() {
44 } 44 }
45 45
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/org/springframework/ai/models/tongyi/QianWenChatModal.java renamed to yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/model/tongyi/QianWenChatModal.java
1 -package org.springframework.ai.models.tongyi; 1 +package cn.iocoder.yudao.framework.ai.core.model.tongyi;
2 2
3 import lombok.AllArgsConstructor; 3 import lombok.AllArgsConstructor;
4 import lombok.Getter; 4 import lombok.Getter;
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/org/springframework/ai/models/tongyi/QianWenOptions.java renamed to yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/model/tongyi/QianWenOptions.java
1 -package org.springframework.ai.models.tongyi; 1 +package cn.iocoder.yudao.framework.ai.core.model.tongyi;
2 2
3 import org.springframework.ai.chat.prompt.ChatOptions; 3 import org.springframework.ai.chat.prompt.ChatOptions;
4 import lombok.Data; 4 import lombok.Data;
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/org/springframework/ai/models/tongyi/api/QianWenApi.java renamed to yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/model/tongyi/api/QianWenApi.java
1 -package org.springframework.ai.models.tongyi.api; 1 +package cn.iocoder.yudao.framework.ai.core.model.tongyi.api;
2 2
3 -import org.springframework.ai.models.tongyi.QianWenChatModal; 3 +import cn.iocoder.yudao.framework.ai.core.model.tongyi.QianWenChatModal;
4 import cn.iocoder.yudao.framework.ai.core.exception.AiException; 4 import cn.iocoder.yudao.framework.ai.core.exception.AiException;
5 import com.alibaba.dashscope.aigc.generation.Generation; 5 import com.alibaba.dashscope.aigc.generation.Generation;
6 import com.alibaba.dashscope.aigc.generation.GenerationResult; 6 import com.alibaba.dashscope.aigc.generation.GenerationResult;
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/org/springframework/ai/models/tongyi/api/QianWenChatCompletion.java renamed to yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/model/tongyi/api/QianWenChatCompletion.java
1 -package org.springframework.ai.models.tongyi.api; 1 +package cn.iocoder.yudao.framework.ai.core.model.tongyi.api;
2 2
3 3
4 /** 4 /**
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/org/springframework/ai/models/tongyi/api/QianWenChatCompletionMessage.java renamed to yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/model/tongyi/api/QianWenChatCompletionMessage.java
1 -package org.springframework.ai.models.tongyi.api; 1 +package cn.iocoder.yudao.framework.ai.core.model.tongyi.api;
2 2
3 /** 3 /**
4 * author: fansili 4 * author: fansili
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/org/springframework/ai/models/tongyi/api/QianWenChatCompletionRequest.java renamed to yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/model/tongyi/api/QianWenChatCompletionRequest.java
1 -package org.springframework.ai.models.tongyi.api; 1 +package cn.iocoder.yudao.framework.ai.core.model.tongyi.api;
2 2
3 import com.alibaba.dashscope.aigc.generation.models.QwenParam; 3 import com.alibaba.dashscope.aigc.generation.models.QwenParam;
4 4
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/org/springframework/ai/models/tongyi/package-info.java renamed to yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/model/tongyi/package-info.java
@@ -8,4 +8,4 @@ @@ -8,4 +8,4 @@
8 * author: fansili 8 * author: fansili
9 * time: 2024/3/13 21:05 9 * time: 2024/3/13 21:05
10 */ 10 */
11 -package org.springframework.ai.models.tongyi;  
12 \ No newline at end of file 11 \ No newline at end of file
  12 +package cn.iocoder.yudao.framework.ai.core.model.tongyi;
13 \ No newline at end of file 13 \ No newline at end of file
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/chat/QianWenChatClientTests.java
@@ -4,10 +4,10 @@ import org.springframework.ai.chat.ChatResponse; @@ -4,10 +4,10 @@ import org.springframework.ai.chat.ChatResponse;
4 import org.springframework.ai.chat.messages.SystemMessage; 4 import org.springframework.ai.chat.messages.SystemMessage;
5 import org.springframework.ai.chat.messages.UserMessage; 5 import org.springframework.ai.chat.messages.UserMessage;
6 import org.springframework.ai.chat.prompt.Prompt; 6 import org.springframework.ai.chat.prompt.Prompt;
7 -import org.springframework.ai.models.tongyi.QianWenChatClient;  
8 -import org.springframework.ai.models.tongyi.QianWenChatModal;  
9 -import org.springframework.ai.models.tongyi.QianWenOptions;  
10 -import org.springframework.ai.models.tongyi.api.QianWenApi; 7 +import cn.iocoder.yudao.framework.ai.core.model.tongyi.QianWenChatClient;
  8 +import cn.iocoder.yudao.framework.ai.core.model.tongyi.QianWenChatModal;
  9 +import cn.iocoder.yudao.framework.ai.core.model.tongyi.QianWenOptions;
  10 +import cn.iocoder.yudao.framework.ai.core.model.tongyi.api.QianWenApi;
11 import com.alibaba.dashscope.aigc.generation.GenerationResult; 11 import com.alibaba.dashscope.aigc.generation.GenerationResult;
12 import com.alibaba.dashscope.aigc.generation.models.QwenParam; 12 import com.alibaba.dashscope.aigc.generation.models.QwenParam;
13 import com.alibaba.dashscope.common.Message; 13 import com.alibaba.dashscope.common.Message;