Commit 8fb018a69984102f721a7323c7a398e2267253ee

Authored by YunaiV
1 parent d4ed2c49

reactor:将 ai starter 融合到 ai-module 的 framework/ai 里

Showing 75 changed files with 313 additions and 341 deletions
yudao-module-ai/pom.xml
@@ -11,7 +11,6 @@ @@ -11,7 +11,6 @@
11 <modules> 11 <modules>
12 <module>yudao-module-ai-api</module> 12 <module>yudao-module-ai-api</module>
13 <module>yudao-module-ai-biz</module> 13 <module>yudao-module-ai-biz</module>
14 - <module>yudao-spring-boot-starter-ai</module>  
15 </modules> 14 </modules>
16 <packaging>pom</packaging> 15 <packaging>pom</packaging>
17 <artifactId>yudao-module-ai</artifactId> 16 <artifactId>yudao-module-ai</artifactId>
yudao-module-ai/yudao-module-ai-biz/pom.xml
@@ -17,6 +17,10 @@ @@ -17,6 +17,10 @@
17 国内:通义千问、文心一言、讯飞星火、智谱 GLM、DeepSeek 17 国内:通义千问、文心一言、讯飞星火、智谱 GLM、DeepSeek
18 国外:OpenAI、Ollama、Midjourney、StableDiffusion、Suno 18 国外:OpenAI、Ollama、Midjourney、StableDiffusion、Suno
19 </description> 19 </description>
  20 + <properties>
  21 + <spring-ai.version>1.0.0-M6</spring-ai.version>
  22 + <tinyflow.version>1.0.2</tinyflow.version>
  23 + </properties>
20 24
21 <dependencies> 25 <dependencies>
22 <dependency> 26 <dependency>
@@ -24,14 +28,19 @@ @@ -24,14 +28,19 @@
24 <artifactId>yudao-module-ai-api</artifactId> 28 <artifactId>yudao-module-ai-api</artifactId>
25 <version>${revision}</version> 29 <version>${revision}</version>
26 </dependency> 30 </dependency>
27 -  
28 - <!-- 业务组件 -->  
29 <dependency> 31 <dependency>
30 <groupId>cn.iocoder.boot</groupId> 32 <groupId>cn.iocoder.boot</groupId>
31 - <artifactId>yudao-spring-boot-starter-ai</artifactId> 33 + <artifactId>yudao-module-system-api</artifactId>
  34 + <version>${revision}</version>
  35 + </dependency>
  36 + <dependency>
  37 + <groupId>cn.iocoder.boot</groupId>
  38 + <artifactId>yudao-module-infra-api</artifactId>
32 <version>${revision}</version> 39 <version>${revision}</version>
33 </dependency> 40 </dependency>
34 41
  42 + <!-- 业务组件 -->
  43 +
35 <dependency> 44 <dependency>
36 <groupId>cn.iocoder.boot</groupId> 45 <groupId>cn.iocoder.boot</groupId>
37 <artifactId>yudao-spring-boot-starter-biz-tenant</artifactId> 46 <artifactId>yudao-spring-boot-starter-biz-tenant</artifactId>
@@ -60,5 +69,148 @@ @@ -60,5 +69,148 @@
60 <groupId>cn.iocoder.boot</groupId> 69 <groupId>cn.iocoder.boot</groupId>
61 <artifactId>yudao-spring-boot-starter-test</artifactId> 70 <artifactId>yudao-spring-boot-starter-test</artifactId>
62 </dependency> 71 </dependency>
  72 +
  73 + <!-- 工具类相关 -->
  74 + <dependency>
  75 + <groupId>cn.iocoder.boot</groupId>
  76 + <artifactId>yudao-spring-boot-starter-excel</artifactId>
  77 + </dependency>
  78 +
  79 + <!-- Spring AI Model 模型接入 -->
  80 + <dependency>
  81 + <groupId>org.springframework.ai</groupId>
  82 + <artifactId>spring-ai-openai-spring-boot-starter</artifactId>
  83 + <version>${spring-ai.version}</version>
  84 + </dependency>
  85 + <dependency>
  86 + <groupId>org.springframework.ai</groupId>
  87 + <artifactId>spring-ai-azure-openai-spring-boot-starter</artifactId>
  88 + <version>${spring-ai.version}</version>
  89 + </dependency>
  90 + <dependency>
  91 + <groupId>org.springframework.ai</groupId>
  92 + <artifactId>spring-ai-ollama-spring-boot-starter</artifactId>
  93 + <version>${spring-ai.version}</version>
  94 + </dependency>
  95 + <dependency>
  96 + <groupId>org.springframework.ai</groupId>
  97 + <artifactId>spring-ai-stability-ai-spring-boot-starter</artifactId>
  98 + <version>${spring-ai.version}</version>
  99 + </dependency>
  100 + <dependency>
  101 + <!-- 通义千问 -->
  102 + <groupId>com.alibaba.cloud.ai</groupId>
  103 + <artifactId>spring-ai-alibaba-starter</artifactId>
  104 + <version>${spring-ai.version}.1</version>
  105 + </dependency>
  106 + <dependency>
  107 + <!-- 文心一言 -->
  108 + <groupId>org.springframework.ai</groupId>
  109 + <artifactId>spring-ai-qianfan-spring-boot-starter</artifactId>
  110 + <version>${spring-ai.version}</version>
  111 + </dependency>
  112 + <dependency>
  113 + <!-- 智谱 GLM -->
  114 + <groupId>org.springframework.ai</groupId>
  115 + <artifactId>spring-ai-zhipuai-spring-boot-starter</artifactId>
  116 + <version>${spring-ai.version}</version>
  117 + </dependency>
  118 + <dependency>
  119 + <groupId>org.springframework.ai</groupId>
  120 + <artifactId>spring-ai-minimax-spring-boot-starter</artifactId>
  121 + <version>${spring-ai.version}</version>
  122 + </dependency>
  123 + <dependency>
  124 + <groupId>org.springframework.ai</groupId>
  125 + <artifactId>spring-ai-moonshot-spring-boot-starter</artifactId>
  126 + <version>${spring-ai.version}</version>
  127 + </dependency>
  128 +
  129 + <!-- 向量存储:https://db-engines.com/en/ranking/vector+dbms -->
  130 + <dependency>
  131 + <!-- Qdrant:https://qdrant.tech/ -->
  132 + <groupId>org.springframework.ai</groupId>
  133 + <artifactId>spring-ai-qdrant-store</artifactId>
  134 + <version>${spring-ai.version}</version>
  135 + </dependency>
  136 +
  137 + <dependency>
  138 + <!-- Redis:https://redis.io/docs/latest/develop/get-started/vector-database/ -->
  139 + <groupId>org.springframework.ai</groupId>
  140 + <artifactId>spring-ai-redis-store</artifactId>
  141 + <version>${spring-ai.version}</version>
  142 + </dependency>
  143 + <dependency>
  144 + <groupId>cn.iocoder.boot</groupId>
  145 + <artifactId>yudao-spring-boot-starter-redis</artifactId>
  146 + </dependency>
  147 +
  148 + <dependency>
  149 + <!-- Milvus:https://milvus.io/ -->
  150 + <groupId>org.springframework.ai</groupId>
  151 + <artifactId>spring-ai-milvus-store</artifactId>
  152 + <version>${spring-ai.version}</version>
  153 + <exclusions>
  154 + <!-- 解决和 logback 的日志冲突 -->
  155 + <exclusion>
  156 + <groupId>org.slf4j</groupId>
  157 + <artifactId>slf4j-reload4j</artifactId>
  158 + </exclusion>
  159 + </exclusions>
  160 + </dependency>
  161 +
  162 + <dependency>
  163 + <!-- Tika:负责内容的解析 -->
  164 + <groupId>org.springframework.ai</groupId>
  165 + <artifactId>spring-ai-tika-document-reader</artifactId>
  166 + <version>${spring-ai.version}</version>
  167 + <!-- TODO 芋艿:boot 项目里,不引入 cloud 依赖!!!另外,这样也是为了解决启动报错的问题! -->
  168 + <exclusions>
  169 + <exclusion>
  170 + <artifactId>spring-cloud-function-context</artifactId>
  171 + <groupId>org.springframework.cloud</groupId>
  172 + </exclusion>
  173 + <exclusion>
  174 + <artifactId>spring-cloud-function-core</artifactId>
  175 + <groupId>org.springframework.cloud</groupId>
  176 + </exclusion>
  177 + </exclusions>
  178 + </dependency>
  179 +
  180 + <!-- TinyFlow:AI 工作流 -->
  181 + <dependency>
  182 + <groupId>dev.tinyflow</groupId>
  183 + <artifactId>tinyflow-java-core</artifactId>
  184 + <version>${tinyflow.version}</version>
  185 + <exclusions>
  186 + <exclusion>
  187 + <groupId>com.jfinal</groupId>
  188 + <artifactId>enjoy</artifactId>
  189 + </exclusion>
  190 + <exclusion>
  191 + <!-- 解决 https://gitee.com/zhijiantianya/ruoyi-vue-pro/pulls/1318/ 问题 -->
  192 + <groupId>com.agentsflex</groupId>
  193 + <artifactId>agents-flex-store-elasticsearch</artifactId>
  194 + </exclusion>
  195 + <exclusion>
  196 + <!-- TODO @芋艿:暂时移除 groovy,和 iot 冲突 -->
  197 + <groupId>org.codehaus.groovy</groupId>
  198 + <artifactId>groovy-all</artifactId>
  199 + </exclusion>
  200 + <!-- 解决和 logback 的日志冲突 -->
  201 + <exclusion>
  202 + <groupId>org.slf4j</groupId>
  203 + <artifactId>slf4j-simple</artifactId>
  204 + </exclusion>
  205 + <exclusion>
  206 + <groupId>org.apache.logging.log4j</groupId>
  207 + <artifactId>log4j-slf4j-impl</artifactId>
  208 + </exclusion>
  209 + <exclusion>
  210 + <groupId>org.slf4j</groupId>
  211 + <artifactId>slf4j-reload4j</artifactId>
  212 + </exclusion>
  213 + </exclusions>
  214 + </dependency>
