diff --git a/service-ai/pom.xml b/service-ai/pom.xml
index af12c61..aa083d7 100644
--- a/service-ai/pom.xml
+++ b/service-ai/pom.xml
@@ -32,6 +32,13 @@
5.8.27
+
+
+ org.projectlombok
+ lombok
+
+
+
diff --git a/service-ai/service-ai-knowledge/pom.xml b/service-ai/service-ai-knowledge/pom.xml
index 380f8ac..2b4992d 100644
--- a/service-ai/service-ai-knowledge/pom.xml
+++ b/service-ai/service-ai-knowledge/pom.xml
@@ -26,6 +26,10 @@
org.springframework.ai
spring-ai-starter-model-openai
+
+ org.springframework.ai
+ spring-ai-starter-model-deepseek
+
org.springframework.ai
spring-ai-starter-vector-store-qdrant
diff --git a/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/configuration/FileStoreConfiguration.java b/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/configuration/FileStoreConfiguration.java
new file mode 100644
index 0000000..14e4b6c
--- /dev/null
+++ b/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/configuration/FileStoreConfiguration.java
@@ -0,0 +1,17 @@
+package com.lanyuanxiaoyao.service.ai.knowledge.configuration;
+
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * @author lanyuanxiaoyao
+ * @version 20250527
+ */
+@Data
+@Configuration
+@ConfigurationProperties(prefix = "file-store")
+public class FileStoreConfiguration {
+ private String downloadPrefix;
+ private String uploadPath;
+}
diff --git a/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/configuration/KnowledgeConfiguration.java b/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/configuration/KnowledgeConfiguration.java
deleted file mode 100644
index 42adb63..0000000
--- a/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/configuration/KnowledgeConfiguration.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package com.lanyuanxiaoyao.service.ai.knowledge.configuration;
-
-import org.springframework.boot.context.properties.ConfigurationProperties;
-import org.springframework.context.annotation.Configuration;
-
-/**
- * @author lanyuanxiaoyao
- * @version 20250527
- */
-@Configuration
-@ConfigurationProperties(prefix = "knowledge")
-public class KnowledgeConfiguration {
- private String downloadPrefix;
- private String uploadPath;
-
- public String getDownloadPrefix() {
- return downloadPrefix;
- }
-
- public void setDownloadPrefix(String downloadPrefix) {
- this.downloadPrefix = downloadPrefix;
- }
-
- public String getUploadPath() {
- return uploadPath;
- }
-
- public void setUploadPath(String uploadPath) {
- this.uploadPath = uploadPath;
- }
-
- @Override
- public String toString() {
- return "KnowledgeConfiguration{" +
- "downloadPrefix='" + downloadPrefix + '\'' +
- ", uploadPath='" + uploadPath + '\'' +
- '}';
- }
-}
diff --git a/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/configuration/LlmConfiguration.java b/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/configuration/LlmConfiguration.java
new file mode 100644
index 0000000..6da85c8
--- /dev/null
+++ b/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/configuration/LlmConfiguration.java
@@ -0,0 +1,111 @@
+package com.lanyuanxiaoyao.service.ai.knowledge.configuration;
+
+import cn.hutool.core.lang.Assert;
+import cn.hutool.core.util.StrUtil;
+import java.time.Duration;
+import lombok.extern.slf4j.Slf4j;
+import org.noear.solon.ai.reranking.RerankingModel;
+import org.springframework.ai.chat.client.ChatClient;
+import org.springframework.ai.deepseek.DeepSeekChatModel;
+import org.springframework.ai.deepseek.DeepSeekChatOptions;
+import org.springframework.ai.deepseek.api.DeepSeekApi;
+import org.springframework.ai.document.MetadataMode;
+import org.springframework.ai.embedding.EmbeddingModel;
+import org.springframework.ai.openai.OpenAiChatModel;
+import org.springframework.ai.openai.OpenAiChatOptions;
+import org.springframework.ai.openai.OpenAiEmbeddingModel;
+import org.springframework.ai.openai.OpenAiEmbeddingOptions;
+import org.springframework.ai.openai.api.OpenAiApi;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.client.RestClient;
+import org.springframework.web.reactive.function.client.WebClient;
+
+@Slf4j
+@Configuration
+public class LlmConfiguration {
+ @Bean("chat")
+ public ChatClient.Builder chatClientBuilder(LlmProperties llmProperties, WebClient.Builder webClientBuilder, RestClient.Builder restClientBuilder) {
+ Assert.notNull(llmProperties.getChat(), "chat properties is null");
+ DeepSeekApi.Builder apiBuilder = DeepSeekApi.builder()
+ .baseUrl(StrUtil.firstNonBlank(llmProperties.getChat().getBaseUrl(), llmProperties.getBaseUrl()))
+ .apiKey(StrUtil.firstNonBlank(llmProperties.getChat().getApiKey(), llmProperties.getApiKey()))
+ .webClientBuilder(webClientBuilder)
+ .restClientBuilder(restClientBuilder);
+ if (StrUtil.isNotBlank(llmProperties.getChat().getEndpoint())) {
+ apiBuilder.completionsPath(llmProperties.getChat().getEndpoint());
+ }
+ return ChatClient.builder(
+ DeepSeekChatModel.builder()
+ .deepSeekApi(apiBuilder.build())
+ .defaultOptions(
+ DeepSeekChatOptions.builder()
+ .model(llmProperties.getChat().getModel())
+ .build()
+ )
+ .build()
+ );
+ }
+
+ @Bean("visual")
+ public ChatClient.Builder visualClientBuilder(LlmProperties llmProperties, WebClient.Builder webClientBuilder, RestClient.Builder restClientBuilder) {
+ Assert.notNull(llmProperties.getVisual(), "visual properties is null");
+ OpenAiApi.Builder apiBuilder = OpenAiApi.builder()
+ .baseUrl(StrUtil.firstNonBlank(llmProperties.getVisual().getBaseUrl(), llmProperties.getBaseUrl()))
+ .apiKey(StrUtil.firstNonBlank(llmProperties.getVisual().getApiKey(), llmProperties.getApiKey()))
+ .webClientBuilder(webClientBuilder)
+ .restClientBuilder(restClientBuilder);
+ if (StrUtil.isNotBlank(llmProperties.getVisual().getEndpoint())) {
+ apiBuilder.completionsPath(llmProperties.getVisual().getEndpoint());
+ }
+ return ChatClient.builder(
+ OpenAiChatModel.builder()
+ .openAiApi(apiBuilder.build())
+ .defaultOptions(
+ OpenAiChatOptions.builder()
+ .model(llmProperties.getChat().getModel())
+ .build()
+ )
+ .build()
+ );
+ }
+
+ @Bean
+ public EmbeddingModel embeddingModel(LlmProperties llmProperties, WebClient.Builder webClientBuilder, RestClient.Builder restClientBuilder) {
+ Assert.notNull(llmProperties.getEmbedding(), "embedding properties is null");
+ OpenAiApi.Builder apiBuilder = OpenAiApi.builder()
+ .baseUrl(StrUtil.firstNonBlank(llmProperties.getEmbedding().getBaseUrl(), llmProperties.getBaseUrl()))
+ .apiKey(StrUtil.firstNonBlank(llmProperties.getEmbedding().getApiKey(), llmProperties.getApiKey()))
+ .webClientBuilder(webClientBuilder)
+ .restClientBuilder(restClientBuilder);
+ if (StrUtil.isNotBlank(llmProperties.getEmbedding().getEndpoint())) {
+ apiBuilder.embeddingsPath(llmProperties.getEmbedding().getEndpoint());
+ }
+ return new OpenAiEmbeddingModel(
+ apiBuilder.build(),
+ MetadataMode.EMBED,
+ OpenAiEmbeddingOptions.builder()
+ .model(llmProperties.getEmbedding().getModel())
+ .build()
+ );
+ }
+
+ @Bean
+ public RerankingModel rerankingModel(LlmProperties llmProperties) {
+ Assert.notNull(llmProperties.getReranker(), "reranker properties is null");
+ String url = llmProperties.getBaseUrl();
+ if (StrUtil.isNotBlank(llmProperties.getReranker().getBaseUrl())) {
+ url = llmProperties.getReranker().getBaseUrl();
+ }
+ if (StrUtil.isNotBlank(llmProperties.getReranker().getEndpoint())) {
+ url += llmProperties.getReranker().getEndpoint();
+ } else {
+ url += "/v1/rerank";
+ }
+ return RerankingModel.of(url)
+ .apiKey(StrUtil.firstNonBlank(llmProperties.getReranker().getApiKey(), llmProperties.getApiKey()))
+ .model(llmProperties.getReranker().getModel())
+ .timeout(Duration.ofMinutes(10))
+ .build();
+ }
+}
diff --git a/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/configuration/LlmProperties.java b/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/configuration/LlmProperties.java
new file mode 100644
index 0000000..22de8b1
--- /dev/null
+++ b/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/configuration/LlmProperties.java
@@ -0,0 +1,25 @@
+package com.lanyuanxiaoyao.service.ai.knowledge.configuration;
+
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.context.annotation.Configuration;
+
+@Data
+@Configuration
+@ConfigurationProperties(prefix = "spring.llm")
+public class LlmProperties {
+ private String baseUrl;
+ private String apiKey;
+ private ChatProperties chat;
+ private ChatProperties visual;
+ private ChatProperties embedding;
+ private ChatProperties reranker;
+
+ @Data
+ public static class ChatProperties {
+ private String baseUrl;
+ private String apiKey;
+ private String model;
+ private String endpoint;
+ }
+}
diff --git a/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/configuration/SolonConfiguration.java b/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/configuration/SolonConfiguration.java
deleted file mode 100644
index b255233..0000000
--- a/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/configuration/SolonConfiguration.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package com.lanyuanxiaoyao.service.ai.knowledge.configuration;
-
-import cn.hutool.core.util.StrUtil;
-import org.noear.solon.ai.reranking.RerankingModel;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-
-/**
- * @author lanyuanxiaoyao
- * @version 20250604
- */
-@Configuration
-public class SolonConfiguration {
- @Bean
- public RerankingModel rerankingModel(SolonProperties solonProperties) {
- return RerankingModel.of(StrUtil.format("{}{}", solonProperties.getBaseUrl(), solonProperties.getRerank().getEndpoint()))
- .apiKey(solonProperties.getApiKey())
- .model(solonProperties.getRerank().getModel())
- .build();
- }
-}
diff --git a/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/configuration/SolonProperties.java b/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/configuration/SolonProperties.java
deleted file mode 100644
index 399c219..0000000
--- a/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/configuration/SolonProperties.java
+++ /dev/null
@@ -1,78 +0,0 @@
-package com.lanyuanxiaoyao.service.ai.knowledge.configuration;
-
-import org.springframework.boot.context.properties.ConfigurationProperties;
-import org.springframework.context.annotation.Configuration;
-
-/**
- * @author lanyuanxiaoyao
- * @version 20250604
- */
-@Configuration
-@ConfigurationProperties(prefix = "solon")
-public class SolonProperties {
- private String baseUrl;
- private String apiKey;
- private Rerank rerank;
-
- public String getBaseUrl() {
- return baseUrl;
- }
-
- public void setBaseUrl(String baseUrl) {
- this.baseUrl = baseUrl;
- }
-
- public String getApiKey() {
- return apiKey;
- }
-
- public void setApiKey(String apiKey) {
- this.apiKey = apiKey;
- }
-
- public Rerank getRerank() {
- return rerank;
- }
-
- public void setRerank(Rerank rerank) {
- this.rerank = rerank;
- }
-
- @Override
- public String toString() {
- return "SolonProperties{" +
- "baseUrl='" + baseUrl + '\'' +
- ", apiKey='" + apiKey + '\'' +
- ", rerank=" + rerank +
- '}';
- }
-
- public static final class Rerank {
- private String model;
- private String endpoint;
-
- public String getModel() {
- return model;
- }
-
- public void setModel(String model) {
- this.model = model;
- }
-
- public String getEndpoint() {
- return endpoint;
- }
-
- public void setEndpoint(String endpoint) {
- this.endpoint = endpoint;
- }
-
- @Override
- public String toString() {
- return "Rerank{" +
- "model='" + model + '\'' +
- ", endpoint='" + endpoint + '\'' +
- '}';
- }
- }
-}
diff --git a/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/controller/DataFileController.java b/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/controller/DataFileController.java
index ad09fdf..7306b62 100644
--- a/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/controller/DataFileController.java
+++ b/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/controller/DataFileController.java
@@ -7,7 +7,7 @@ import cn.hutool.core.util.URLUtil;
import cn.hutool.crypto.SecureUtil;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.lanyuanxiaoyao.service.ai.core.entity.amis.AmisResponse;
-import com.lanyuanxiaoyao.service.ai.knowledge.configuration.KnowledgeConfiguration;
+import com.lanyuanxiaoyao.service.ai.knowledge.configuration.FileStoreConfiguration;
import com.lanyuanxiaoyao.service.ai.knowledge.entity.vo.DataFileVO;
import com.lanyuanxiaoyao.service.ai.knowledge.service.DataFileService;
import jakarta.servlet.http.HttpServletResponse;
@@ -17,6 +17,10 @@ import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.channels.FileChannel;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
import org.eclipse.collections.api.list.ImmutableList;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -35,22 +39,21 @@ import org.springframework.web.multipart.MultipartFile;
* @author lanyuanxiaoyao
* @date 2024-11-21
*/
+@Slf4j
@RestController
@RequestMapping("/upload")
public class DataFileController {
- private static final Logger log = LoggerFactory.getLogger(DataFileController.class);
-
- private final KnowledgeConfiguration knowledgeConfiguration;
+ private final FileStoreConfiguration fileStoreConfiguration;
private final DataFileService dataFileService;
private final String uploadFolderPath;
private final String cacheFolderPath;
private final String sliceFolderPath;
- public DataFileController(KnowledgeConfiguration knowledgeConfiguration, DataFileService dataFileService) {
- this.knowledgeConfiguration = knowledgeConfiguration;
+ public DataFileController(FileStoreConfiguration fileStoreConfiguration, DataFileService dataFileService) {
+ this.fileStoreConfiguration = fileStoreConfiguration;
this.dataFileService = dataFileService;
- this.uploadFolderPath = knowledgeConfiguration.getUploadPath();
+ this.uploadFolderPath = fileStoreConfiguration.getUploadPath();
this.cacheFolderPath = StrUtil.format("{}/cache", uploadFolderPath);
this.sliceFolderPath = StrUtil.format("{}/slice", uploadFolderPath);
}
@@ -59,7 +62,7 @@ public class DataFileController {
public AmisResponse upload(@RequestParam("file") MultipartFile file) throws IOException {
String filename = file.getOriginalFilename();
Long id = dataFileService.initialDataFile(filename);
- String url = StrUtil.format("{}/upload/download/{}", knowledgeConfiguration.getDownloadPrefix(), id);
+ String url = StrUtil.format("{}/upload/download/{}", fileStoreConfiguration.getDownloadPrefix(), id);
byte[] bytes = file.getBytes();
String originMd5 = SecureUtil.md5(new ByteArrayInputStream(bytes));
File targetFile = new File(StrUtil.format("{}/{}", uploadFolderPath, originMd5));
@@ -156,7 +159,7 @@ public class DataFileController {
request.uploadId,
request.filename,
request.uploadId.toString(),
- StrUtil.format("{}/upload/download/{}", knowledgeConfiguration.getDownloadPrefix(), request.uploadId)
+ StrUtil.format("{}/upload/download/{}", fileStoreConfiguration.getDownloadPrefix(), request.uploadId)
));
} else {
throw new RuntimeException("合并文件失败");
@@ -169,213 +172,48 @@ public class DataFileController {
}
}
+ @Data
public static final class StartRequest {
private String name;
private String filename;
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public String getFilename() {
- return filename;
- }
-
- public void setFilename(String filename) {
- this.filename = filename;
- }
-
- @Override
- public String toString() {
- return "StartRequest{" +
- "name='" + name + '\'' +
- ", filename='" + filename + '\'' +
- '}';
- }
}
+ @Data
+ @NoArgsConstructor
+ @AllArgsConstructor
public static final class StartResponse {
private String uploadId;
-
- public StartResponse() {
- }
-
- public StartResponse(String uploadId) {
- this.uploadId = uploadId;
- }
-
- public String getUploadId() {
- return uploadId;
- }
-
- public void setUploadId(String uploadId) {
- this.uploadId = uploadId;
- }
-
- @Override
- public String toString() {
- return "StartResponse{" +
- "uploadId='" + uploadId + '\'' +
- '}';
- }
}
+ @Data
+ @NoArgsConstructor
+ @AllArgsConstructor
public static final class SliceResponse {
@JsonProperty("eTag")
private String eTag;
-
- public SliceResponse() {
- }
-
- public SliceResponse(String eTag) {
- this.eTag = eTag;
- }
-
- public String geteTag() {
- return eTag;
- }
-
- public void seteTag(String eTag) {
- this.eTag = eTag;
- }
-
- @Override
- public String toString() {
- return "SliceResponse{" +
- "eTag='" + eTag + '\'' +
- '}';
- }
}
+ @Data
public static final class FinishRequest {
private String filename;
private Long uploadId;
private ImmutableList partList;
- public String getFilename() {
- return filename;
- }
-
- public void setFilename(String filename) {
- this.filename = filename;
- }
-
- public Long getUploadId() {
- return uploadId;
- }
-
- public void setUploadId(Long uploadId) {
- this.uploadId = uploadId;
- }
-
- public ImmutableList getPartList() {
- return partList;
- }
-
- public void setPartList(ImmutableList partList) {
- this.partList = partList;
- }
-
- @Override
- public String toString() {
- return "FinishRequest{" +
- "filename='" + filename + '\'' +
- ", uploadId=" + uploadId +
- ", partList=" + partList +
- '}';
- }
-
+ @Data
public static final class Part {
private Integer partNumber;
@JsonProperty("eTag")
private String eTag;
-
- public Integer getPartNumber() {
- return partNumber;
- }
-
- public void setPartNumber(Integer partNumber) {
- this.partNumber = partNumber;
- }
-
- public String geteTag() {
- return eTag;
- }
-
- public void seteTag(String eTag) {
- this.eTag = eTag;
- }
-
- @Override
- public String toString() {
- return "Part{" +
- "partNumber=" + partNumber +
- ", eTag='" + eTag + '\'' +
- '}';
- }
}
}
+ @Data
+ @NoArgsConstructor
+ @AllArgsConstructor
public static final class FinishResponse {
private Long id;
private String filename;
private String value;
private String url;
-
- public FinishResponse() {
- }
-
- public FinishResponse(Long id, String filename, String value, String url) {
- this.id = id;
- this.filename = filename;
- this.value = value;
- this.url = url;
- }
-
- public Long getId() {
- return id;
- }
-
- public void setId(Long id) {
- this.id = id;
- }
-
- public String getFilename() {
- return filename;
- }
-
- public void setFilename(String filename) {
- this.filename = filename;
- }
-
- public String getValue() {
- return value;
- }
-
- public void setValue(String value) {
- this.value = value;
- }
-
- public String getUrl() {
- return url;
- }
-
- public void setUrl(String url) {
- this.url = url;
- }
-
- @Override
- public String toString() {
- return "FinishResponse{" +
- "id=" + id +
- ", filename='" + filename + '\'' +
- ", value='" + value + '\'' +
- ", url='" + url + '\'' +
- '}';
- }
}
}
diff --git a/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/controller/knowledge/GroupController.java b/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/controller/knowledge/GroupController.java
index 63eaab9..98e36df 100644
--- a/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/controller/knowledge/GroupController.java
+++ b/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/controller/knowledge/GroupController.java
@@ -3,6 +3,7 @@ package com.lanyuanxiaoyao.service.ai.knowledge.controller.knowledge;
import com.lanyuanxiaoyao.service.ai.core.entity.amis.AmisResponse;
import com.lanyuanxiaoyao.service.ai.knowledge.service.knowledge.GroupService;
import java.util.concurrent.ExecutionException;
+import lombok.extern.slf4j.Slf4j;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.GetMapping;
@@ -14,11 +15,10 @@ import org.springframework.web.bind.annotation.RestController;
* @author lanyuanxiaoyao
* @version 20250528
*/
+@Slf4j
@RestController
@RequestMapping("knowledge/group")
public class GroupController {
- private static final Logger logger = LoggerFactory.getLogger(GroupController.class);
-
private final GroupService groupService;
public GroupController(GroupService groupService) {
diff --git a/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/controller/knowledge/KnowledgeBaseController.java b/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/controller/knowledge/KnowledgeBaseController.java
index fb67ab9..e560add 100644
--- a/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/controller/knowledge/KnowledgeBaseController.java
+++ b/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/controller/knowledge/KnowledgeBaseController.java
@@ -8,6 +8,7 @@ import com.lanyuanxiaoyao.service.ai.knowledge.service.EmbeddingService;
import com.lanyuanxiaoyao.service.ai.knowledge.service.knowledge.KnowledgeBaseService;
import java.io.IOException;
import java.util.concurrent.ExecutionException;
+import lombok.extern.slf4j.Slf4j;
import org.eclipse.collections.api.factory.Lists;
import org.eclipse.collections.api.list.ImmutableList;
import org.slf4j.Logger;
@@ -23,11 +24,10 @@ import org.springframework.web.bind.annotation.RestController;
* @author lanyuanxiaoyao
* @version 20250515
*/
+@Slf4j
@RestController
@RequestMapping("knowledge")
public class KnowledgeBaseController {
- private static final Logger logger = LoggerFactory.getLogger(KnowledgeBaseController.class);
-
private final KnowledgeBaseService knowledgeBaseService;
private final EmbeddingService embeddingService;
diff --git a/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/controller/knowledge/SegmentController.java b/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/controller/knowledge/SegmentController.java
index 5d0c960..56bfa51 100644
--- a/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/controller/knowledge/SegmentController.java
+++ b/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/controller/knowledge/SegmentController.java
@@ -3,6 +3,7 @@ package com.lanyuanxiaoyao.service.ai.knowledge.controller.knowledge;
import com.lanyuanxiaoyao.service.ai.core.entity.amis.AmisResponse;
import com.lanyuanxiaoyao.service.ai.knowledge.service.knowledge.SegmentService;
import java.util.concurrent.ExecutionException;
+import lombok.extern.slf4j.Slf4j;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.GetMapping;
@@ -14,11 +15,10 @@ import org.springframework.web.bind.annotation.RestController;
* @author lanyuanxiaoyao
* @version 20250528
*/
+@Slf4j
@RestController
@RequestMapping("knowledge/segment")
public class SegmentController {
- private static final Logger logger = LoggerFactory.getLogger(SegmentController.class);
-
private final SegmentService segmentService;
public SegmentController(SegmentService segmentService) {
diff --git a/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/entity/EmbeddingContext.java b/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/entity/EmbeddingContext.java
index 1f38514..0a5633d 100644
--- a/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/entity/EmbeddingContext.java
+++ b/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/entity/EmbeddingContext.java
@@ -2,6 +2,8 @@ package com.lanyuanxiaoyao.service.ai.knowledge.entity;
import java.util.List;
import java.util.Map;
+import lombok.Builder;
+import lombok.Data;
import org.eclipse.collections.api.factory.Lists;
import org.eclipse.collections.api.factory.Maps;
import org.springframework.ai.document.Document;
@@ -10,6 +12,8 @@ import org.springframework.ai.document.Document;
* @author lanyuanxiaoyao
* @version 20250523
*/
+@Data
+@Builder
public class EmbeddingContext {
private Long vectorSourceId;
private Long groupId;
@@ -17,186 +21,19 @@ public class EmbeddingContext {
private String content;
private String file;
private String fileFormat;
+ @Builder.Default
private List documents = Lists.mutable.empty();
+ @Builder.Default
private Map metadata = Maps.mutable.empty();
- private EmbeddingContext(Builder builder) {
- setVectorSourceId(builder.vectorSourceId);
- setGroupId(builder.groupId);
- setConfig(builder.config);
- setContent(builder.content);
- setFile(builder.file);
- setFileFormat(builder.fileFormat);
- }
-
- public static Builder builder() {
- return new Builder();
- }
-
- public Long getGroupId() {
- return groupId;
- }
-
- public void setGroupId(Long groupId) {
- this.groupId = groupId;
- }
-
- public Long getVectorSourceId() {
- return vectorSourceId;
- }
-
- public void setVectorSourceId(Long vectorSourceId) {
- this.vectorSourceId = vectorSourceId;
- }
-
- public Config getConfig() {
- return config;
- }
-
- public void setConfig(Config config) {
- this.config = config;
- }
-
- public String getContent() {
- return content;
- }
-
- public void setContent(String content) {
- this.content = content;
- }
-
- public String getFile() {
- return file;
- }
-
- public void setFile(String file) {
- this.file = file;
- }
-
- public String getFileFormat() {
- return fileFormat;
- }
-
- public void setFileFormat(String fileFormat) {
- this.fileFormat = fileFormat;
- }
-
- public List getDocuments() {
- return documents;
- }
-
- public void setDocuments(List documents) {
- this.documents = documents;
- }
-
- public Map getMetadata() {
- return metadata;
- }
-
- public void setMetadata(Map metadata) {
- this.metadata = metadata;
- }
-
- @Override
- public String toString() {
- return "EmbeddingContext{" +
- "vectorSourceId=" + vectorSourceId +
- ", groupId=" + groupId +
- ", config=" + config +
- ", content='" + content + '\'' +
- ", file='" + file + '\'' +
- ", fileFormat='" + fileFormat + '\'' +
- ", documents=" + documents +
- ", metadata=" + metadata +
- '}';
- }
-
+ @Data
+ @Builder
public static final class Config {
+ @Builder.Default
private SplitStrategy splitStrategy = SplitStrategy.NORMAL;
- private Config(Builder builder) {setSplitStrategy(builder.splitStrategy);}
-
- public static Builder builder() {
- return new Builder();
- }
-
- public SplitStrategy getSplitStrategy() {
- return splitStrategy;
- }
-
- public void setSplitStrategy(SplitStrategy splitStrategy) {
- this.splitStrategy = splitStrategy;
- }
-
- @Override
- public String toString() {
- return "Config{" +
- "splitStrategy=" + splitStrategy +
- '}';
- }
-
public enum SplitStrategy {
NORMAL, LLM, QA
}
-
- public static final class Builder {
- private SplitStrategy splitStrategy;
-
- private Builder() {}
-
- public Builder splitStrategy(SplitStrategy val) {
- splitStrategy = val;
- return this;
- }
-
- public Config build() {
- return new Config(this);
- }
- }
- }
-
- public static final class Builder {
- private Long vectorSourceId;
- private Long groupId;
- private Config config;
- private String content;
- private String file;
- private String fileFormat;
-
- private Builder() {}
-
- public Builder vectorSourceId(Long val) {
- vectorSourceId = val;
- return this;
- }
-
- public Builder groupId(Long val) {
- groupId = val;
- return this;
- }
-
- public Builder config(Config val) {
- config = val;
- return this;
- }
-
- public Builder content(String val) {
- content = val;
- return this;
- }
-
- public Builder file(String val) {
- file = val;
- return this;
- }
-
- public Builder fileFormat(String val) {
- fileFormat = val;
- return this;
- }
-
- public EmbeddingContext build() {
- return new EmbeddingContext(this);
- }
}
}
diff --git a/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/entity/Group.java b/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/entity/Group.java
index 7465553..50dea91 100644
--- a/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/entity/Group.java
+++ b/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/entity/Group.java
@@ -1,64 +1,16 @@
package com.lanyuanxiaoyao.service.ai.knowledge.entity;
+import lombok.Data;
+
/**
* @author lanyuanxiaoyao
* @version 20250527
*/
+@Data
public class Group {
private String id;
private String name;
private String status;
private Long createdTime;
private Long modifiedTime;
-
- public String getId() {
- return id;
- }
-
- public void setId(String id) {
- this.id = id;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public String getStatus() {
- return status;
- }
-
- public void setStatus(String status) {
- this.status = status;
- }
-
- public Long getCreatedTime() {
- return createdTime;
- }
-
- public void setCreatedTime(Long createdTime) {
- this.createdTime = createdTime;
- }
-
- public Long getModifiedTime() {
- return modifiedTime;
- }
-
- public void setModifiedTime(Long modifiedTime) {
- this.modifiedTime = modifiedTime;
- }
-
- @Override
- public String toString() {
- return "GroupVO{" +
- "id='" + id + '\'' +
- ", name='" + name + '\'' +
- ", status='" + status + '\'' +
- ", createdTime=" + createdTime +
- ", modifiedTime=" + modifiedTime +
- '}';
- }
}
diff --git a/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/entity/Knowledge.java b/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/entity/Knowledge.java
index e63c077..64f8f05 100644
--- a/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/entity/Knowledge.java
+++ b/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/entity/Knowledge.java
@@ -1,9 +1,12 @@
package com.lanyuanxiaoyao.service.ai.knowledge.entity;
+import lombok.Data;
+
/**
* @author lanyuanxiaoyao
* @version 20250522
*/
+@Data
public class Knowledge {
private Long id;
private Long vectorSourceId;
@@ -11,64 +14,4 @@ public class Knowledge {
private String strategy;
private Long createdTime;
private Long modifiedTime;
-
- public Long getId() {
- return id;
- }
-
- public void setId(Long id) {
- this.id = id;
- }
-
- public Long getVectorSourceId() {
- return vectorSourceId;
- }
-
- public void setVectorSourceId(Long vectorSourceId) {
- this.vectorSourceId = vectorSourceId;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public String getStrategy() {
- return strategy;
- }
-
- public void setStrategy(String strategy) {
- this.strategy = strategy;
- }
-
- public Long getCreatedTime() {
- return createdTime;
- }
-
- public void setCreatedTime(Long createdTime) {
- this.createdTime = createdTime;
- }
-
- public Long getModifiedTime() {
- return modifiedTime;
- }
-
- public void setModifiedTime(Long modifiedTime) {
- this.modifiedTime = modifiedTime;
- }
-
- @Override
- public String toString() {
- return "Knowledge{" +
- "id=" + id +
- ", vectorSourceId=" + vectorSourceId +
- ", name='" + name + '\'' +
- ", strategy='" + strategy + '\'' +
- ", createdTime=" + createdTime +
- ", modifiedTime=" + modifiedTime +
- '}';
- }
}
diff --git a/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/entity/vo/DataFileVO.java b/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/entity/vo/DataFileVO.java
index f34c9c2..ae2769a 100644
--- a/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/entity/vo/DataFileVO.java
+++ b/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/entity/vo/DataFileVO.java
@@ -1,9 +1,12 @@
package com.lanyuanxiaoyao.service.ai.knowledge.entity.vo;
+import lombok.Data;
+
/**
* @author lanyuanxiaoyao
* @version 20250527
*/
+@Data
public class DataFileVO {
private String id;
private String filename;
@@ -11,64 +14,4 @@ public class DataFileVO {
private String md5;
private String path;
private String type;
-
- public String getId() {
- return id;
- }
-
- public void setId(String id) {
- this.id = id;
- }
-
- public String getFilename() {
- return filename;
- }
-
- public void setFilename(String filename) {
- this.filename = filename;
- }
-
- public Long getSize() {
- return size;
- }
-
- public void setSize(Long size) {
- this.size = size;
- }
-
- public String getMd5() {
- return md5;
- }
-
- public void setMd5(String md5) {
- this.md5 = md5;
- }
-
- public String getPath() {
- return path;
- }
-
- public void setPath(String path) {
- this.path = path;
- }
-
- public String getType() {
- return type;
- }
-
- public void setType(String type) {
- this.type = type;
- }
-
- @Override
- public String toString() {
- return "DataFile{" +
- "id='" + id + '\'' +
- ", filename='" + filename + '\'' +
- ", size=" + size +
- ", md5='" + md5 + '\'' +
- ", path='" + path + '\'' +
- ", type='" + type + '\'' +
- '}';
- }
}
diff --git a/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/entity/vo/KnowledgeVO.java b/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/entity/vo/KnowledgeVO.java
index 5582878..108b6d2 100644
--- a/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/entity/vo/KnowledgeVO.java
+++ b/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/entity/vo/KnowledgeVO.java
@@ -1,9 +1,12 @@
package com.lanyuanxiaoyao.service.ai.knowledge.entity.vo;
+import lombok.Data;
+
/**
* @author lanyuanxiaoyao
* @version 20250516
*/
+@Data
public class KnowledgeVO {
private String id;
private String vectorSourceId;
@@ -15,100 +18,4 @@ public class KnowledgeVO {
private String status;
private Long createdTime;
private Long modifiedTime;
-
- public String getId() {
- return id;
- }
-
- public void setId(String id) {
- this.id = id;
- }
-
- public String getVectorSourceId() {
- return vectorSourceId;
- }
-
- public void setVectorSourceId(String vectorSourceId) {
- this.vectorSourceId = vectorSourceId;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public String getStrategy() {
- return strategy;
- }
-
- public void setStrategy(String strategy) {
- this.strategy = strategy;
- }
-
- public Long getSize() {
- return size;
- }
-
- public void setSize(Long size) {
- this.size = size;
- }
-
- public Long getPoints() {
- return points;
- }
-
- public void setPoints(Long points) {
- this.points = points;
- }
-
- public Long getSegments() {
- return segments;
- }
-
- public void setSegments(Long segments) {
- this.segments = segments;
- }
-
- public String getStatus() {
- return status;
- }
-
- public void setStatus(String status) {
- this.status = status;
- }
-
- public Long getCreatedTime() {
- return createdTime;
- }
-
- public void setCreatedTime(Long createdTime) {
- this.createdTime = createdTime;
- }
-
- public Long getModifiedTime() {
- return modifiedTime;
- }
-
- public void setModifiedTime(Long modifiedTime) {
- this.modifiedTime = modifiedTime;
- }
-
- @Override
- public String toString() {
- return "KnowledgeVO{" +
- "id='" + id + '\'' +
- ", vectorSourceId='" + vectorSourceId + '\'' +
- ", name='" + name + '\'' +
- ", strategy='" + strategy + '\'' +
- ", size=" + size +
- ", points=" + points +
- ", segments=" + segments +
- ", status='" + status + '\'' +
- ", createdTime=" + createdTime +
- ", modifiedTime=" + modifiedTime +
- '}';
- }
}
diff --git a/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/entity/vo/SegmentVO.java b/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/entity/vo/SegmentVO.java
index 85d08c6..2fa0d82 100644
--- a/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/entity/vo/SegmentVO.java
+++ b/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/entity/vo/SegmentVO.java
@@ -1,34 +1,13 @@
package com.lanyuanxiaoyao.service.ai.knowledge.entity.vo;
+import lombok.Data;
+
/**
* @author lanyuanxiaoyao
* @version 20250516
*/
+@Data
public class SegmentVO {
private String id;
private String text;
-
- public String getId() {
- return id;
- }
-
- public void setId(String id) {
- this.id = id;
- }
-
- public String getText() {
- return text;
- }
-
- public void setText(String text) {
- this.text = text;
- }
-
- @Override
- public String toString() {
- return "PointVO{" +
- "id='" + id + '\'' +
- ", text='" + text + '\'' +
- '}';
- }
}
diff --git a/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/service/DataFileService.java b/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/service/DataFileService.java
index 31734d3..cdc3f00 100644
--- a/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/service/DataFileService.java
+++ b/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/service/DataFileService.java
@@ -16,7 +16,6 @@ import org.springframework.transaction.annotation.Transactional;
*/
@Service
public class DataFileService {
- private static final Logger log = LoggerFactory.getLogger(DataFileService.class);
private static final String DATA_FILE_TABLE_NAME = Constants.DATABASE_NAME + ".service_ai_file";
private final JdbcTemplate template;
diff --git a/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/service/EmbeddingService.java b/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/service/EmbeddingService.java
index d2c46ac..49b75da 100644
--- a/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/service/EmbeddingService.java
+++ b/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/service/EmbeddingService.java
@@ -28,8 +28,6 @@ import org.springframework.stereotype.Service;
*/
@Service
public class EmbeddingService {
- private static final Logger logger = LoggerFactory.getLogger(EmbeddingService.class);
-
private final DataFileService dataFileService;
private final FlowExecutor executor;
private final KnowledgeBaseService knowledgeBaseService;
diff --git a/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/service/knowledge/GroupService.java b/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/service/knowledge/GroupService.java
index 04efa73..54af2d5 100644
--- a/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/service/knowledge/GroupService.java
+++ b/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/service/knowledge/GroupService.java
@@ -28,7 +28,6 @@ import org.springframework.transaction.annotation.Transactional;
@Service
public class GroupService {
public static final String GROUP_TABLE_NAME = Constants.DATABASE_NAME + ".service_ai_group";
- private static final Logger logger = LoggerFactory.getLogger(GroupService.class);
private static final RowMapper groupMapper = (rs, row) -> {
Group vo = new Group();
vo.setId(String.valueOf(rs.getLong(1)));
diff --git a/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/service/knowledge/KnowledgeBaseService.java b/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/service/knowledge/KnowledgeBaseService.java
index 84fab50..23ea5dc 100644
--- a/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/service/knowledge/KnowledgeBaseService.java
+++ b/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/service/knowledge/KnowledgeBaseService.java
@@ -34,7 +34,6 @@ import org.springframework.transaction.annotation.Transactional;
@Service
public class KnowledgeBaseService {
public static final String KNOWLEDGE_TABLE_NAME = Constants.DATABASE_NAME + ".service_ai_knowledge";
- private static final Logger logger = LoggerFactory.getLogger(KnowledgeBaseService.class);
private static final RowMapper knowledgeMapper = (rs, row) -> {
Knowledge knowledge = new Knowledge();
knowledge.setId(rs.getLong(1));
diff --git a/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/service/knowledge/SegmentService.java b/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/service/knowledge/SegmentService.java
index 3ba33ca..11e3cc9 100644
--- a/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/service/knowledge/SegmentService.java
+++ b/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/service/knowledge/SegmentService.java
@@ -21,8 +21,6 @@ import org.springframework.stereotype.Service;
*/
@Service
public class SegmentService {
- private static final Logger logger = LoggerFactory.getLogger(SegmentService.class);
-
private final KnowledgeBaseService knowledgeBaseService;
private final QdrantClient client;
diff --git a/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/service/node/EmbeddingNodes.java b/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/service/node/EmbeddingNodes.java
index bb04151..35be9cf 100644
--- a/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/service/node/EmbeddingNodes.java
+++ b/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/service/node/EmbeddingNodes.java
@@ -31,6 +31,7 @@ import org.springframework.ai.reader.tika.TikaDocumentReader;
import org.springframework.ai.transformer.splitter.TokenTextSplitter;
import org.springframework.ai.vectorstore.VectorStore;
import org.springframework.ai.vectorstore.qdrant.QdrantVectorStore;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.core.io.PathResource;
/**
@@ -45,7 +46,7 @@ public class EmbeddingNodes {
private final QdrantClient qdrantClient;
private final EmbeddingModel embeddingModel;
- public EmbeddingNodes(ChatClient.Builder builder, VectorStore vectorStore, EmbeddingModel embeddingModel) {
+ public EmbeddingNodes(@Qualifier("chat") ChatClient.Builder builder, VectorStore vectorStore, EmbeddingModel embeddingModel) {
this.chatClient = builder.build();
this.qdrantClient = (QdrantClient) vectorStore.getNativeClient().orElseThrow();
this.embeddingModel = embeddingModel;
diff --git a/service-ai/service-ai-knowledge/src/main/resources/application.yml b/service-ai/service-ai-knowledge/src/main/resources/application.yml
index 5b0cdc5..f4194bc 100644
--- a/service-ai/service-ai-knowledge/src/main/resources/application.yml
+++ b/service-ai/service-ai-knowledge/src/main/resources/application.yml
@@ -4,27 +4,32 @@ spring:
profiles:
include: random-port,common,discovery,metrics,forest
ai:
- openai:
- base-url: http://132.121.206.65:10086
- api-key: ENC(K+Hff9QGC+fcyi510VIDd9CaeK/IN5WBJ9rlkUsHEdDgIidW+stHHJlsK0lLPUXXREha+ToQZqqDXJrqSE+GUKCXklFhelD8bRHFXBIeP/ZzT2cxhzgKUXgjw3S0Qw2R)
- chat:
- options:
- model: 'Qwen3/qwen3-1.7b'
- embedding:
- options:
- model: 'Qwen3/qwen3-embedding-4b'
vectorstore:
qdrant:
host: 132.121.206.65
port: 29463
api-key: ENC(0/0UkIKeAvyV17yNqSU3v04wmm8CdWKe4BYSSJa2FuBtK12TcZRJPdwk+ZpYnpISv+KmVTUrrmFBzAYrDR3ysA==)
+ llm:
+ base-url: http://132.121.206.65:10086
+ api-key: ENC(K+Hff9QGC+fcyi510VIDd9CaeK/IN5WBJ9rlkUsHEdDgIidW+stHHJlsK0lLPUXXREha+ToQZqqDXJrqSE+GUKCXklFhelD8bRHFXBIeP/ZzT2cxhzgKUXgjw3S0Qw2R)
+ chat:
+ model: 'Qwen3/qwen3-1.7b'
+ visual:
+ model: 'Qwen2.5/qwen2.5-vl-7b'
+ embedding:
+ model: 'Qwen3/qwen3-embedding-4b'
+ reranker:
+ model: 'Bge-reranker-v2'
+ autoconfigure:
+ exclude: |
+ org.springframework.ai.model.openai.autoconfigure.OpenAiChatAutoConfiguration,
+ org.springframework.ai.model.openai.autoconfigure.OpenAiAudioSpeechAutoConfiguration,
+ org.springframework.ai.model.openai.autoconfigure.OpenAiAudioTranscriptionAutoConfiguration,
+ org.springframework.ai.model.openai.autoconfigure.OpenAiImageAutoConfiguration,
+ org.springframework.ai.model.openai.autoconfigure.OpenAiEmbeddingAutoConfiguration,
+ org.springframework.ai.model.openai.autoconfigure.OpenAiModerationAutoConfiguration,
+ org.springframework.ai.model.deepseek.autoconfigure.DeepSeekChatAutoConfiguration
liteflow:
rule-source: config/flow.xml
print-banner: false
check-node-exists: false
-solon:
- base-url: http://132.121.206.65:10086
- api-key: ENC(K+Hff9QGC+fcyi510VIDd9CaeK/IN5WBJ9rlkUsHEdDgIidW+stHHJlsK0lLPUXXREha+ToQZqqDXJrqSE+GUKCXklFhelD8bRHFXBIeP/ZzT2cxhzgKUXgjw3S0Qw2R)
- rerank:
- model: 'Bge-reranker-v2-vllm'
- endpoint: '/v1/rerank'
\ No newline at end of file
diff --git a/service-cli/service-cli-runner/src/main/resources/application.yml b/service-cli/service-cli-runner/src/main/resources/application.yml
index d4410dd..56dbf11 100644
--- a/service-cli/service-cli-runner/src/main/resources/application.yml
+++ b/service-cli/service-cli-runner/src/main/resources/application.yml
@@ -176,8 +176,8 @@ deploy:
jdk: "jdk17"
replicas: 1
arguments:
- "[knowledge.download-prefix]": 'http://132.126.207.130:35690/hudi_services/ai_knowledge'
- "[knowledge.upload-path]": ${deploy.runtime.data-path}/knowledge
+ "[file-store.download-prefix]": 'http://132.126.207.130:35690/hudi_services/ai_knowledge'
+ "[file-store.upload-path]": ${deploy.runtime.data-path}/knowledge
"[spring.datasource.url]": ${deploy.runtime.database.config.url}
"[spring.datasource.username]": ${deploy.runtime.database.config.username}
"[spring.datasource.password]": ${deploy.runtime.database.config.password}