Commit 645dfae003c723dd268ce0cacc0f0bfaea1a8314

Authored by YunaiV
1 parent 04021ce0

【代码评审】AI:讯飞星火的接入调整

Showing 18 changed files with 72 additions and 66 deletions
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/config/AiChatClientFactory.java
@@ -4,7 +4,7 @@ import cn.iocoder.yudao.framework.ai.core.enums.AiPlatformEnum; @@ -4,7 +4,7 @@ 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 org.springframework.ai.models.tongyi.QianWenChatClient;
7 -import org.springframework.ai.models.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;
10 import org.springframework.beans.factory.annotation.Autowired; 10 import org.springframework.beans.factory.annotation.Autowired;
@@ -27,7 +27,7 @@ public class AiChatClientFactory { @@ -27,7 +27,7 @@ public class AiChatClientFactory {
27 public ChatClient getChatClient(AiPlatformEnum platformEnum) { 27 public ChatClient getChatClient(AiPlatformEnum platformEnum) {
28 if (AiPlatformEnum.QIAN_WEN == platformEnum) { 28 if (AiPlatformEnum.QIAN_WEN == platformEnum) {
29 return applicationContext.getBean(QianWenChatClient.class); 29 return applicationContext.getBean(QianWenChatClient.class);
30 - } else if (AiPlatformEnum.YIYAN == platformEnum) { 30 + } else if (AiPlatformEnum.YI_YAN == platformEnum) {
31 return applicationContext.getBean(YiYanChatClient.class); 31 return applicationContext.getBean(YiYanChatClient.class);
32 } else if (AiPlatformEnum.XING_HUO == platformEnum) { 32 } else if (AiPlatformEnum.XING_HUO == platformEnum) {
33 return applicationContext.getBean(XingHuoChatClient.class); 33 return applicationContext.getBean(XingHuoChatClient.class);
@@ -42,7 +42,7 @@ public class AiChatClientFactory { @@ -42,7 +42,7 @@ public class AiChatClientFactory {
42 // } 42 // }
43 if (AiPlatformEnum.QIAN_WEN == platformEnum) { 43 if (AiPlatformEnum.QIAN_WEN == platformEnum) {
44 return applicationContext.getBean(QianWenChatClient.class); 44 return applicationContext.getBean(QianWenChatClient.class);
45 - } else if (AiPlatformEnum.YIYAN == platformEnum) { 45 + } else if (AiPlatformEnum.YI_YAN == platformEnum) {
46 return applicationContext.getBean(YiYanChatClient.class); 46 return applicationContext.getBean(YiYanChatClient.class);
47 } else if (AiPlatformEnum.XING_HUO == platformEnum) { 47 } else if (AiPlatformEnum.XING_HUO == platformEnum) {
48 return applicationContext.getBean(XingHuoChatClient.class); 48 return applicationContext.getBean(XingHuoChatClient.class);
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/dal/vo/AiChatModalConfigVO.java
@@ -3,7 +3,7 @@ package cn.iocoder.yudao.module.ai.dal.vo; @@ -3,7 +3,7 @@ package cn.iocoder.yudao.module.ai.dal.vo;
3 import cn.iocoder.yudao.framework.ai.core.enums.AiPlatformEnum; 3 import cn.iocoder.yudao.framework.ai.core.enums.AiPlatformEnum;
4 import lombok.Data; 4 import lombok.Data;
5 import lombok.experimental.Accessors; 5 import lombok.experimental.Accessors;
6 -import org.springframework.ai.models.xinghuo.XingHuoChatModel; 6 +import cn.iocoder.yudao.framework.ai.core.model.xinghuo.XingHuoChatModel;
7 import cn.iocoder.yudao.framework.ai.core.model.yiyan.api.YiYanChatModel; 7 import cn.iocoder.yudao.framework.ai.core.model.yiyan.api.YiYanChatModel;
8 8
9 /** 9 /**
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/config/YudaoAiAutoConfiguration.java
@@ -5,9 +5,9 @@ import org.springframework.ai.models.tongyi.QianWenChatClient; @@ -5,9 +5,9 @@ import org.springframework.ai.models.tongyi.QianWenChatClient;
5 import org.springframework.ai.models.tongyi.QianWenChatModal; 5 import org.springframework.ai.models.tongyi.QianWenChatModal;
6 import org.springframework.ai.models.tongyi.QianWenOptions; 6 import org.springframework.ai.models.tongyi.QianWenOptions;
7 import org.springframework.ai.models.tongyi.api.QianWenApi; 7 import org.springframework.ai.models.tongyi.api.QianWenApi;
8 -import org.springframework.ai.models.xinghuo.XingHuoChatClient;  
9 -import org.springframework.ai.models.xinghuo.XingHuoOptions;  
10 -import org.springframework.ai.models.xinghuo.api.XingHuoApi; 8 +import cn.iocoder.yudao.framework.ai.core.model.xinghuo.XingHuoChatClient;
  9 +import cn.iocoder.yudao.framework.ai.core.model.xinghuo.XingHuoOptions;
  10 +import cn.iocoder.yudao.framework.ai.core.model.xinghuo.api.XingHuoApi;
11 import cn.iocoder.yudao.framework.ai.core.model.yiyan.YiYanChatClient; 11 import cn.iocoder.yudao.framework.ai.core.model.yiyan.YiYanChatClient;
12 import cn.iocoder.yudao.framework.ai.core.model.yiyan.YiYanChatOptions; 12 import cn.iocoder.yudao.framework.ai.core.model.yiyan.YiYanChatOptions;
13 import cn.iocoder.yudao.framework.ai.core.model.yiyan.api.YiYanApi; 13 import cn.iocoder.yudao.framework.ai.core.model.yiyan.api.YiYanApi;
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/config/YudaoAiImageProperties.java
1 package cn.iocoder.yudao.framework.ai.config; 1 package cn.iocoder.yudao.framework.ai.config;
2 2
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.models.xinghuo.XingHuoChatModel;  
5 -import org.springframework.ai.models.xinghuo.XingHuoOptions; 4 +import cn.iocoder.yudao.framework.ai.core.model.xinghuo.XingHuoChatModel;
  5 +import cn.iocoder.yudao.framework.ai.core.model.xinghuo.XingHuoOptions;
6 import cn.iocoder.yudao.framework.ai.core.model.yiyan.api.YiYanChatModel; 6 import cn.iocoder.yudao.framework.ai.core.model.yiyan.api.YiYanChatModel;
7 import lombok.Data; 7 import lombok.Data;
8 import lombok.experimental.Accessors; 8 import lombok.experimental.Accessors;
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/config/YudaoAiProperties.java
1 package cn.iocoder.yudao.framework.ai.config; 1 package cn.iocoder.yudao.framework.ai.config;
2 2
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.models.xinghuo.XingHuoChatModel; 4 +import cn.iocoder.yudao.framework.ai.core.model.xinghuo.XingHuoChatModel;
5 import cn.iocoder.yudao.framework.ai.core.model.yiyan.api.YiYanChatModel; 5 import cn.iocoder.yudao.framework.ai.core.model.yiyan.api.YiYanChatModel;
6 import cn.iocoder.yudao.framework.ai.core.enums.OpenAiImageModelEnum; 6 import cn.iocoder.yudao.framework.ai.core.enums.OpenAiImageModelEnum;
7 import cn.iocoder.yudao.framework.ai.core.enums.OpenAiImageStyleEnum; 7 import cn.iocoder.yudao.framework.ai.core.enums.OpenAiImageStyleEnum;
@@ -21,7 +21,6 @@ import org.springframework.boot.context.properties.ConfigurationProperties; @@ -21,7 +21,6 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
21 @ConfigurationProperties(prefix = "yudao.ai") 21 @ConfigurationProperties(prefix = "yudao.ai")
22 public class YudaoAiProperties { 22 public class YudaoAiProperties {
23 23
24 - private String initSource;  
25 private QianWenProperties qianwen; 24 private QianWenProperties qianwen;
26 private XingHuoProperties xinghuo; 25 private XingHuoProperties xinghuo;
27 private YiYanProperties yiyan; 26 private YiYanProperties yiyan;
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/enums/AiPlatformEnum.java
@@ -16,16 +16,23 @@ public enum AiPlatformEnum { @@ -16,16 +16,23 @@ public enum AiPlatformEnum {
16 16
17 OPENAI("OpenAI", "OpenAI"), 17 OPENAI("OpenAI", "OpenAI"),
18 OLLAMA("Ollama", "Ollama"), 18 OLLAMA("Ollama", "Ollama"),
19 - YIYAN("YiYan", "文心一言"), 19 + YI_YAN("YiYan", "文心一言"), // 百度
  20 + XING_HUO("XingHuo", "星火"), // 讯飞
  21 +
  22 + QIAN_WEN("qianwen", "千问"), // 阿里
20 23
21 - QIAN_WEN("qianwen", "千问"),  
22 - XING_HUO("xinghuo", "星火"),  
23 OPEN_AI_DALL("dall", "dall"), 24 OPEN_AI_DALL("dall", "dall"),
24 MIDJOURNEY("midjourney", "midjourney"), 25 MIDJOURNEY("midjourney", "midjourney"),
25 26
26 ; 27 ;
27 28
  29 + /**
  30 + * 平台
  31 + */
28 private final String platform; 32 private final String platform;
  33 + /**
  34 + * 平台名
  35 + */
29 private final String name; 36 private final String name;
30 37
31 // public static List<AiPlatformEnum> CHAT_PLATFORM_LIST = Lists.newArrayList( 38 // public static List<AiPlatformEnum> CHAT_PLATFORM_LIST = Lists.newArrayList(
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/org/springframework/ai/models/xinghuo/XingHuoChatClient.java renamed to yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/model/xinghuo/XingHuoChatClient.java
1 -package org.springframework.ai.models.xinghuo; 1 +package cn.iocoder.yudao.framework.ai.core.model.xinghuo;
2 2
3 import cn.hutool.core.bean.BeanUtil; 3 import cn.hutool.core.bean.BeanUtil;
4 import cn.hutool.core.exceptions.ExceptionUtil; 4 import cn.hutool.core.exceptions.ExceptionUtil;
5 import cn.iocoder.yudao.framework.ai.core.exception.ChatException; 5 import cn.iocoder.yudao.framework.ai.core.exception.ChatException;
  6 +import cn.iocoder.yudao.framework.ai.core.model.xinghuo.api.XingHuoApi;
  7 +import cn.iocoder.yudao.framework.ai.core.model.xinghuo.api.XingHuoChatCompletion;
  8 +import cn.iocoder.yudao.framework.ai.core.model.xinghuo.api.XingHuoChatCompletionRequest;
6 import org.springframework.ai.chat.*; 9 import org.springframework.ai.chat.*;
7 import org.springframework.ai.chat.prompt.ChatOptions; 10 import org.springframework.ai.chat.prompt.ChatOptions;
8 import org.springframework.ai.chat.prompt.Prompt; 11 import org.springframework.ai.chat.prompt.Prompt;
9 -import org.springframework.ai.models.xinghuo.api.XingHuoApi;  
10 -import org.springframework.ai.models.xinghuo.api.XingHuoChatCompletion;  
11 -import org.springframework.ai.models.xinghuo.api.XingHuoChatCompletionRequest;  
12 import lombok.extern.slf4j.Slf4j; 12 import lombok.extern.slf4j.Slf4j;
13 import org.springframework.http.ResponseEntity; 13 import org.springframework.http.ResponseEntity;
14 import org.springframework.retry.RetryCallback; 14 import org.springframework.retry.RetryCallback;
@@ -21,6 +21,7 @@ import java.time.Duration; @@ -21,6 +21,7 @@ import java.time.Duration;
21 import java.util.List; 21 import java.util.List;
22 import java.util.stream.Collectors; 22 import java.util.stream.Collectors;
23 23
  24 +// TODO @fan:参考 yiyan 的修改建议,调整下 xinghuo 的实现;可以等 yiyan 修改完建议,然后我 review 完,再改这个哈;
24 /** 25 /**
25 * 讯飞星火 client 26 * 讯飞星火 client
26 * <p> 27 * <p>
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/org/springframework/ai/models/xinghuo/XingHuoChatModel.java renamed to yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/model/xinghuo/XingHuoChatModel.java
1 -package org.springframework.ai.models.xinghuo; 1 +package cn.iocoder.yudao.framework.ai.core.model.xinghuo;
2 2
3 import lombok.Getter; 3 import lombok.Getter;
4 4
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/org/springframework/ai/models/xinghuo/XingHuoOptions.java renamed to yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/model/xinghuo/XingHuoOptions.java
1 -package org.springframework.ai.models.xinghuo; 1 +package cn.iocoder.yudao.framework.ai.core.model.xinghuo;
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/xinghuo/api/XingHuoApi.java renamed to yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/model/xinghuo/api/XingHuoApi.java
1 -package org.springframework.ai.models.xinghuo.api; 1 +package cn.iocoder.yudao.framework.ai.core.model.xinghuo.api;
2 2
3 import cn.hutool.http.HttpUtil; 3 import cn.hutool.http.HttpUtil;
4 import cn.hutool.json.JSONUtil; 4 import cn.hutool.json.JSONUtil;
5 -import org.springframework.ai.models.xinghuo.XingHuoChatModel; 5 +import cn.iocoder.yudao.framework.ai.core.model.xinghuo.XingHuoChatModel;
6 import lombok.Data; 6 import lombok.Data;
7 import org.springframework.http.HttpStatusCode; 7 import org.springframework.http.HttpStatusCode;
8 import org.springframework.http.ResponseEntity; 8 import org.springframework.http.ResponseEntity;
@@ -21,6 +21,7 @@ import java.text.SimpleDateFormat; @@ -21,6 +21,7 @@ import java.text.SimpleDateFormat;
21 import java.util.*; 21 import java.util.*;
22 import java.util.stream.Collectors; 22 import java.util.stream.Collectors;
23 23
  24 +// TODO @fan:讯飞使用 spring websocket 接入,还是 okhttp?确认了,未使用的最好删除下,反正 git 也能找回 history
24 /** 25 /**
25 * 讯飞星火 属性、api 26 * 讯飞星火 属性、api
26 * <p> 27 * <p>
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/org/springframework/ai/models/xinghuo/api/XingHuoChatCompletion.java renamed to yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/model/xinghuo/api/XingHuoChatCompletion.java
1 -package org.springframework.ai.models.xinghuo.api; 1 +package cn.iocoder.yudao.framework.ai.core.model.xinghuo.api;
2 2
3 import lombok.Data; 3 import lombok.Data;
4 import lombok.experimental.Accessors; 4 import lombok.experimental.Accessors;
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/org/springframework/ai/models/xinghuo/api/XingHuoChatCompletionMessage.java renamed to yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/model/xinghuo/api/XingHuoChatCompletionMessage.java
1 -package org.springframework.ai.models.xinghuo.api; 1 +package cn.iocoder.yudao.framework.ai.core.model.xinghuo.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/xinghuo/api/XingHuoChatCompletionRequest.java renamed to yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/model/xinghuo/api/XingHuoChatCompletionRequest.java
1 -package org.springframework.ai.models.xinghuo.api; 1 +package cn.iocoder.yudao.framework.ai.core.model.xinghuo.api;
2 2
3 import lombok.Data; 3 import lombok.Data;
4 import lombok.Getter; 4 import lombok.Getter;
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/chat/XingHuoChatClientMainTests.java
@@ -2,8 +2,8 @@ package cn.iocoder.yudao.framework.ai.chat; @@ -2,8 +2,8 @@ package cn.iocoder.yudao.framework.ai.chat;
2 2
3 import cn.hutool.http.HttpUtil; 3 import cn.hutool.http.HttpUtil;
4 import cn.hutool.json.JSONUtil; 4 import cn.hutool.json.JSONUtil;
5 -import org.springframework.ai.models.xinghuo.api.XingHuoChatCompletion;  
6 -import org.springframework.ai.models.xinghuo.api.XingHuoChatCompletionRequest; 5 +import cn.iocoder.yudao.framework.ai.core.model.xinghuo.api.XingHuoChatCompletion;
  6 +import cn.iocoder.yudao.framework.ai.core.model.xinghuo.api.XingHuoChatCompletionRequest;
7 import org.springframework.web.reactive.socket.client.ReactorNettyWebSocketClient; 7 import org.springframework.web.reactive.socket.client.ReactorNettyWebSocketClient;
8 import org.springframework.web.reactive.socket.client.WebSocketClient; 8 import org.springframework.web.reactive.socket.client.WebSocketClient;
9 import reactor.core.publisher.Flux; 9 import reactor.core.publisher.Flux;
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/chat/XingHuoChatClientTests.java
@@ -5,10 +5,10 @@ import org.springframework.ai.chat.messages.Message; @@ -5,10 +5,10 @@ import org.springframework.ai.chat.messages.Message;
5 import org.springframework.ai.chat.messages.SystemMessage; 5 import org.springframework.ai.chat.messages.SystemMessage;
6 import org.springframework.ai.chat.messages.UserMessage; 6 import org.springframework.ai.chat.messages.UserMessage;
7 import org.springframework.ai.chat.prompt.Prompt; 7 import org.springframework.ai.chat.prompt.Prompt;
8 -import org.springframework.ai.models.xinghuo.XingHuoChatClient;  
9 -import org.springframework.ai.models.xinghuo.XingHuoChatModel;  
10 -import org.springframework.ai.models.xinghuo.XingHuoOptions;  
11 -import org.springframework.ai.models.xinghuo.api.XingHuoApi; 8 +import cn.iocoder.yudao.framework.ai.core.model.xinghuo.XingHuoChatClient;
  9 +import cn.iocoder.yudao.framework.ai.core.model.xinghuo.XingHuoChatModel;
  10 +import cn.iocoder.yudao.framework.ai.core.model.xinghuo.XingHuoOptions;
  11 +import cn.iocoder.yudao.framework.ai.core.model.xinghuo.api.XingHuoApi;
12 import org.junit.Before; 12 import org.junit.Before;
13 import org.junit.Test; 13 import org.junit.Test;
14 import reactor.core.publisher.Flux; 14 import reactor.core.publisher.Flux;
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/chat/XingHuoOkHttpTests.java
@@ -2,9 +2,9 @@ package cn.iocoder.yudao.framework.ai.chat; @@ -2,9 +2,9 @@ package cn.iocoder.yudao.framework.ai.chat;
2 2
3 import cn.hutool.http.HttpUtil; 3 import cn.hutool.http.HttpUtil;
4 import cn.hutool.json.JSONUtil; 4 import cn.hutool.json.JSONUtil;
5 -import org.springframework.ai.models.xinghuo.XingHuoChatClient;  
6 -import org.springframework.ai.models.xinghuo.api.XingHuoChatCompletion;  
7 -import org.springframework.ai.models.xinghuo.api.XingHuoChatCompletionRequest; 5 +import cn.iocoder.yudao.framework.ai.core.model.xinghuo.XingHuoChatClient;
  6 +import cn.iocoder.yudao.framework.ai.core.model.xinghuo.api.XingHuoChatCompletion;
  7 +import cn.iocoder.yudao.framework.ai.core.model.xinghuo.api.XingHuoChatCompletionRequest;
8 import okhttp3.*; 8 import okhttp3.*;
9 import org.jetbrains.annotations.NotNull; 9 import org.jetbrains.annotations.NotNull;
10 10
yudao-server/src/main/resources/application-local.yaml
@@ -209,37 +209,6 @@ wx: @@ -209,37 +209,6 @@ wx:
209 209
210 # 芋道配置项,设置当前项目所有自定义的配置 210 # 芋道配置项,设置当前项目所有自定义的配置
211 yudao: 211 yudao:
212 - ai:  
213 - initSource: yaml  
214 - qianwen:  
215 - enable: true  
216 - aiPlatform: QIAN_WEN  
217 - max-tokens: 1500  
218 - temperature: 0.85  
219 - topP: 0.8  
220 - topK: 0  
221 - api-key: sk-Zsd81gZYg7  
222 - xinghuo:  
223 - enable: true  
224 - aiPlatform: XING_HUO  
225 - max-tokens: 1500  
226 - temperature: 0.85  
227 - topP: 0.8  
228 - topK: 0  
229 - appId: 13c8cca6  
230 - appKey: cb6415c19d6162cda07b47316fcb0416  
231 - secretKey: Y2JiYTIxZjA3MDMxMjNjZjQzYzVmNzdh  
232 - model: XING_HUO_3_5  
233 - openAiImage:  
234 - enable: true  
235 - api-key: ${OPEN_AI_KEY}  
236 - model: dall_e_2  
237 - style: vivid  
238 - midjourney:  
239 - enable: true  
240 - token: MTE4MjE3MjY2MjkxNTY3ODIzOA.GEV1SG.c49F8lZoGCUHwsj8O0UdodmM6nyQHvuD2fXflw  
241 - guild-id: 1237948819677904956  
242 - channel-id: 1237948819677904960  
243 captcha: 212 captcha:
244 enable: false # 本地环境,暂时关闭图片验证码,方便登录等接口的测试; 213 enable: false # 本地环境,暂时关闭图片验证码,方便登录等接口的测试;
245 security: 214 security:
yudao-server/src/main/resources/application.yaml
@@ -153,7 +153,7 @@ spring.ai: @@ -153,7 +153,7 @@ spring.ai:
153 yudao.ai: 153 yudao.ai:
154 yiyan: 154 yiyan:
155 enable: true 155 enable: true
156 - aiPlatform: YIYAN # TODO @fan:建议每个都独立配置属性类 156 + aiPlatform: YI_YAN # TODO @fan:建议每个都独立配置属性类
157 max-tokens: 1500 157 max-tokens: 1500
158 temperature: 0.85 158 temperature: 0.85
159 topP: 0.8 159 topP: 0.8
@@ -162,6 +162,35 @@ yudao.ai: @@ -162,6 +162,35 @@ yudao.ai:
162 secretKey: R9mYF9dl9KASgi5RUq0FQt3wRisSnOcK 162 secretKey: R9mYF9dl9KASgi5RUq0FQt3wRisSnOcK
163 refreshTokenSecondTime: 86400 163 refreshTokenSecondTime: 86400
164 model: ERNIE4_3_5_8K 164 model: ERNIE4_3_5_8K
  165 + xinghuo:
  166 + enable: true
  167 + aiPlatform: XING_HUO # TODO @fan:建议每个都独立配置属性类
  168 + max-tokens: 1500
  169 + temperature: 0.85
  170 + topP: 0.8
  171 + topK: 0
  172 + appId: 13c8cca6
  173 + appKey: cb6415c19d6162cda07b47316fcb0416
  174 + secretKey: Y2JiYTIxZjA3MDMxMjNjZjQzYzVmNzdh
  175 + model: XING_HUO_3_5
  176 + qianwen:
  177 + enable: true
  178 + aiPlatform: QIAN_WEN
  179 + max-tokens: 1500
  180 + temperature: 0.85
  181 + topP: 0.8
  182 + topK: 0
  183 + api-key: sk-Zsd81gZYg7
  184 + openAiImage:
  185 + enable: true
  186 + api-key: ${OPEN_AI_KEY}
  187 + model: dall_e_2
  188 + style: vivid
  189 + midjourney:
  190 + enable: true
  191 + token: MTE4MjE3MjY2MjkxNTY3ODIzOA.GEV1SG.c49F8lZoGCUHwsj8O0UdodmM6nyQHvuD2fXflw
  192 + guild-id: 1237948819677904956
  193 + channel-id: 1237948819677904960
165 194
166 --- #################### 芋道相关配置 #################### 195 --- #################### 芋道相关配置 ####################
167 196