63 </dependencies> 215 </dependencies>
64 </project> 216 </project>
65 \ No newline at end of file 217 \ No newline at end of file
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/image/AiImageController.java
1 package cn.iocoder.yudao.module.ai.controller.admin.image; 1 package cn.iocoder.yudao.module.ai.controller.admin.image;
2 2
3 import cn.hutool.core.util.ObjUtil; 3 import cn.hutool.core.util.ObjUtil;
4 -import cn.iocoder.yudao.framework.ai.core.model.midjourney.api.MidjourneyApi; 4 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.midjourney.api.MidjourneyApi;
5 import cn.iocoder.yudao.framework.common.pojo.CommonResult; 5 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
6 import cn.iocoder.yudao.framework.common.pojo.PageResult; 6 import cn.iocoder.yudao.framework.common.pojo.PageResult;
7 import cn.iocoder.yudao.framework.common.util.object.BeanUtils; 7 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/image/vo/AiImageRespVO.java
1 package cn.iocoder.yudao.module.ai.controller.admin.image.vo; 1 package cn.iocoder.yudao.module.ai.controller.admin.image.vo;
2 2
3 -import cn.iocoder.yudao.framework.ai.core.model.midjourney.api.MidjourneyApi; 3 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.midjourney.api.MidjourneyApi;
4 import io.swagger.v3.oas.annotations.media.Schema; 4 import io.swagger.v3.oas.annotations.media.Schema;
5 import lombok.Data; 5 import lombok.Data;
6 6
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/vo/model/AiModelSaveReqVO.java
1 package cn.iocoder.yudao.module.ai.controller.admin.model.vo.model; 1 package cn.iocoder.yudao.module.ai.controller.admin.model.vo.model;
2 2
3 -import cn.iocoder.yudao.framework.ai.core.enums.AiModelTypeEnum;  
4 -import cn.iocoder.yudao.framework.ai.core.enums.AiPlatformEnum; 3 +import cn.iocoder.yudao.module.ai.enums.model.AiModelTypeEnum;
  4 +import cn.iocoder.yudao.module.ai.enums.model.AiPlatformEnum;
5 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; 5 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
6 import cn.iocoder.yudao.framework.common.validation.InEnum; 6 import cn.iocoder.yudao.framework.common.validation.InEnum;
7 import io.swagger.v3.oas.annotations.media.Schema; 7 import io.swagger.v3.oas.annotations.media.Schema;
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/dal/dataobject/image/AiImageDO.java
1 package cn.iocoder.yudao.module.ai.dal.dataobject.image; 1 package cn.iocoder.yudao.module.ai.dal.dataobject.image;
2 2
3 -import cn.iocoder.yudao.framework.ai.core.model.midjourney.api.MidjourneyApi; 3 +import cn.iocoder.yudao.module.ai.enums.model.AiPlatformEnum;
  4 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.midjourney.api.MidjourneyApi;
