Commit 4d9dbeaa8d59b6b05ef1fc4ce61881fe5ae78fb7

Authored by cherishsince
1 parent 73580841

【增加】MidjourneyApi 自动配置

yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/config/YudaoAiImageProperties.java deleted
1 -package cn.iocoder.yudao.framework.ai.config;  
2 -  
3 -import cn.iocoder.yudao.framework.ai.core.enums.AiPlatformEnum;  
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;  
7 -import lombok.Data;  
8 -import lombok.experimental.Accessors;  
9 -  
10 -import java.util.LinkedHashMap;  
11 -import java.util.Map;  
12 -  
13 -/**  
14 - * ai 自动配置  
15 - *  
16 - * @author fansili  
17 - * @time 2024/4/12 16:29  
18 - * @since 1.0  
19 - */  
20 -  
21 -@Data  
22 -@Accessors(chain = true)  
23 -public class YudaoAiImageProperties extends LinkedHashMap<String, Map<String, Object>> {  
24 -  
25 - private String initType;  
26 - private QianWenProperties qianwen;  
27 - private XingHuoOptions xinghuo;  
28 - private YiYanProperties yiyan;  
29 -  
30 - @Data  
31 - @Accessors(chain = true)  
32 - public static class QianWenProperties extends ChatProperties {  
33 - /**  
34 - * 阿里云:服务器接入点  
35 - */  
36 - private String endpoint = "bailian.cn-beijing.aliyuncs.com";  
37 - /**  
38 - * 阿里云:权限 accessKeyId  
39 - */  
40 - private String accessKeyId;  
41 - /**  
42 - * 阿里云:权限 accessKeySecret  
43 - */  
44 - private String accessKeySecret;  
45 - /**  
46 - * 阿里云:agentKey  
47 - */  
48 - private String agentKey;  
49 - /**  
50 - * 阿里云:agentKey(相当于应用id)  
51 - */  
52 - private String appId;  
53 -  
54 - }  
55 -  
56 - @Data  
57 - @Accessors(chain = true)  
58 - public static class XingHuoProperties extends ChatProperties {  
59 - private String appId;  
60 - private String appKey;  
61 - private String secretKey;  
62 - private XingHuoChatModel chatModel;  
63 - }  
64 -  
65 - @Data  
66 - @Accessors(chain = true)  
67 - public static class YiYanProperties extends ChatProperties {  
68 - /**  
69 - * appKey  
70 - */  
71 - private String appKey;  
72 - /**  
73 - * secretKey  
74 - */  
75 - private String secretKey;  
76 - /**  
77 - * 模型  
78 - */  
79 - private YiYanChatModel chatModel = YiYanChatModel.ERNIE4_3_5_8K;  
80 - /**  
81 - * token 刷新时间(默认 86400 = 24小时)  
82 - */  
83 - private int refreshTokenSecondTime = 86400;  
84 - }  
85 -  
86 - @Data  
87 - @Accessors(chain = true)  
88 - public static class ChatProperties {  
89 -  
90 - private AiPlatformEnum aiPlatform;  
91 -  
92 - private Float temperature;  
93 -  
94 - private Float topP;  
95 -  
96 - private Integer topK;  
97 - }  
98 -}  
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/config/YudaoMidjourneyConfiguration.java 0 → 100644
  1 +package cn.iocoder.yudao.framework.ai.config;
  2 +
  3 +import cn.iocoder.yudao.framework.ai.core.model.midjourney.MidjourneyConfig;
  4 +import cn.iocoder.yudao.framework.ai.core.model.midjourney.api.MidjourneyApi;
  5 +import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
  6 +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
  7 +import org.springframework.context.annotation.Bean;
  8 +import org.springframework.context.annotation.Configuration;
  9 +
  10 +/**
  11 + * 配置
  12 + *
  13 + * @author fansili
  14 + * @time 2024/6/13 09:50
  15 + */
  16 +@Configuration
  17 +public class YudaoMidjourneyConfiguration {
  18 +
  19 + @Bean
  20 + @ConditionalOnProperty(value = "ai.midjourney-proxy.enable", havingValue = "true")
  21 + public MidjourneyApi midjourneyApi(YudaoMidjourneyProperties midjourneyProperties) {
  22 + return new MidjourneyApi(BeanUtils.toBean(midjourneyProperties, MidjourneyConfig.class));
  23 + }
  24 +}
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/config/MidjourneyProperties.java renamed to yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/config/YudaoMidjourneyProperties.java
1 -package cn.iocoder.yudao.module.ai.config; 1 +package cn.iocoder.yudao.framework.ai.config;
2 2
3 import lombok.Data; 3 import lombok.Data;
4 import org.springframework.boot.context.properties.ConfigurationProperties; 4 import org.springframework.boot.context.properties.ConfigurationProperties;
@@ -14,9 +14,9 @@ import org.springframework.context.annotation.Configuration; @@ -14,9 +14,9 @@ import org.springframework.context.annotation.Configuration;
14 @Configuration 14 @Configuration
15 @ConfigurationProperties(prefix = "ai.midjourney-proxy") 15 @ConfigurationProperties(prefix = "ai.midjourney-proxy")
16 @Data 16 @Data
17 -public class MidjourneyProperties { 17 +public class YudaoMidjourneyProperties {
18 18
  19 + private String enable;
19 private String key; 20 private String key;
20 private String url; 21 private String url;
21 - private String notifyUrl;  
22 } 22 }
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/model/midjourney/MidjourneyConfig.java
@@ -20,8 +20,4 @@ public class MidjourneyConfig { @@ -20,8 +20,4 @@ public class MidjourneyConfig {
20 * 请求地址 20 * 请求地址
21 */ 21 */
22 private String url; 22 private String url;
23 - /**  
24 - * 通知回调地址  
25 - */  
26 - private String notifyUrl;  
27 } 23 }
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/model/midjourney/api/MidjourneyApi.java
@@ -46,11 +46,11 @@ public class MidjourneyApi { @@ -46,11 +46,11 @@ public class MidjourneyApi {
46 * @param imagineReqVO 46 * @param imagineReqVO
47 * @return 47 * @return
48 */ 48 */
49 - public MidjourneySubmitResponse imagine(MidjourneyImagineRequest imagineReqVO) { 49 + public SubmitResponse imagine(ImagineRequest imagineReqVO) {
50 // 1、发送 post 请求 50 // 1、发送 post 请求
51 String res = post(URI_IMAGINE, imagineReqVO); 51 String res = post(URI_IMAGINE, imagineReqVO);
52 // 2、转换 resp 52 // 2、转换 resp
53 - return JsonUtils.parseObject(res, MidjourneySubmitResponse.class); 53 + return JsonUtils.parseObject(res, SubmitResponse.class);
54 } 54 }
55 55
56 /** 56 /**
@@ -58,11 +58,11 @@ public class MidjourneyApi { @@ -58,11 +58,11 @@ public class MidjourneyApi {
58 * 58 *
59 * @param actionReqVO 59 * @param actionReqVO
60 */ 60 */
61 - public MidjourneySubmitResponse action(MidjourneyActionRequest actionReqVO) { 61 + public SubmitResponse action(ActionRequest actionReqVO) {
62 // 1、发送 post 请求 62 // 1、发送 post 请求
63 String res = post(URI_ACTON, actionReqVO); 63 String res = post(URI_ACTON, actionReqVO);
64 // 2、转换 resp 64 // 2、转换 resp
65 - return JsonUtils.parseObject(res, MidjourneySubmitResponse.class); 65 + return JsonUtils.parseObject(res, SubmitResponse.class);
66 } 66 }
67 67
68 /** 68 /**
@@ -104,24 +104,23 @@ public class MidjourneyApi { @@ -104,24 +104,23 @@ public class MidjourneyApi {
104 * @param prompt 提示词 104 * @param prompt 提示词
105 * @param state 自定义参数 105 * @param state 自定义参数
106 */ 106 */
107 - public record MidjourneyImagineRequest(List<String> base64Array,  
108 - String notifyHook,  
109 - String prompt,  
110 - String state) { 107 + public record ImagineRequest(List<String> base64Array,
  108 + String notifyHook,
  109 + String prompt,
  110 + String state) {
111 } 111 }
112 112
113 /** 113 /**
114 * Midjourney - Action 请求 114 * Midjourney - Action 请求
115 * 115 *
116 - * @param customId 操作按钮id  
117 - * @param taskId 操作按钮id 116 + * @param customId 操作按钮id
  117 + * @param taskId 操作按钮id
118 * @param notifyHook 通知地址 118 * @param notifyHook 通知地址
119 - * @param state 自定义参数  
120 */ 119 */
121 - public record MidjourneyActionRequest(String customId,  
122 - String taskId,  
123 - String notifyHook,  
124 - String state) { 120 + public record ActionRequest(String customId,
  121 + String taskId,
  122 + String notifyHook
  123 + ) {
125 } 124 }
126 125
127 /** 126 /**
@@ -132,10 +131,10 @@ public class MidjourneyApi { @@ -132,10 +131,10 @@ public class MidjourneyApi {
132 * @param properties 扩展字段 131 * @param properties 扩展字段
133 * @param result 任务ID 132 * @param result 任务ID
134 */ 133 */
135 - public record MidjourneySubmitResponse(String code,  
136 - String description,  
137 - Map<String, Object> properties,  
138 - String result) { 134 + public record SubmitResponse(String code,
  135 + String description,
  136 + Map<String, Object> properties,
  137 + String result) {
139 } 138 }
140 139
141 /** 140 /**