4 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; 5 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
5 import cn.iocoder.yudao.module.ai.dal.dataobject.model.AiModelDO; 6 import cn.iocoder.yudao.module.ai.dal.dataobject.model.AiModelDO;
6 import cn.iocoder.yudao.module.ai.enums.image.AiImageStatusEnum; 7 import cn.iocoder.yudao.module.ai.enums.image.AiImageStatusEnum;
@@ -49,7 +50,7 @@ public class AiImageDO extends BaseDO { @@ -49,7 +50,7 @@ public class AiImageDO extends BaseDO {
49 /** 50 /**
50 * 平台 51 * 平台
51 * 52 *
52 - * 枚举 {@link cn.iocoder.yudao.framework.ai.core.enums.AiPlatformEnum} 53 + * 枚举 {@link AiPlatformEnum}
53 */ 54 */
54 private String platform; 55 private String platform;
55 /** 56 /**
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/dal/dataobject/mindmap/AiMindMapDO.java
1 package cn.iocoder.yudao.module.ai.dal.dataobject.mindmap; 1 package cn.iocoder.yudao.module.ai.dal.dataobject.mindmap;
2 2
3 -import cn.iocoder.yudao.framework.ai.core.enums.AiPlatformEnum; 3 +import cn.iocoder.yudao.module.ai.enums.model.AiPlatformEnum;
4 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; 4 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
5 import cn.iocoder.yudao.module.ai.dal.dataobject.model.AiModelDO; 5 import cn.iocoder.yudao.module.ai.dal.dataobject.model.AiModelDO;
6 import com.baomidou.mybatisplus.annotation.KeySequence; 6 import com.baomidou.mybatisplus.annotation.KeySequence;
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/dal/dataobject/model/AiApiKeyDO.java
1 package cn.iocoder.yudao.module.ai.dal.dataobject.model; 1 package cn.iocoder.yudao.module.ai.dal.dataobject.model;
2 2
3 -import cn.iocoder.yudao.framework.ai.core.enums.AiPlatformEnum; 3 +import cn.iocoder.yudao.module.ai.enums.model.AiPlatformEnum;
4 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; 4 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
5 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; 5 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
6 import com.baomidou.mybatisplus.annotation.KeySequence; 6 import com.baomidou.mybatisplus.annotation.KeySequence;
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/dal/dataobject/model/AiModelDO.java
1 package cn.iocoder.yudao.module.ai.dal.dataobject.model; 1 package cn.iocoder.yudao.module.ai.dal.dataobject.model;
2 2
3 -import cn.iocoder.yudao.framework.ai.core.enums.AiModelTypeEnum;  
4 -import cn.iocoder.yudao.framework.ai.core.enums.AiPlatformEnum; 3 +import cn.iocoder.yudao.module.ai.enums.model.AiModelTypeEnum;
  4 +import cn.iocoder.yudao.module.ai.enums.model.AiPlatformEnum;
5 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; 5 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
6 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; 6 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
7 import com.baomidou.mybatisplus.annotation.KeySequence; 7 import com.baomidou.mybatisplus.annotation.KeySequence;
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/dal/dataobject/music/AiMusicDO.java
1 package cn.iocoder.yudao.module.ai.dal.dataobject.music; 1 package cn.iocoder.yudao.module.ai.dal.dataobject.music;
2 2
3 -import cn.iocoder.yudao.framework.ai.core.enums.AiPlatformEnum; 3 +import cn.iocoder.yudao.module.ai.enums.model.AiPlatformEnum;
4 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; 4 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
5 import cn.iocoder.yudao.module.ai.enums.music.AiMusicGenerateModeEnum; 5 import cn.iocoder.yudao.module.ai.enums.music.AiMusicGenerateModeEnum;
6 import cn.iocoder.yudao.module.ai.enums.music.AiMusicStatusEnum; 6 import cn.iocoder.yudao.module.ai.enums.music.AiMusicStatusEnum;
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/dal/dataobject/write/AiWriteDO.java
1 package cn.iocoder.yudao.module.ai.dal.dataobject.write; 1 package cn.iocoder.yudao.module.ai.dal.dataobject.write;
2 2
3 -import cn.iocoder.yudao.framework.ai.core.enums.AiPlatformEnum; 3 +import cn.iocoder.yudao.module.ai.enums.model.AiPlatformEnum;
4 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; 4 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
5 import cn.iocoder.yudao.module.ai.dal.dataobject.model.AiModelDO; 5 import cn.iocoder.yudao.module.ai.dal.dataobject.model.AiModelDO;
6 import cn.iocoder.yudao.module.ai.enums.DictTypeConstants; 6 import cn.iocoder.yudao.module.ai.enums.DictTypeConstants;
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/enums/AiModelTypeEnum.java renamed to yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/enums/model/AiModelTypeEnum.java
1 -package cn.iocoder.yudao.framework.ai.core.enums; 1 +package cn.iocoder.yudao.module.ai.enums.model;
2 2
3 import cn.iocoder.yudao.framework.common.core.ArrayValuable; 3 import cn.iocoder.yudao.framework.common.core.ArrayValuable;
4 import lombok.Getter; 4 import lombok.Getter;
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/enums/AiPlatformEnum.java renamed to yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/enums/model/AiPlatformEnum.java
1 -package cn.iocoder.yudao.framework.ai.core.enums; 1 +package cn.iocoder.yudao.module.ai.enums.model;
2 2
3 import cn.iocoder.yudao.framework.common.core.ArrayValuable; 3 import cn.iocoder.yudao.framework.common.core.ArrayValuable;
4 import lombok.AllArgsConstructor; 4 import lombok.AllArgsConstructor;
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/enums/package-info.java 0 → 100644
  1 +/**
  2 + * 占位
  3 + */
  4 +package cn.iocoder.yudao.module.ai.enums;
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/config/YudaoAiAutoConfiguration.java renamed to yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/framework/ai/config/AiAutoConfiguration.java
1 -package cn.iocoder.yudao.framework.ai.config; 1 +package cn.iocoder.yudao.module.ai.framework.ai.config;
2 2
3 import cn.hutool.core.util.StrUtil; 3 import cn.hutool.core.util.StrUtil;
4 import cn.hutool.extra.spring.SpringUtil; 4 import cn.hutool.extra.spring.SpringUtil;
5 -import cn.iocoder.yudao.framework.ai.core.factory.AiModelFactory;  
6 -import cn.iocoder.yudao.framework.ai.core.factory.AiModelFactoryImpl;  
7 -import cn.iocoder.yudao.framework.ai.core.model.baichuan.BaiChuanChatModel;  
8 -import cn.iocoder.yudao.framework.ai.core.model.deepseek.DeepSeekChatModel;  
9 -import cn.iocoder.yudao.framework.ai.core.model.doubao.DouBaoChatModel;  
10 -import cn.iocoder.yudao.framework.ai.core.model.hunyuan.HunYuanChatModel;  
11 -import cn.iocoder.yudao.framework.ai.core.model.midjourney.api.MidjourneyApi;  
12 -import cn.iocoder.yudao.framework.ai.core.model.siliconflow.SiliconFlowApiConstants;  
13 -import cn.iocoder.yudao.framework.ai.core.model.siliconflow.SiliconFlowChatModel;  
14 -import cn.iocoder.yudao.framework.ai.core.model.suno.api.SunoApi;  
15 -import cn.iocoder.yudao.framework.ai.core.model.xinghuo.XingHuoChatModel; 5 +import cn.iocoder.yudao.module.ai.framework.ai.core.AiModelFactory;
  6 +import cn.iocoder.yudao.module.ai.framework.ai.core.AiModelFactoryImpl;
  7 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.baichuan.BaiChuanChatModel;
  8 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.deepseek.DeepSeekChatModel;
  9 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.doubao.DouBaoChatModel;
  10 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.hunyuan.HunYuanChatModel;
  11 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.midjourney.api.MidjourneyApi;
  12 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.siliconflow.SiliconFlowApiConstants;
  13 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.siliconflow.SiliconFlowChatModel;
  14 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.suno.api.SunoApi;
  15 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.xinghuo.XingHuoChatModel;
16 import lombok.extern.slf4j.Slf4j; 16 import lombok.extern.slf4j.Slf4j;
17 import org.springframework.ai.autoconfigure.vectorstore.milvus.MilvusServiceClientProperties; 17 import org.springframework.ai.autoconfigure.vectorstore.milvus.MilvusServiceClientProperties;
18 import org.springframework.ai.autoconfigure.vectorstore.milvus.MilvusVectorStoreProperties; 18 import org.springframework.ai.autoconfigure.vectorstore.milvus.MilvusVectorStoreProperties;
@@ -26,24 +26,24 @@ import org.springframework.ai.openai.OpenAiChatOptions; @@ -26,24 +26,24 @@ import org.springframework.ai.openai.OpenAiChatOptions;
26 import org.springframework.ai.openai.api.OpenAiApi; 26 import org.springframework.ai.openai.api.OpenAiApi;
27 import org.springframework.ai.tokenizer.JTokkitTokenCountEstimator; 27 import org.springframework.ai.tokenizer.JTokkitTokenCountEstimator;
28 import org.springframework.ai.tokenizer.TokenCountEstimator; 28 import org.springframework.ai.tokenizer.TokenCountEstimator;
29 -import org.springframework.boot.autoconfigure.AutoConfiguration;  
30 import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; 29 import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
31 import org.springframework.boot.context.properties.EnableConfigurationProperties; 30 import org.springframework.boot.context.properties.EnableConfigurationProperties;
32 import org.springframework.context.annotation.Bean; 31 import org.springframework.context.annotation.Bean;
  32 +import org.springframework.context.annotation.Configuration;
33 33
34 /** 34 /**
35 * 芋道 AI 自动配置 35 * 芋道 AI 自动配置
36 * 36 *
37 * @author fansili 37 * @author fansili
38 */ 38 */
39 -@AutoConfiguration 39 +@Configuration
40 @EnableConfigurationProperties({ YudaoAiProperties.class, 40 @EnableConfigurationProperties({ YudaoAiProperties.class,
41 QdrantVectorStoreProperties.class, // 解析 Qdrant 配置 41 QdrantVectorStoreProperties.class, // 解析 Qdrant 配置
42 RedisVectorStoreProperties.class, // 解析 Redis 配置 42 RedisVectorStoreProperties.class, // 解析 Redis 配置
43 MilvusVectorStoreProperties.class, MilvusServiceClientProperties.class // 解析 Milvus 配置 43 MilvusVectorStoreProperties.class, MilvusServiceClientProperties.class // 解析 Milvus 配置
44 }) 44 })
45 @Slf4j 45 @Slf4j
46 -public class YudaoAiAutoConfiguration { 46 +public class AiAutoConfiguration {
47 47
48 @Bean 48 @Bean
49 public AiModelFactory aiModelFactory() { 49 public AiModelFactory aiModelFactory() {
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/config/YudaoAiProperties.java renamed to yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/framework/ai/config/YudaoAiProperties.java
1 -package cn.iocoder.yudao.framework.ai.config; 1 +package cn.iocoder.yudao.module.ai.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;
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/factory/AiModelFactory.java renamed to yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/framework/ai/core/AiModelFactory.java
1 -package cn.iocoder.yudao.framework.ai.core.factory; 1 +package cn.iocoder.yudao.module.ai.framework.ai.core;
2 2
3 -import cn.iocoder.yudao.framework.ai.core.enums.AiPlatformEnum;  
4 -import cn.iocoder.yudao.framework.ai.core.model.midjourney.api.MidjourneyApi;  
5 -import cn.iocoder.yudao.framework.ai.core.model.suno.api.SunoApi; 3 +import cn.iocoder.yudao.module.ai.enums.model.AiPlatformEnum;
  4 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.midjourney.api.MidjourneyApi;
  5 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.suno.api.SunoApi;
6 import org.springframework.ai.chat.model.ChatModel; 6 import org.springframework.ai.chat.model.ChatModel;
7 import org.springframework.ai.embedding.EmbeddingModel; 7 import org.springframework.ai.embedding.EmbeddingModel;
8 import org.springframework.ai.image.ImageModel; 8 import org.springframework.ai.image.ImageModel;
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/factory/AiModelFactoryImpl.java renamed to yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/framework/ai/core/AiModelFactoryImpl.java
1 -package cn.iocoder.yudao.framework.ai.core.factory; 1 +package cn.iocoder.yudao.module.ai.framework.ai.core;
2 2
3 import cn.hutool.core.io.FileUtil; 3 import cn.hutool.core.io.FileUtil;
4 import cn.hutool.core.lang.Assert; 4 import cn.hutool.core.lang.Assert;
@@ -8,20 +8,20 @@ import cn.hutool.core.util.ArrayUtil; @@ -8,20 +8,20 @@ import cn.hutool.core.util.ArrayUtil;
8 import cn.hutool.core.util.RuntimeUtil; 8 import cn.hutool.core.util.RuntimeUtil;
9 import cn.hutool.core.util.StrUtil; 9 import cn.hutool.core.util.StrUtil;
10 import cn.hutool.extra.spring.SpringUtil; 10 import cn.hutool.extra.spring.SpringUtil;
11 -import cn.iocoder.yudao.framework.ai.config.YudaoAiAutoConfiguration;  
12 -import cn.iocoder.yudao.framework.ai.config.YudaoAiProperties;  
13 -import cn.iocoder.yudao.framework.ai.core.enums.AiPlatformEnum;  
14 -import cn.iocoder.yudao.framework.ai.core.model.baichuan.BaiChuanChatModel;  
15 -import cn.iocoder.yudao.framework.ai.core.model.deepseek.DeepSeekChatModel;  
16 -import cn.iocoder.yudao.framework.ai.core.model.doubao.DouBaoChatModel;  
17 -import cn.iocoder.yudao.framework.ai.core.model.hunyuan.HunYuanChatModel;  
18 -import cn.iocoder.yudao.framework.ai.core.model.midjourney.api.MidjourneyApi;  
19 -import cn.iocoder.yudao.framework.ai.core.model.siliconflow.SiliconFlowApiConstants;  
20 -import cn.iocoder.yudao.framework.ai.core.model.siliconflow.SiliconFlowChatModel;  
21 -import cn.iocoder.yudao.framework.ai.core.model.siliconflow.SiliconFlowImageApi;  
22 -import cn.iocoder.yudao.framework.ai.core.model.siliconflow.SiliconFlowImageModel;  
23 -import cn.iocoder.yudao.framework.ai.core.model.suno.api.SunoApi;  
24 -import cn.iocoder.yudao.framework.ai.core.model.xinghuo.XingHuoChatModel; 11 +import cn.iocoder.yudao.module.ai.framework.ai.config.AiAutoConfiguration;
  12 +import cn.iocoder.yudao.module.ai.framework.ai.config.YudaoAiProperties;
  13 +import cn.iocoder.yudao.module.ai.enums.model.AiPlatformEnum;
  14 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.baichuan.BaiChuanChatModel;
  15 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.deepseek.DeepSeekChatModel;
  16 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.doubao.DouBaoChatModel;
  17 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.hunyuan.HunYuanChatModel;
  18 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.midjourney.api.MidjourneyApi;
  19 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.siliconflow.SiliconFlowApiConstants;
  20 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.siliconflow.SiliconFlowChatModel;
  21 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.siliconflow.SiliconFlowImageApi;
  22 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.siliconflow.SiliconFlowImageModel;
  23 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.suno.api.SunoApi;
  24 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.xinghuo.XingHuoChatModel;
25 import cn.iocoder.yudao.framework.common.util.spring.SpringUtils; 25 import cn.iocoder.yudao.framework.common.util.spring.SpringUtils;
26 import com.alibaba.cloud.ai.autoconfigure.dashscope.DashScopeAutoConfiguration; 26 import com.alibaba.cloud.ai.autoconfigure.dashscope.DashScopeAutoConfiguration;
27 import com.alibaba.cloud.ai.dashscope.api.DashScopeApi; 27 import com.alibaba.cloud.ai.dashscope.api.DashScopeApi;
@@ -361,39 +361,39 @@ public class AiModelFactoryImpl implements AiModelFactory { @@ -361,39 +361,39 @@ public class AiModelFactoryImpl implements AiModelFactory {
361 } 361 }
362 362
363 /** 363 /**
364 - * 可参考 {@link YudaoAiAutoConfiguration#deepSeekChatModel(YudaoAiProperties)} 364 + * 可参考 {@link AiAutoConfiguration#deepSeekChatModel(YudaoAiProperties)}
365 */ 365 */
366 private static DeepSeekChatModel buildDeepSeekChatModel(String apiKey) { 366 private static DeepSeekChatModel buildDeepSeekChatModel(String apiKey) {
367 YudaoAiProperties.DeepSeekProperties properties = new YudaoAiProperties.DeepSeekProperties() 367 YudaoAiProperties.DeepSeekProperties properties = new YudaoAiProperties.DeepSeekProperties()
368 .setApiKey(apiKey); 368 .setApiKey(apiKey);
369 - return new YudaoAiAutoConfiguration().buildDeepSeekChatModel(properties); 369 + return new AiAutoConfiguration().buildDeepSeekChatModel(properties);
370 } 370 }
371 371
372 /** 372 /**
373 - * 可参考 {@link YudaoAiAutoConfiguration#douBaoChatClient(YudaoAiProperties)} 373 + * 可参考 {@link AiAutoConfiguration#douBaoChatClient(YudaoAiProperties)}
374 */ 374 */
375 private ChatModel buildDouBaoChatModel(String apiKey) { 375 private ChatModel buildDouBaoChatModel(String apiKey) {
376 YudaoAiProperties.DouBaoProperties properties = new YudaoAiProperties.DouBaoProperties() 376 YudaoAiProperties.DouBaoProperties properties = new YudaoAiProperties.DouBaoProperties()
377 .setApiKey(apiKey); 377 .setApiKey(apiKey);
378 - return new YudaoAiAutoConfiguration().buildDouBaoChatClient(properties); 378 + return new AiAutoConfiguration().buildDouBaoChatClient(properties);
379 } 379 }
380 380
381 /** 381 /**
382 - * 可参考 {@link YudaoAiAutoConfiguration#hunYuanChatClient(YudaoAiProperties)} 382 + * 可参考 {@link AiAutoConfiguration#hunYuanChatClient(YudaoAiProperties)}
383 */ 383 */
384 private ChatModel buildHunYuanChatModel(String apiKey, String url) { 384 private ChatModel buildHunYuanChatModel(String apiKey, String url) {
385 YudaoAiProperties.HunYuanProperties properties = new YudaoAiProperties.HunYuanProperties() 385 YudaoAiProperties.HunYuanProperties properties = new YudaoAiProperties.HunYuanProperties()
386 .setBaseUrl(url).setApiKey(apiKey); 386 .setBaseUrl(url).setApiKey(apiKey);
387 - return new YudaoAiAutoConfiguration().buildHunYuanChatClient(properties); 387 + return new AiAutoConfiguration().buildHunYuanChatClient(properties);
388 } 388 }
389 389
390 /** 390 /**
391 - * 可参考 {@link YudaoAiAutoConfiguration#siliconFlowChatClient(YudaoAiProperties)} 391 + * 可参考 {@link AiAutoConfiguration#siliconFlowChatClient(YudaoAiProperties)}
392 */ 392 */
393 private ChatModel buildSiliconFlowChatModel(String apiKey) { 393 private ChatModel buildSiliconFlowChatModel(String apiKey) {
394 YudaoAiProperties.SiliconFlowProperties properties = new YudaoAiProperties.SiliconFlowProperties() 394 YudaoAiProperties.SiliconFlowProperties properties = new YudaoAiProperties.SiliconFlowProperties()
395 .setApiKey(apiKey); 395 .setApiKey(apiKey);
396 - return new YudaoAiAutoConfiguration().buildSiliconFlowChatClient(properties); 396 + return new AiAutoConfiguration().buildSiliconFlowChatClient(properties);
397 } 397 }
398 398
399 /** 399 /**
@@ -436,23 +436,23 @@ public class AiModelFactoryImpl implements AiModelFactory { @@ -436,23 +436,23 @@ public class AiModelFactoryImpl implements AiModelFactory {
436 } 436 }
437 437
438 /** 438 /**
439 - * 可参考 {@link YudaoAiAutoConfiguration#xingHuoChatClient(YudaoAiProperties)} 439 + * 可参考 {@link AiAutoConfiguration#xingHuoChatClient(YudaoAiProperties)}
440 */ 440 */
441 private static XingHuoChatModel buildXingHuoChatModel(String key) { 441 private static XingHuoChatModel buildXingHuoChatModel(String key) {
442 List<String> keys = StrUtil.split(key, '|'); 442 List<String> keys = StrUtil.split(key, '|');
443 Assert.equals(keys.size(), 2, "XingHuoChatClient 的密钥需要 (appKey|secretKey) 格式"); 443 Assert.equals(keys.size(), 2, "XingHuoChatClient 的密钥需要 (appKey|secretKey) 格式");
444 YudaoAiProperties.XingHuoProperties properties = new YudaoAiProperties.XingHuoProperties() 444 YudaoAiProperties.XingHuoProperties properties = new YudaoAiProperties.XingHuoProperties()
445 .setAppKey(keys.get(0)).setSecretKey(keys.get(1)); 445 .setAppKey(keys.get(0)).setSecretKey(keys.get(1));
446 - return new YudaoAiAutoConfiguration().buildXingHuoChatClient(properties); 446 + return new AiAutoConfiguration().buildXingHuoChatClient(properties);
447 } 447 }
448 448
449 /** 449 /**
450 - * 可参考 {@link YudaoAiAutoConfiguration#baiChuanChatClient(YudaoAiProperties)} 450 + * 可参考 {@link AiAutoConfiguration#baiChuanChatClient(YudaoAiProperties)}
451 */ 451 */
452 private BaiChuanChatModel buildBaiChuanChatModel(String apiKey) { 452 private BaiChuanChatModel buildBaiChuanChatModel(String apiKey) {
453 YudaoAiProperties.BaiChuanProperties properties = new YudaoAiProperties.BaiChuanProperties() 453 YudaoAiProperties.BaiChuanProperties properties = new YudaoAiProperties.BaiChuanProperties()
454 .setApiKey(apiKey); 454 .setApiKey(apiKey);
455 - return new YudaoAiAutoConfiguration().buildBaiChuanChatClient(properties); 455 + return new AiAutoConfiguration().buildBaiChuanChatClient(properties);
456 } 456 }
457 457
458 /** 458 /**
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/model/baichuan/BaiChuanChatModel.java renamed to yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/baichuan/BaiChuanChatModel.java
1 -package cn.iocoder.yudao.framework.ai.core.model.baichuan; 1 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.baichuan;
2 2
3 import lombok.RequiredArgsConstructor; 3 import lombok.RequiredArgsConstructor;
4 import lombok.extern.slf4j.Slf4j; 4 import lombok.extern.slf4j.Slf4j;
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/model/deepseek/DeepSeekChatModel.java renamed to yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/deepseek/DeepSeekChatModel.java
1 -package cn.iocoder.yudao.framework.ai.core.model.deepseek; 1 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.deepseek;
2 2
3 import lombok.RequiredArgsConstructor; 3 import lombok.RequiredArgsConstructor;
4 import lombok.extern.slf4j.Slf4j; 4 import lombok.extern.slf4j.Slf4j;
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/model/doubao/DouBaoChatModel.java renamed to yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/doubao/DouBaoChatModel.java
1 -package cn.iocoder.yudao.framework.ai.core.model.doubao; 1 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.doubao;
2 2
3 import lombok.RequiredArgsConstructor; 3 import lombok.RequiredArgsConstructor;
4 import lombok.extern.slf4j.Slf4j; 4 import lombok.extern.slf4j.Slf4j;
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/model/hunyuan/HunYuanChatModel.java renamed to yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/hunyuan/HunYuanChatModel.java
1 -package cn.iocoder.yudao.framework.ai.core.model.hunyuan; 1 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.hunyuan;
2 2
3 import lombok.RequiredArgsConstructor; 3 import lombok.RequiredArgsConstructor;
4 import lombok.extern.slf4j.Slf4j; 4 import lombok.extern.slf4j.Slf4j;
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/model/midjourney/api/MidjourneyApi.java renamed to yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/midjourney/api/MidjourneyApi.java
1 -package cn.iocoder.yudao.framework.ai.core.model.midjourney.api; 1 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.midjourney.api;
2 2
3 import cn.hutool.core.util.StrUtil; 3 import cn.hutool.core.util.StrUtil;
4 import cn.iocoder.yudao.framework.common.util.json.JsonUtils; 4 import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/model/siliconflow/SiliconFlowApiConstants.java renamed to yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/siliconflow/SiliconFlowApiConstants.java
@@ -14,7 +14,7 @@ @@ -14,7 +14,7 @@
14 * limitations under the License. 14 * limitations under the License.
15 */ 15 */
16 16
17 -package cn.iocoder.yudao.framework.ai.core.model.siliconflow; 17 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.siliconflow;
18 18
19 /** 19 /**
20 * SiliconFlow API 枚举类 20 * SiliconFlow API 枚举类
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/model/siliconflow/SiliconFlowChatModel.java renamed to yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/siliconflow/SiliconFlowChatModel.java
1 -package cn.iocoder.yudao.framework.ai.core.model.siliconflow; 1 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.siliconflow;
2 2
3 import lombok.RequiredArgsConstructor; 3 import lombok.RequiredArgsConstructor;
4 import lombok.extern.slf4j.Slf4j; 4 import lombok.extern.slf4j.Slf4j;
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/model/siliconflow/SiliconFlowImageApi.java renamed to yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/siliconflow/SiliconFlowImageApi.java
@@ -14,7 +14,7 @@ @@ -14,7 +14,7 @@
14 * limitations under the License. 14 * limitations under the License.
15 */ 15 */
16 16
17 -package cn.iocoder.yudao.framework.ai.core.model.siliconflow; 17 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.siliconflow;
18 18
19 import com.fasterxml.jackson.annotation.JsonInclude; 19 import com.fasterxml.jackson.annotation.JsonInclude;
20 import com.fasterxml.jackson.annotation.JsonProperty; 20 import com.fasterxml.jackson.annotation.JsonProperty;
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/model/siliconflow/SiliconFlowImageModel.java renamed to yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/siliconflow/SiliconFlowImageModel.java
@@ -14,7 +14,7 @@ @@ -14,7 +14,7 @@
14 * limitations under the License. 14 * limitations under the License.
15 */ 15 */
16 16
17 -package cn.iocoder.yudao.framework.ai.core.model.siliconflow; 17 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.siliconflow;
18 18
19 import io.micrometer.observation.ObservationRegistry; 19 import io.micrometer.observation.ObservationRegistry;
20 import lombok.Setter; 20 import lombok.Setter;
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/model/siliconflow/SiliconFlowImageOptions.java renamed to yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/siliconflow/SiliconFlowImageOptions.java
1 -package cn.iocoder.yudao.framework.ai.core.model.siliconflow; 1 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.siliconflow;
2 2
3 import com.fasterxml.jackson.annotation.JsonProperty; 3 import com.fasterxml.jackson.annotation.JsonProperty;
4 import lombok.AllArgsConstructor; 4 import lombok.AllArgsConstructor;
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/model/suno/api/SunoApi.java renamed to yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/suno/api/SunoApi.java
1 -package cn.iocoder.yudao.framework.ai.core.model.suno.api; 1 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.suno.api;
2 2
3 import cn.hutool.core.collection.CollUtil; 3 import cn.hutool.core.collection.CollUtil;
4 import cn.hutool.core.text.StrPool; 4 import cn.hutool.core.text.StrPool;
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/model/wenduoduo/api/WenDuoDuoPptApi.java renamed to yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/wenduoduo/api/WenDuoDuoPptApi.java
1 -package cn.iocoder.yudao.framework.ai.core.model.wenduoduo.api; 1 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.wenduoduo.api;
2 2
3 import cn.iocoder.yudao.framework.common.util.json.JsonUtils; 3 import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
4 import com.fasterxml.jackson.annotation.JsonFormat; 4 import com.fasterxml.jackson.annotation.JsonFormat;
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/model/xinghuo/XingHuoChatModel.java renamed to yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/xinghuo/XingHuoChatModel.java
1 -package cn.iocoder.yudao.framework.ai.core.model.xinghuo; 1 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.xinghuo;
2 2
3 import lombok.RequiredArgsConstructor; 3 import lombok.RequiredArgsConstructor;
4 import lombok.extern.slf4j.Slf4j; 4 import lombok.extern.slf4j.Slf4j;
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/model/xinghuo/api/XunFeiPptApi.java renamed to yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/xinghuo/api/XunFeiPptApi.java
1 -package cn.iocoder.yudao.framework.ai.core.model.xinghuo.api; 1 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.xinghuo.api;
2 2
3 import cn.hutool.core.util.ObjUtil; 3 import cn.hutool.core.util.ObjUtil;
4 import cn.hutool.crypto.SecureUtil; 4 import cn.hutool.crypto.SecureUtil;
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/package-info.java renamed to yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/framework/ai/package-info.java
@@ -10,4 +10,4 @@ @@ -10,4 +10,4 @@
10 * 6. midjourney 包:Midjourney API,对接 https://github.com/novicezk/midjourney-proxy 实现 10 * 6. midjourney 包:Midjourney API,对接 https://github.com/novicezk/midjourney-proxy 实现
11 * 7. suno 包:Suno API,对接 https://github.com/gcui-art/suno-api 实现 11 * 7. suno 包:Suno API,对接 https://github.com/gcui-art/suno-api 实现
12 */ 12 */
13 -package cn.iocoder.yudao.framework.ai;  
14 \ No newline at end of file 13 \ No newline at end of file
  14 +package cn.iocoder.yudao.module.ai.framework.ai;
15 \ No newline at end of file 15 \ No newline at end of file
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/chat/AiChatConversationServiceImpl.java
@@ -4,7 +4,7 @@ import cn.hutool.core.collection.CollUtil; @@ -4,7 +4,7 @@ import cn.hutool.core.collection.CollUtil;
4 import cn.hutool.core.lang.Assert; 4 import cn.hutool.core.lang.Assert;
5 import cn.hutool.core.util.ObjUtil; 5 import cn.hutool.core.util.ObjUtil;
6 import cn.hutool.core.util.ObjectUtil; 6 import cn.hutool.core.util.ObjectUtil;
7 -import cn.iocoder.yudao.framework.ai.core.enums.AiModelTypeEnum; 7 +import cn.iocoder.yudao.module.ai.enums.model.AiModelTypeEnum;
8 import cn.iocoder.yudao.framework.common.pojo.PageResult; 8 import cn.iocoder.yudao.framework.common.pojo.PageResult;
9 import cn.iocoder.yudao.framework.common.util.object.BeanUtils; 9 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
10 import cn.iocoder.yudao.module.ai.controller.admin.chat.vo.conversation.AiChatConversationCreateMyReqVO; 10 import cn.iocoder.yudao.module.ai.controller.admin.chat.vo.conversation.AiChatConversationCreateMyReqVO;
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/chat/AiChatMessageServiceImpl.java
@@ -3,8 +3,8 @@ package cn.iocoder.yudao.module.ai.service.chat; @@ -3,8 +3,8 @@ package cn.iocoder.yudao.module.ai.service.chat;
3 import cn.hutool.core.collection.CollUtil; 3 import cn.hutool.core.collection.CollUtil;
4 import cn.hutool.core.util.ObjUtil; 4 import cn.hutool.core.util.ObjUtil;
5 import cn.hutool.core.util.StrUtil; 5 import cn.hutool.core.util.StrUtil;
6 -import cn.iocoder.yudao.framework.ai.core.enums.AiPlatformEnum;  
7 -import cn.iocoder.yudao.framework.ai.core.util.AiUtils; 6 +import cn.iocoder.yudao.module.ai.enums.model.AiPlatformEnum;
  7 +import cn.iocoder.yudao.module.ai.util.AiUtils;
8 import cn.iocoder.yudao.framework.common.pojo.CommonResult; 8 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
9 import cn.iocoder.yudao.framework.common.pojo.PageResult; 9 import cn.iocoder.yudao.framework.common.pojo.PageResult;
10 import cn.iocoder.yudao.framework.common.util.object.BeanUtils; 10 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/image/AiImageService.java
1 package cn.iocoder.yudao.module.ai.service.image; 1 package cn.iocoder.yudao.module.ai.service.image;
2 2
3 -import cn.iocoder.yudao.framework.ai.core.model.midjourney.api.MidjourneyApi; 3 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.midjourney.api.MidjourneyApi;
4 import cn.iocoder.yudao.framework.common.pojo.PageResult; 4 import cn.iocoder.yudao.framework.common.pojo.PageResult;
5 import cn.iocoder.yudao.module.ai.controller.admin.image.vo.*; 5 import cn.iocoder.yudao.module.ai.controller.admin.image.vo.*;
6 import cn.iocoder.yudao.module.ai.controller.admin.image.vo.midjourney.AiMidjourneyActionReqVO; 6 import cn.iocoder.yudao.module.ai.controller.admin.image.vo.midjourney.AiMidjourneyActionReqVO;
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/image/AiImageServiceImpl.java
@@ -9,9 +9,9 @@ import cn.hutool.core.util.ObjUtil; @@ -9,9 +9,9 @@ import cn.hutool.core.util.ObjUtil;
9 import cn.hutool.core.util.StrUtil; 9 import cn.hutool.core.util.StrUtil;
10 import cn.hutool.extra.spring.SpringUtil; 10 import cn.hutool.extra.spring.SpringUtil;
11 import cn.hutool.http.HttpUtil; 11 import cn.hutool.http.HttpUtil;
12 -import cn.iocoder.yudao.framework.ai.core.enums.AiPlatformEnum;  
13 -import cn.iocoder.yudao.framework.ai.core.model.midjourney.api.MidjourneyApi;  
14 -import cn.iocoder.yudao.framework.ai.core.model.siliconflow.SiliconFlowImageOptions; 12 +import cn.iocoder.yudao.module.ai.enums.model.AiPlatformEnum;
  13 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.midjourney.api.MidjourneyApi;
  14 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.siliconflow.SiliconFlowImageOptions;
15 import cn.iocoder.yudao.framework.common.pojo.PageResult; 15 import cn.iocoder.yudao.framework.common.pojo.PageResult;
16 import cn.iocoder.yudao.framework.common.util.object.BeanUtils; 16 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
17 import cn.iocoder.yudao.module.ai.controller.admin.image.vo.AiImageDrawReqVO; 17 import cn.iocoder.yudao.module.ai.controller.admin.image.vo.AiImageDrawReqVO;
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/mindmap/AiMindMapServiceImpl.java
@@ -3,9 +3,9 @@ package cn.iocoder.yudao.module.ai.service.mindmap; @@ -3,9 +3,9 @@ package cn.iocoder.yudao.module.ai.service.mindmap;
3 import cn.hutool.core.collection.CollUtil; 3 import cn.hutool.core.collection.CollUtil;
4 import cn.hutool.core.util.ObjUtil; 4 import cn.hutool.core.util.ObjUtil;
5 import cn.hutool.core.util.StrUtil; 5 import cn.hutool.core.util.StrUtil;
6 -import cn.iocoder.yudao.framework.ai.core.enums.AiModelTypeEnum;  
7 -import cn.iocoder.yudao.framework.ai.core.enums.AiPlatformEnum;  
8 -import cn.iocoder.yudao.framework.ai.core.util.AiUtils; 6 +import cn.iocoder.yudao.module.ai.enums.model.AiModelTypeEnum;
  7 +import cn.iocoder.yudao.module.ai.enums.model.AiPlatformEnum;
  8 +import cn.iocoder.yudao.module.ai.util.AiUtils;
9 import cn.iocoder.yudao.framework.common.pojo.CommonResult; 9 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
10 import cn.iocoder.yudao.framework.common.pojo.PageResult; 10 import cn.iocoder.yudao.framework.common.pojo.PageResult;
11 import cn.iocoder.yudao.framework.common.util.object.BeanUtils; 11 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/model/AiModelService.java
1 package cn.iocoder.yudao.module.ai.service.model; 1 package cn.iocoder.yudao.module.ai.service.model;
2 2
3 -import cn.iocoder.yudao.framework.ai.core.model.midjourney.api.MidjourneyApi;  
4 -import cn.iocoder.yudao.framework.ai.core.model.suno.api.SunoApi; 3 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.midjourney.api.MidjourneyApi;
  4 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.suno.api.SunoApi;
5 import cn.iocoder.yudao.framework.common.pojo.PageResult; 5 import cn.iocoder.yudao.framework.common.pojo.PageResult;
6 import cn.iocoder.yudao.module.ai.controller.admin.model.vo.model.AiModelPageReqVO; 6 import cn.iocoder.yudao.module.ai.controller.admin.model.vo.model.AiModelPageReqVO;
7 import cn.iocoder.yudao.module.ai.controller.admin.model.vo.model.AiModelSaveReqVO; 7 import cn.iocoder.yudao.module.ai.controller.admin.model.vo.model.AiModelSaveReqVO;
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/model/AiModelServiceImpl.java
1 package cn.iocoder.yudao.module.ai.service.model; 1 package cn.iocoder.yudao.module.ai.service.model;
2 2
3 -import cn.iocoder.yudao.framework.ai.core.enums.AiPlatformEnum;  
4 -import cn.iocoder.yudao.framework.ai.core.factory.AiModelFactory;  
5 -import cn.iocoder.yudao.framework.ai.core.model.midjourney.api.MidjourneyApi;  
6 -import cn.iocoder.yudao.framework.ai.core.model.suno.api.SunoApi; 3 +import cn.iocoder.yudao.module.ai.enums.model.AiPlatformEnum;
  4 +import cn.iocoder.yudao.module.ai.framework.ai.core.AiModelFactory;
  5 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.midjourney.api.MidjourneyApi;
  6 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.suno.api.SunoApi;
7 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; 7 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
8 import cn.iocoder.yudao.framework.common.pojo.PageResult; 8 import cn.iocoder.yudao.framework.common.pojo.PageResult;
9 import cn.iocoder.yudao.framework.common.util.object.BeanUtils; 9 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/model/tool/UserProfileQueryToolFunction.java
1 package cn.iocoder.yudao.module.ai.service.model.tool; 1 package cn.iocoder.yudao.module.ai.service.model.tool;
2 2
3 -import cn.iocoder.yudao.framework.ai.core.util.AiUtils; 3 +import cn.iocoder.yudao.module.ai.util.AiUtils;
4 import cn.iocoder.yudao.framework.common.util.object.BeanUtils; 4 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
5 import cn.iocoder.yudao.framework.security.core.LoginUser; 5 import cn.iocoder.yudao.framework.security.core.LoginUser;
6 import cn.iocoder.yudao.framework.tenant.core.util.TenantUtils; 6 import cn.iocoder.yudao.framework.tenant.core.util.TenantUtils;
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/music/AiMusicServiceImpl.java
@@ -6,7 +6,7 @@ import cn.hutool.core.util.ObjUtil; @@ -6,7 +6,7 @@ import cn.hutool.core.util.ObjUtil;
6 import cn.hutool.core.util.ObjectUtil; 6 import cn.hutool.core.util.ObjectUtil;
7 import cn.hutool.core.util.StrUtil; 7 import cn.hutool.core.util.StrUtil;
8 import cn.hutool.http.HttpUtil; 8 import cn.hutool.http.HttpUtil;
9 -import cn.iocoder.yudao.framework.ai.core.model.suno.api.SunoApi; 9 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.suno.api.SunoApi;
10 import cn.iocoder.yudao.framework.common.pojo.PageResult; 10 import cn.iocoder.yudao.framework.common.pojo.PageResult;
11 import cn.iocoder.yudao.module.ai.controller.admin.music.vo.AiMusicPageReqVO; 11 import cn.iocoder.yudao.module.ai.controller.admin.music.vo.AiMusicPageReqVO;
12 import cn.iocoder.yudao.module.ai.controller.admin.music.vo.AiMusicUpdateMyReqVO; 12 import cn.iocoder.yudao.module.ai.controller.admin.music.vo.AiMusicUpdateMyReqVO;
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/write/AiWriteServiceImpl.java
@@ -3,9 +3,10 @@ package cn.iocoder.yudao.module.ai.service.write; @@ -3,9 +3,10 @@ package cn.iocoder.yudao.module.ai.service.write;
3 import cn.hutool.core.collection.CollUtil; 3 import cn.hutool.core.collection.CollUtil;
4 import cn.hutool.core.util.ObjUtil; 4 import cn.hutool.core.util.ObjUtil;
5 import cn.hutool.core.util.StrUtil; 5 import cn.hutool.core.util.StrUtil;
6 -import cn.iocoder.yudao.framework.ai.core.enums.AiModelTypeEnum;  
7 -import cn.iocoder.yudao.framework.ai.core.enums.AiPlatformEnum;  
8 -import cn.iocoder.yudao.framework.ai.core.util.AiUtils; 6 +import cn.iocoder.yudao.framework.dict.core.DictFrameworkUtils;
  7 +import cn.iocoder.yudao.module.ai.enums.model.AiModelTypeEnum;
  8 +import cn.iocoder.yudao.module.ai.enums.model.AiPlatformEnum;
  9 +import cn.iocoder.yudao.module.ai.util.AiUtils;
9 import cn.iocoder.yudao.framework.common.pojo.CommonResult; 10 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
10 import cn.iocoder.yudao.framework.common.pojo.PageResult; 11 import cn.iocoder.yudao.framework.common.pojo.PageResult;
11 import cn.iocoder.yudao.framework.common.util.object.BeanUtils; 12 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
@@ -61,9 +62,6 @@ public class AiWriteServiceImpl implements AiWriteService { @@ -61,9 +62,6 @@ public class AiWriteServiceImpl implements AiWriteService {
61 @Resource 62 @Resource
62 private AiWriteMapper writeMapper; 63 private AiWriteMapper writeMapper;
63 64
64 - @Resource  
65 - private DictDataApi dictDataApi;  
66 -  
67 @Override 65 @Override
68 public Flux<CommonResult<String>> generateWriteContent(AiWriteGenerateReqVO generateReqVO, Long userId) { 66 public Flux<CommonResult<String>> generateWriteContent(AiWriteGenerateReqVO generateReqVO, Long userId) {
69 // 1 获取写作模型。尝试获取写作助手角色,没有则使用默认模型 67 // 1 获取写作模型。尝试获取写作助手角色,没有则使用默认模型
@@ -146,10 +144,10 @@ public class AiWriteServiceImpl implements AiWriteService { @@ -146,10 +144,10 @@ public class AiWriteServiceImpl implements AiWriteService {
146 } 144 }
147 145
148 private String buildUserMessage(AiWriteGenerateReqVO generateReqVO) { 146 private String buildUserMessage(AiWriteGenerateReqVO generateReqVO) {
149 - String format = dictDataApi.getDictDataLabel(DictTypeConstants.AI_WRITE_FORMAT, generateReqVO.getFormat());  
150 - String tone = dictDataApi.getDictDataLabel(DictTypeConstants.AI_WRITE_TONE, generateReqVO.getTone());  
151 - String language = dictDataApi.getDictDataLabel(DictTypeConstants.AI_WRITE_LANGUAGE, generateReqVO.getLanguage());  
152 - String length = dictDataApi.getDictDataLabel(DictTypeConstants.AI_WRITE_LENGTH, generateReqVO.getLength()); 147 + String format = DictFrameworkUtils.parseDictDataLabel(DictTypeConstants.AI_WRITE_FORMAT, generateReqVO.getFormat());
  148 + String tone = DictFrameworkUtils.parseDictDataLabel(DictTypeConstants.AI_WRITE_TONE, generateReqVO.getTone());
  149 + String language = DictFrameworkUtils.parseDictDataLabel(DictTypeConstants.AI_WRITE_LANGUAGE, generateReqVO.getLanguage());
  150 + String length = DictFrameworkUtils.parseDictDataLabel(DictTypeConstants.AI_WRITE_LENGTH, generateReqVO.getLength());
153 // 格式化 prompt 151 // 格式化 prompt
154 String prompt = generateReqVO.getPrompt(); 152 String prompt = generateReqVO.getPrompt();
155 if (Objects.equals(generateReqVO.getType(), AiWriteTypeEnum.WRITING.getType())) { 153 if (Objects.equals(generateReqVO.getType(), AiWriteTypeEnum.WRITING.getType())) {
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/util/AiUtils.java renamed to yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/util/AiUtils.java
1 -package cn.iocoder.yudao.framework.ai.core.util; 1 +package cn.iocoder.yudao.module.ai.util;
2 2
3 import cn.hutool.core.util.ObjUtil; 3 import cn.hutool.core.util.ObjUtil;
4 import cn.hutool.core.util.StrUtil; 4 import cn.hutool.core.util.StrUtil;
5 -import cn.iocoder.yudao.framework.ai.core.enums.AiPlatformEnum; 5 +import cn.iocoder.yudao.module.ai.enums.model.AiPlatformEnum;
6 import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; 6 import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
7 import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder; 7 import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder;
8 import com.alibaba.cloud.ai.dashscope.chat.DashScopeChatOptions; 8 import com.alibaba.cloud.ai.dashscope.chat.DashScopeChatOptions;
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/chat/AzureOpenAIChatModelTests.java renamed to yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/chat/AzureOpenAIChatModelTests.java
1 -package cn.iocoder.yudao.framework.ai.chat; 1 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.chat;
2 2
3 import com.azure.ai.openai.OpenAIClientBuilder; 3 import com.azure.ai.openai.OpenAIClientBuilder;
4 import com.azure.core.credential.AzureKeyCredential; 4 import com.azure.core.credential.AzureKeyCredential;
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/chat/BaiChuanChatModelTests.java renamed to yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/chat/BaiChuanChatModelTests.java
1 -package cn.iocoder.yudao.framework.ai.chat; 1 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.chat;
2 2
3 -import cn.iocoder.yudao.framework.ai.core.model.baichuan.BaiChuanChatModel;  
4 -import cn.iocoder.yudao.framework.ai.core.model.deepseek.DeepSeekChatModel; 3 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.baichuan.BaiChuanChatModel;
  4 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.deepseek.DeepSeekChatModel;
5 import org.junit.jupiter.api.Disabled; 5 import org.junit.jupiter.api.Disabled;
6 import org.junit.jupiter.api.Test; 6 import org.junit.jupiter.api.Test;
7 import org.springframework.ai.chat.messages.Message; 7 import org.springframework.ai.chat.messages.Message;
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/chat/CozeChatModelTests.java renamed to yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/chat/CozeChatModelTests.java
1 -package cn.iocoder.yudao.framework.ai.chat; 1 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.chat;
2 2
3 import org.junit.jupiter.api.Disabled; 3 import org.junit.jupiter.api.Disabled;
4 import org.junit.jupiter.api.Test; 4 import org.junit.jupiter.api.Test;
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/chat/DeepSeekChatModelTests.java renamed to yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/chat/DeepSeekChatModelTests.java
1 -package cn.iocoder.yudao.framework.ai.chat; 1 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.chat;
2 2
3 -import cn.iocoder.yudao.framework.ai.core.model.deepseek.DeepSeekChatModel; 3 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.deepseek.DeepSeekChatModel;
4 import org.junit.jupiter.api.Disabled; 4 import org.junit.jupiter.api.Disabled;
5 import org.junit.jupiter.api.Test; 5 import org.junit.jupiter.api.Test;
6 import org.springframework.ai.chat.messages.Message; 6 import org.springframework.ai.chat.messages.Message;
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/chat/DifyChatModelTests.java renamed to yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/chat/DifyChatModelTests.java
1 -package cn.iocoder.yudao.framework.ai.chat; 1 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.chat;
2 2
3 import org.junit.jupiter.api.Disabled; 3 import org.junit.jupiter.api.Disabled;
4 import org.junit.jupiter.api.Test; 4 import org.junit.jupiter.api.Test;
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/chat/DouBaoChatModelTests.java renamed to yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/chat/DouBaoChatModelTests.java
1 -package cn.iocoder.yudao.framework.ai.chat; 1 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.chat;
2 2
3 -import cn.iocoder.yudao.framework.ai.core.model.doubao.DouBaoChatModel; 3 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.doubao.DouBaoChatModel;
4 import org.junit.jupiter.api.Disabled; 4 import org.junit.jupiter.api.Disabled;
5 import org.junit.jupiter.api.Test; 5 import org.junit.jupiter.api.Test;
6 import org.springframework.ai.chat.messages.Message; 6 import org.springframework.ai.chat.messages.Message;
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/chat/FastGPTChatModelTests.java renamed to yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/chat/FastGPTChatModelTests.java
1 -package cn.iocoder.yudao.framework.ai.chat; 1 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.chat;
2 2
3 import org.junit.jupiter.api.Disabled; 3 import org.junit.jupiter.api.Disabled;
4 import org.junit.jupiter.api.Test; 4 import org.junit.jupiter.api.Test;
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/chat/HunYuanChatModelTests.java renamed to yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/chat/HunYuanChatModelTests.java
1 -package cn.iocoder.yudao.framework.ai.chat; 1 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.chat;
2 2
3 -import cn.iocoder.yudao.framework.ai.core.model.hunyuan.HunYuanChatModel; 3 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.hunyuan.HunYuanChatModel;
4 import org.junit.jupiter.api.Disabled; 4 import org.junit.jupiter.api.Disabled;
5 import org.junit.jupiter.api.Test; 5 import org.junit.jupiter.api.Test;
6 import org.springframework.ai.chat.messages.Message; 6 import org.springframework.ai.chat.messages.Message;
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/chat/LlamaChatModelTests.java renamed to yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/chat/LlamaChatModelTests.java
1 -package cn.iocoder.yudao.framework.ai.chat; 1 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.chat;
2 2
3 import org.junit.jupiter.api.Disabled; 3 import org.junit.jupiter.api.Disabled;
4 import org.junit.jupiter.api.Test; 4 import org.junit.jupiter.api.Test;
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/chat/MiniMaxChatModelTests.java renamed to yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/chat/MiniMaxChatModelTests.java
1 -package cn.iocoder.yudao.framework.ai.chat; 1 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.chat;
2 2
3 import org.junit.jupiter.api.Disabled; 3 import org.junit.jupiter.api.Disabled;
4 import org.junit.jupiter.api.Test; 4 import org.junit.jupiter.api.Test;
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/chat/MoonshotChatModelTests.java renamed to yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/chat/MoonshotChatModelTests.java
1 -package cn.iocoder.yudao.framework.ai.chat; 1 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.chat;
2 2
3 import org.junit.jupiter.api.Disabled; 3 import org.junit.jupiter.api.Disabled;
4 import org.junit.jupiter.api.Test; 4 import org.junit.jupiter.api.Test;
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/chat/OllamaChatModelTests.java renamed to yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/chat/OllamaChatModelTests.java
1 -package cn.iocoder.yudao.framework.ai.chat; 1 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.chat;
2 2
3 import org.junit.jupiter.api.Disabled; 3 import org.junit.jupiter.api.Disabled;
4 import org.junit.jupiter.api.Test; 4 import org.junit.jupiter.api.Test;
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/chat/OpenAIChatModelTests.java renamed to yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/chat/OpenAIChatModelTests.java
1 -package cn.iocoder.yudao.framework.ai.chat; 1 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.chat;
2 2
3 import org.junit.jupiter.api.Disabled; 3 import org.junit.jupiter.api.Disabled;
4 import org.junit.jupiter.api.Test; 4 import org.junit.jupiter.api.Test;
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/chat/SiliconFlowChatModelTests.java renamed to yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/chat/SiliconFlowChatModelTests.java
1 -package cn.iocoder.yudao.framework.ai.chat; 1 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.chat;
2 2
3 -import cn.iocoder.yudao.framework.ai.core.model.siliconflow.SiliconFlowApiConstants;  
4 -import cn.iocoder.yudao.framework.ai.core.model.siliconflow.SiliconFlowChatModel; 3 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.siliconflow.SiliconFlowApiConstants;
  4 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.siliconflow.SiliconFlowChatModel;
5 import org.junit.jupiter.api.Disabled; 5 import org.junit.jupiter.api.Disabled;
6 import org.junit.jupiter.api.Test; 6 import org.junit.jupiter.api.Test;
7 import org.springframework.ai.chat.messages.Message; 7 import org.springframework.ai.chat.messages.Message;
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/chat/TongYiChatModelTests.java renamed to yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/chat/TongYiChatModelTests.java
1 -package cn.iocoder.yudao.framework.ai.chat; 1 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.chat;
2 2
3 import com.alibaba.cloud.ai.dashscope.api.DashScopeApi; 3 import com.alibaba.cloud.ai.dashscope.api.DashScopeApi;
4 import com.alibaba.cloud.ai.dashscope.chat.DashScopeChatModel; 4 import com.alibaba.cloud.ai.dashscope.chat.DashScopeChatModel;
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/chat/XingHuoChatModelTests.java renamed to yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/chat/XingHuoChatModelTests.java
1 -package cn.iocoder.yudao.framework.ai.chat; 1 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.chat;
2 2
3 -import cn.iocoder.yudao.framework.ai.core.model.xinghuo.XingHuoChatModel; 3 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.xinghuo.XingHuoChatModel;
4 import org.junit.jupiter.api.Disabled; 4 import org.junit.jupiter.api.Disabled;
5 import org.junit.jupiter.api.Test; 5 import org.junit.jupiter.api.Test;
6 import org.springframework.ai.chat.messages.Message; 6 import org.springframework.ai.chat.messages.Message;
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/chat/YiYanChatModelTests.java renamed to yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/chat/YiYanChatModelTests.java
1 -package cn.iocoder.yudao.framework.ai.chat; 1 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.chat;
2 2
3 import org.junit.jupiter.api.Disabled; 3 import org.junit.jupiter.api.Disabled;
4 import org.junit.jupiter.api.Test; 4 import org.junit.jupiter.api.Test;
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/chat/ZhiPuAiChatModelTests.java renamed to yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/chat/ZhiPuAiChatModelTests.java
1 -package cn.iocoder.yudao.framework.ai.chat; 1 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.chat;
2 2
3 import org.junit.jupiter.api.Disabled; 3 import org.junit.jupiter.api.Disabled;
4 import org.junit.jupiter.api.Test; 4 import org.junit.jupiter.api.Test;
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/image/MidjourneyApiTests.java renamed to yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/image/MidjourneyApiTests.java
1 -package cn.iocoder.yudao.framework.ai.image; 1 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.image;
2 2
3 -import cn.iocoder.yudao.framework.ai.core.model.midjourney.api.MidjourneyApi; 3 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.midjourney.api.MidjourneyApi;
4 import org.junit.jupiter.api.Disabled; 4 import org.junit.jupiter.api.Disabled;
5 import org.junit.jupiter.api.Test; 5 import org.junit.jupiter.api.Test;
6 6
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/image/OpenAiImageModelTests.java renamed to yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/image/OpenAiImageModelTests.java
1 -package cn.iocoder.yudao.framework.ai.image; 1 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.image;
2 2
3 import org.junit.jupiter.api.Disabled; 3 import org.junit.jupiter.api.Disabled;
4 import org.junit.jupiter.api.Test; 4 import org.junit.jupiter.api.Test;
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/image/QianFanImageTests.java renamed to yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/image/QianFanImageTests.java
1 -package cn.iocoder.yudao.framework.ai.image; 1 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.image;
2 2
3 import org.junit.jupiter.api.Disabled; 3 import org.junit.jupiter.api.Disabled;
4 import org.junit.jupiter.api.Test; 4 import org.junit.jupiter.api.Test;
@@ -8,7 +8,7 @@ import org.springframework.ai.qianfan.QianFanImageModel; @@ -8,7 +8,7 @@ import org.springframework.ai.qianfan.QianFanImageModel;
8 import org.springframework.ai.qianfan.QianFanImageOptions; 8 import org.springframework.ai.qianfan.QianFanImageOptions;
9 import org.springframework.ai.qianfan.api.QianFanImageApi; 9 import org.springframework.ai.qianfan.api.QianFanImageApi;
10 10
11 -import static cn.iocoder.yudao.framework.ai.image.StabilityAiImageModelTests.viewImage; 11 +import static cn.iocoder.yudao.module.ai.framework.ai.core.model.image.StabilityAiImageModelTests.viewImage;
12 12
13 // TODO @芋艿:百度千帆 API 提供了 V2 版本,目前 Spring AI 不兼容,可关键 <https://github.com/spring-projects/spring-ai/issues/2179> 进展 13 // TODO @芋艿:百度千帆 API 提供了 V2 版本,目前 Spring AI 不兼容,可关键 <https://github.com/spring-projects/spring-ai/issues/2179> 进展
14 14
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/image/SiliconFlowImageModelTests.java renamed to yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/image/SiliconFlowImageModelTests.java
1 -package cn.iocoder.yudao.framework.ai.image; 1 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.image;
2 2
3 -import cn.iocoder.yudao.framework.ai.core.model.siliconflow.SiliconFlowImageApi;  
4 -import cn.iocoder.yudao.framework.ai.core.model.siliconflow.SiliconFlowImageModel;  
5 -import cn.iocoder.yudao.framework.ai.core.model.siliconflow.SiliconFlowImageOptions; 3 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.siliconflow.SiliconFlowImageApi;
  4 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.siliconflow.SiliconFlowImageModel;
  5 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.siliconflow.SiliconFlowImageOptions;
6 import org.junit.jupiter.api.Disabled; 6 import org.junit.jupiter.api.Disabled;
7 import org.junit.jupiter.api.Test; 7 import org.junit.jupiter.api.Test;
8 import org.springframework.ai.image.ImagePrompt; 8 import org.springframework.ai.image.ImagePrompt;
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/image/StabilityAiImageModelTests.java renamed to yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/image/StabilityAiImageModelTests.java
1 -package cn.iocoder.yudao.framework.ai.image; 1 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.image;
2 2
3 import cn.hutool.core.codec.Base64; 3 import cn.hutool.core.codec.Base64;
4 import cn.hutool.core.thread.ThreadUtil; 4 import cn.hutool.core.thread.ThreadUtil;
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/image/TongYiImagesModelTest.java renamed to yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/image/TongYiImagesModelTest.java
1 -package cn.iocoder.yudao.framework.ai.image; 1 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.image;
2 2
3 import com.alibaba.cloud.ai.dashscope.api.DashScopeImageApi; 3 import com.alibaba.cloud.ai.dashscope.api.DashScopeImageApi;
4 import com.alibaba.cloud.ai.dashscope.image.DashScopeImageModel; 4 import com.alibaba.cloud.ai.dashscope.image.DashScopeImageModel;
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/image/ZhiPuAiImageModelTests.java renamed to yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/image/ZhiPuAiImageModelTests.java
1 -package cn.iocoder.yudao.framework.ai.image; 1 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.image;
2 2
3 import org.junit.jupiter.api.Disabled; 3 import org.junit.jupiter.api.Disabled;
4 import org.junit.jupiter.api.Test; 4 import org.junit.jupiter.api.Test;
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/mcp/DouBaoMcpTests.java renamed to yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/mcp/DouBaoMcpTests.java
1 -package cn.iocoder.yudao.framework.ai.mcp; 1 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.mcp;
2 2
3 -import cn.iocoder.yudao.framework.ai.core.model.doubao.DouBaoChatModel; 3 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.doubao.DouBaoChatModel;
  4 +import org.junit.jupiter.api.Disabled;
4 import org.junit.jupiter.api.Test; 5 import org.junit.jupiter.api.Test;
5 import org.springframework.ai.chat.client.ChatClient; 6 import org.springframework.ai.chat.client.ChatClient;
6 import org.springframework.ai.openai.OpenAiChatModel; 7 import org.springframework.ai.openai.OpenAiChatModel;
@@ -9,6 +10,7 @@ import org.springframework.ai.openai.api.OpenAiApi; @@ -9,6 +10,7 @@ import org.springframework.ai.openai.api.OpenAiApi;
9 import org.springframework.ai.tool.annotation.Tool; 10 import org.springframework.ai.tool.annotation.Tool;
10 import org.springframework.ai.tool.method.MethodToolCallbackProvider; 11 import org.springframework.ai.tool.method.MethodToolCallbackProvider;
11 12
  13 +@Disabled
12 public class DouBaoMcpTests { 14 public class DouBaoMcpTests {
13 15
14 private final OpenAiChatModel openAiChatModel = OpenAiChatModel.builder() 16 private final OpenAiChatModel openAiChatModel = OpenAiChatModel.builder()
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/music/SunoApiTests.java renamed to yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/music/SunoApiTests.java
1 -package cn.iocoder.yudao.framework.ai.music; 1 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.music;
2 2
3 import cn.hutool.core.collection.ListUtil; 3 import cn.hutool.core.collection.ListUtil;
4 -import cn.iocoder.yudao.framework.ai.core.model.suno.api.SunoApi; 4 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.suno.api.SunoApi;
5 import org.junit.jupiter.api.Disabled; 5 import org.junit.jupiter.api.Disabled;
6 import org.junit.jupiter.api.Test; 6 import org.junit.jupiter.api.Test;
7 7
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/ppt/wdd/WenDuoDuoPptApiTests.java renamed to yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/ppt/wdd/WenDuoDuoPptApiTests.java
1 -package cn.iocoder.yudao.framework.ai.ppt.wdd; 1 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.ppt.wdd;
2 2
3 -import cn.iocoder.yudao.framework.ai.core.model.wenduoduo.api.WenDuoDuoPptApi; 3 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.wenduoduo.api.WenDuoDuoPptApi;
4 import cn.iocoder.yudao.framework.common.util.json.JsonUtils; 4 import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
5 import org.junit.jupiter.api.Disabled; 5 import org.junit.jupiter.api.Disabled;
6 import org.junit.jupiter.api.Test; 6 import org.junit.jupiter.api.Test;
@@ -14,6 +14,7 @@ import java.util.Objects; @@ -14,6 +14,7 @@ import java.util.Objects;
14 * 14 *
15 * @author xiaoxin 15 * @author xiaoxin
16 */ 16 */
  17 +@Disabled
17 public class WenDuoDuoPptApiTests { 18 public class WenDuoDuoPptApiTests {
18 19
19 private final String token = ""; // API Token 20 private final String token = ""; // API Token
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/ppt/xunfei/XunFeiPptApiTests.java renamed to yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/ppt/xunfei/XunFeiPptApiTests.java
1 -package cn.iocoder.yudao.framework.ai.ppt.xunfei; 1 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.ppt.xunfei;
2 2
3 import cn.hutool.core.io.FileUtil; 3 import cn.hutool.core.io.FileUtil;
4 -import cn.iocoder.yudao.framework.ai.core.model.xinghuo.api.XunFeiPptApi; 4 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.xinghuo.api.XunFeiPptApi;
5 import cn.iocoder.yudao.framework.common.util.json.JsonUtils; 5 import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
6 import org.junit.jupiter.api.Disabled; 6 import org.junit.jupiter.api.Disabled;
7 import org.junit.jupiter.api.Test; 7 import org.junit.jupiter.api.Test;
yudao-module-ai/yudao-spring-boot-starter-ai/pom.xml deleted
1 -<?xml version="1.0" encoding="UTF-8"?>  
2 -<project xmlns="http://maven.apache.org/POM/4.0.0"  
3 - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
4 - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">  
5 - <parent>  
6 - <groupId>cn.iocoder.boot</groupId>  
7 - <artifactId>yudao-module-ai</artifactId>  
8 - <version>${revision}</version>  
9 - </parent>  
10 - <modelVersion>4.0.0</modelVersion>  
11 - <artifactId>yudao-spring-boot-starter-ai</artifactId>  
12 - <packaging>jar</packaging>  
13 -  
14 - <name>${project.artifactId}</name>  
15 - <description>AI 大模型拓展,接入国内外大模型</description>  
16 - <properties>  
17 - <spring-ai.version>1.0.0-M6</spring-ai.version>  
18 - <tinyflow.version>1.0.2</tinyflow.version>  
19 - </properties>  
20 -  
21 - <dependencies>  
22 - <dependency>  
23 - <groupId>cn.iocoder.boot</groupId>  
24 - <artifactId>yudao-common</artifactId>  
25 - </dependency>  
26 -  
27 - <!-- 业务组件 -->  
28 - <dependency>  
29 - <groupId>cn.iocoder.boot</groupId>  
30 - <artifactId>yudao-spring-boot-starter-biz-tenant</artifactId>  
31 - </dependency>  
32 -  
33 - <!-- Web 相关 -->  
34 - <dependency>  
35 - <groupId>cn.iocoder.boot</groupId>  
36 - <artifactId>yudao-spring-boot-starter-security</artifactId>  
37 - </dependency>  
38 -  
39 - <!-- Spring AI Model 模型接入 -->  
40 - <dependency>  
41 - <groupId>org.springframework.ai</groupId>  
42 - <artifactId>spring-ai-openai-spring-boot-starter</artifactId>  
43 - <version>${spring-ai.version}</version>  
44 - </dependency>  
45 - <dependency>  
46 - <groupId>org.springframework.ai</groupId>  
47 - <artifactId>spring-ai-azure-openai-spring-boot-starter</artifactId>  
48 - <version>${spring-ai.version}</version>  
49 - </dependency>  
50 - <dependency>  
51 - <groupId>org.springframework.ai</groupId>  
52 - <artifactId>spring-ai-ollama-spring-boot-starter</artifactId>  
53 - <version>${spring-ai.version}</version>  
54 - </dependency>  
55 - <dependency>  
56 - <groupId>org.springframework.ai</groupId>  
57 - <artifactId>spring-ai-stability-ai-spring-boot-starter</artifactId>  
58 - <version>${spring-ai.version}</version>  
59 - </dependency>  
60 - <dependency>  
61 - <!-- 通义千问 -->  
62 - <groupId>com.alibaba.cloud.ai</groupId>  
63 - <artifactId>spring-ai-alibaba-starter</artifactId>  
64 - <version>${spring-ai.version}.1</version>  
65 - </dependency>  
66 - <dependency>  
67 - <!-- 文心一言 -->  
68 - <groupId>org.springframework.ai</groupId>  
69 - <artifactId>spring-ai-qianfan-spring-boot-starter</artifactId>  
70 - <version>${spring-ai.version}</version>  
71 - </dependency>  
72 - <dependency>  
73 - <!-- 智谱 GLM -->  
74 - <groupId>org.springframework.ai</groupId>  
75 - <artifactId>spring-ai-zhipuai-spring-boot-starter</artifactId>  
76 - <version>${spring-ai.version}</version>  
77 - </dependency>  
78 - <dependency>  
79 - <groupId>org.springframework.ai</groupId>  
80 - <artifactId>spring-ai-minimax-spring-boot-starter</artifactId>  
81 - <version>${spring-ai.version}</version>  
82 - </dependency>  
83 - <dependency>  
84 - <groupId>org.springframework.ai</groupId>  
85 - <artifactId>spring-ai-moonshot-spring-boot-starter</artifactId>  
86 - <version>${spring-ai.version}</version>  
87 - </dependency>  
88 -  
89 - <!-- 向量存储:https://db-engines.com/en/ranking/vector+dbms -->  
90 - <dependency>  
91 - <!-- Qdrant:https://qdrant.tech/ -->  
92 - <groupId>org.springframework.ai</groupId>  
93 - <artifactId>spring-ai-qdrant-store</artifactId>  
94 - <version>${spring-ai.version}</version>  
95 - </dependency>  
96 -  
97 - <dependency>  
98 - <!-- Redis:https://redis.io/docs/latest/develop/get-started/vector-database/ -->  
99 - <groupId>org.springframework.ai</groupId>  
100 - <artifactId>spring-ai-redis-store</artifactId>  
101 - <version>${spring-ai.version}</version>  
102 - </dependency>  
103 - <dependency>  
104 - <groupId>cn.iocoder.boot</groupId>  
105 - <artifactId>yudao-spring-boot-starter-redis</artifactId>  
106 - </dependency>  
107 -  
108 - <dependency>  
109 - <!-- Milvus:https://milvus.io/ -->  
110 - <groupId>org.springframework.ai</groupId>  
111 - <artifactId>spring-ai-milvus-store</artifactId>  
112 - <version>${spring-ai.version}</version>  
113 - <exclusions>  
114 - <!-- 解决和 logback 的日志冲突 -->  
115 - <exclusion>  
116 - <groupId>org.slf4j</groupId>  
117 - <artifactId>slf4j-reload4j</artifactId>  
118 - </exclusion>  
119 - </exclusions>  
120 - </dependency>  
121 -  
122 - <dependency>  
123 - <!-- Tika:负责内容的解析 -->  
124 - <groupId>org.springframework.ai</groupId>  
125 - <artifactId>spring-ai-tika-document-reader</artifactId>  
126 - <version>${spring-ai.version}</version>  
127 - <!-- TODO 芋艿:boot 项目里,不引入 cloud 依赖!!!另外,这样也是为了解决启动报错的问题! -->  
128 - <exclusions>  
129 - <exclusion>  
130 - <artifactId>spring-cloud-function-context</artifactId>  
131 - <groupId>org.springframework.cloud</groupId>  
132 - </exclusion>  
133 - <exclusion>  
134 - <artifactId>spring-cloud-function-core</artifactId>  
135 - <groupId>org.springframework.cloud</groupId>  
136 - </exclusion>  
137 - </exclusions>  
138 - </dependency>  
139 -  
140 - <!-- TinyFlow:AI 工作流 -->  
141 - <dependency>  
142 - <groupId>dev.tinyflow</groupId>  
143 - <artifactId>tinyflow-java-core</artifactId>  
144 - <version>${tinyflow.version}</version>  
145 - <exclusions>  
146 - <exclusion>  
147 - <groupId>com.jfinal</groupId>  
148 - <artifactId>enjoy</artifactId>  
149 - </exclusion>  
150 - <exclusion>  
151 - <!-- 解决 https://gitee.com/zhijiantianya/ruoyi-vue-pro/pulls/1318/ 问题 -->  
152 - <groupId>com.agentsflex</groupId>  
153 - <artifactId>agents-flex-store-elasticsearch</artifactId>  
154 - </exclusion>  
155 - <exclusion>  
156 - <!-- TODO @芋艿:暂时移除 groovy,和 iot 冲突 -->  
157 - <groupId>org.codehaus.groovy</groupId>  
158 - <artifactId>groovy-all</artifactId>  
159 - </exclusion>  
160 - <!-- 解决和 logback 的日志冲突 -->  
161 - <exclusion>  
162 - <groupId>org.slf4j</groupId>  
163 - <artifactId>slf4j-simple</artifactId>  
164 - </exclusion>  
165 - <exclusion>  
166 - <groupId>org.apache.logging.log4j</groupId>  
167 - <artifactId>log4j-slf4j-impl</artifactId>  
168 - </exclusion>  
169 - <exclusion>  
170 - <groupId>org.slf4j</groupId>  
171 - <artifactId>slf4j-reload4j</artifactId>  
172 - </exclusion>  
173 - </exclusions>  
174 - </dependency>  
175 -  
176 - <!-- Test 测试相关 -->  
177 - <dependency>  
178 - <groupId>org.springframework.boot</groupId>  
179 - <artifactId>spring-boot-starter-test</artifactId>  
180 - <scope>test</scope>  
181 - </dependency>  
182 - </dependencies>  
183 -  
184 -</project>  
185 \ No newline at end of file 0 \ No newline at end of file
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports deleted
1 -cn.iocoder.yudao.framework.ai.config.YudaoAiAutoConfiguration  
2 \ No newline at end of file 0 \ No newline at end of file