From 7deee30c14a4274f8e298f36df8026d16c41d3f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=98=BF=E6=98=9F=E4=B8=8D=E6=98=AF=E7=A8=8B=E5=BA=8F?= =?UTF-8?q?=E5=91=98?= <1031900093@qq.com> Date: Wed, 22 Apr 2026 10:23:23 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=A4=9A=E4=BD=99?= =?UTF-8?q?=E7=9A=84=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/BusinessChatController.java | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/chatagent/controller/BusinessChatController.java b/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/chatagent/controller/BusinessChatController.java index 88e7141..dd57f71 100644 --- a/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/chatagent/controller/BusinessChatController.java +++ b/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/chatagent/controller/BusinessChatController.java @@ -2,10 +2,10 @@ package org.javaup.ai.chatagent.controller; import jakarta.validation.Valid; import lombok.AllArgsConstructor; -import org.javaup.ai.chatagent.dto.ConversationIdentityDto; +import org.javaup.ai.chatagent.dto.ChatRequestDto; import org.javaup.ai.chatagent.dto.ConversationExchangeDetailQueryDto; +import org.javaup.ai.chatagent.dto.ConversationIdentityDto; import org.javaup.ai.chatagent.dto.ConversationSessionListQueryDto; -import org.javaup.ai.chatagent.dto.ChatRequestDto; import org.javaup.ai.chatagent.dto.RetrievalObserveQueryDto; import org.javaup.ai.chatagent.model.ChannelExecutionView; import org.javaup.ai.chatagent.model.ConversationExchangeDetailView; @@ -25,6 +25,8 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import reactor.core.publisher.Flux; +import java.util.List; + /** * @program: 企业级别深度设计 AI Agent。添加 阿星不是程序员 微信,添加时备注 super 来获取项目的完整资料 * @description: 控制层 @@ -43,7 +45,7 @@ public class BusinessChatController { } @PostMapping("/document/options") - public ApiResponse> documentOptions() { + public ApiResponse> documentOptions() { return ApiResponse.ok(businessChatService.listKnowledgeDocumentOptions()); } @@ -78,17 +80,17 @@ public class BusinessChatController { } @PostMapping("/exchange/retrieval/results") - public ApiResponse> retrievalResults(@Valid @RequestBody RetrievalObserveQueryDto dto) { + public ApiResponse> retrievalResults(@Valid @RequestBody RetrievalObserveQueryDto dto) { return ApiResponse.ok(businessChatService.getRetrievalResults(dto.getConversationId(), Long.parseLong(dto.getExchangeId()))); } @PostMapping("/exchange/channel/executions") - public ApiResponse> channelExecutions(@Valid @RequestBody RetrievalObserveQueryDto dto) { + public ApiResponse> channelExecutions(@Valid @RequestBody RetrievalObserveQueryDto dto) { return ApiResponse.ok(businessChatService.getChannelExecutions(dto.getConversationId(), Long.parseLong(dto.getExchangeId()))); } @PostMapping("/stage/benchmarks") - public ApiResponse> stageBenchmarks() { + public ApiResponse> stageBenchmarks() { return ApiResponse.ok(businessChatService.getStageBenchmarks()); } } -- Gitee From 4c73c7c9e4b1a6ec7a213c8477fc36ee35c23b21 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=98=BF=E6=98=9F=E4=B8=8D=E6=98=AF=E7=A8=8B=E5=BA=8F?= =?UTF-8?q?=E5=91=98?= <1031900093@qq.com> Date: Wed, 22 Apr 2026 11:27:03 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=BC=82=E5=B8=B8?= =?UTF-8?q?=E6=8A=9B=E5=87=BA=E7=9A=84=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/javaup/ai/chatagent/service/BusinessChatService.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/chatagent/service/BusinessChatService.java b/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/chatagent/service/BusinessChatService.java index da41998..93a7396 100644 --- a/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/chatagent/service/BusinessChatService.java +++ b/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/chatagent/service/BusinessChatService.java @@ -36,6 +36,7 @@ import org.javaup.ai.chatagent.vo.ConversationSessionListVo; import org.javaup.ai.chatagent.vo.ConversationStopVo; import org.javaup.enums.ChatTurnStatus; import org.javaup.enums.ChatQueryMode; +import org.javaup.exception.SuperAgentFrameException; import org.javaup.lease.RedisLeaseManager; import org.springframework.ai.chat.messages.AbstractMessage; import org.springframework.ai.chat.messages.MessageType; @@ -1222,7 +1223,7 @@ public class BusinessChatService { private String normalizeQuestion(String question) { if (StrUtil.isBlank(question)) { - throw new IllegalArgumentException("question 不能为空"); + throw new SuperAgentFrameException("question 不能为空"); } return question.trim(); -- Gitee From 5ef1bfe307dc573b35c27366bb1e7949850f6966 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=98=BF=E6=98=9F=E4=B8=8D=E6=98=AF=E7=A8=8B=E5=BA=8F?= =?UTF-8?q?=E5=91=98?= <1031900093@qq.com> Date: Wed, 22 Apr 2026 11:33:31 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E6=B3=A8=E9=87=8A=E8=A7=84=E8=8C=83?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/javaup/enums/ChatQueryMode.java | 26 +++++++++++-------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/super-agent-common/super-agent-common-frame/src/main/java/org/javaup/enums/ChatQueryMode.java b/super-agent-common/super-agent-common-frame/src/main/java/org/javaup/enums/ChatQueryMode.java index 9cd0d52..122fd0c 100644 --- a/super-agent-common/super-agent-common-frame/src/main/java/org/javaup/enums/ChatQueryMode.java +++ b/super-agent-common/super-agent-common-frame/src/main/java/org/javaup/enums/ChatQueryMode.java @@ -1,17 +1,29 @@ package org.javaup.enums; +import lombok.Getter; + /** * @program: 企业级别深度设计 AI Agent。添加 阿星不是程序员 微信,添加时备注 super 来获取项目的完整资料 * @description: 枚举定义 * @author: 阿星不是程序员 **/ +@Getter public enum ChatQueryMode { + /** + * 当前文档问答 + * */ DOCUMENT(1, "当前文档问答"), - + + /** + * 自动知识问答 + * */ AUTO_DOCUMENT(3, "自动知识问答"), - + + /** + * 开放式提问 + * */ OPEN_CHAT(2, "开放式提问"); private final int code; @@ -21,15 +33,7 @@ public enum ChatQueryMode { this.code = code; this.label = label; } - - public int getCode() { - return code; - } - - public String getLabel() { - return label; - } - + public static ChatQueryMode fromCode(Integer code) { if (code == null) { throw new IllegalArgumentException("提问模式 code 不能为空"); -- Gitee From edd1508b57a7c7f40f7b552e9bb08b9e7f81d9cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=98=BF=E6=98=9F=E4=B8=8D=E6=98=AF=E7=A8=8B=E5=BA=8F?= =?UTF-8?q?=E5=91=98?= <1031900093@qq.com> Date: Thu, 23 Apr 2026 16:35:34 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E7=AE=80=E5=8C=96=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../support/DocumentStructureNodeExtractor.java | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/manage/support/DocumentStructureNodeExtractor.java b/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/manage/support/DocumentStructureNodeExtractor.java index f0a5c93..d6a8b58 100644 --- a/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/manage/support/DocumentStructureNodeExtractor.java +++ b/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/manage/support/DocumentStructureNodeExtractor.java @@ -1,6 +1,8 @@ package org.javaup.ai.manage.support; import cn.hutool.core.util.StrUtil; +import lombok.AllArgsConstructor; +import org.javaup.enums.DocumentStructureNodeTypeEnum; import org.springframework.stereotype.Component; import java.util.List; @@ -10,7 +12,7 @@ import java.util.List; * @description: 支撑组件 * @author: 阿星不是程序员 **/ - +@AllArgsConstructor @Component public class DocumentStructureNodeExtractor { @@ -19,23 +21,13 @@ public class DocumentStructureNodeExtractor { private final DocumentStructureHierarchyResolver hierarchyResolver; private final DocumentStructureTreeValidator treeValidator; - public DocumentStructureNodeExtractor(DocumentStructureSignalExtractor signalExtractor, - DocumentStructureAmbiguityResolver ambiguityResolver, - DocumentStructureHierarchyResolver hierarchyResolver, - DocumentStructureTreeValidator treeValidator) { - this.signalExtractor = signalExtractor; - this.ambiguityResolver = ambiguityResolver; - this.hierarchyResolver = hierarchyResolver; - this.treeValidator = treeValidator; - } - public List extract(String documentTitle, String parsedText) { String normalizedTitle = StrUtil.blankToDefault(documentTitle, "文档").trim(); String normalizedText = StrUtil.blankToDefault(parsedText, "").trim(); if (normalizedText.isBlank()) { return List.of(new DocumentStructureNodeCandidate( 1, - org.javaup.enums.DocumentStructureNodeTypeEnum.DOCUMENT.getCode(), + DocumentStructureNodeTypeEnum.DOCUMENT.getCode(), null, 0, 0, -- Gitee From aa7ce56edd0baf2b62cab85c5468a3b22b0cceda Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=98=BF=E6=98=9F=E4=B8=8D=E6=98=AF=E7=A8=8B=E5=BA=8F?= =?UTF-8?q?=E5=91=98?= <1031900093@qq.com> Date: Fri, 24 Apr 2026 17:53:30 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E7=AE=80=E5=8C=96=E6=9E=84=E9=80=A0?= =?UTF-8?q?=E5=99=A8=E6=B3=A8=E5=85=A5=E7=9A=84=E6=A0=B7=E6=9D=BF=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../super-agent-business-chat/lombok.config | 2 + ...ompositeDocumentStructureGraphService.java | 8 +-- .../impl/DefaultDocumentVectorGateway.java | 17 ++----- .../impl/DocumentAsyncProcessServiceImpl.java | 51 +++---------------- .../impl/DocumentKnowledgeServiceImpl.java | 23 +++------ .../impl/DocumentManageServiceImpl.java | 48 ++--------------- .../impl/DocumentProfileServiceImpl.java | 17 ++----- .../impl/DocumentStrategyServiceImpl.java | 25 +++------ .../DocumentStructureNodeServiceImpl.java | 11 ++-- .../impl/DocumentTaskLogServiceImpl.java | 14 ++--- ...csearchDocumentNavigationIndexService.java | 10 ++-- ...asticsearchKnowledgeRouteIndexService.java | 31 +++-------- .../impl/KnowledgeManageServiceImpl.java | 21 ++------ .../impl/KnowledgeRouteServiceImpl.java | 25 ++------- .../impl/MinioDocumentStorageService.java | 8 +-- .../MysqlDocumentStructureGraphService.java | 6 +-- ...cumentStructureGraphProjectionService.java | 17 ++----- .../Neo4jDocumentStructureGraphService.java | 7 +-- .../impl/TikaDocumentParserService.java | 16 +++--- 19 files changed, 77 insertions(+), 280 deletions(-) create mode 100644 super-agent-business/super-agent-business-chat/lombok.config diff --git a/super-agent-business/super-agent-business-chat/lombok.config b/super-agent-business/super-agent-business-chat/lombok.config new file mode 100644 index 0000000..2a2f058 --- /dev/null +++ b/super-agent-business/super-agent-business-chat/lombok.config @@ -0,0 +1,2 @@ +lombok.copyableAnnotations += org.springframework.beans.factory.annotation.Qualifier +lombok.copyableAnnotations += org.springframework.beans.factory.annotation.Value diff --git a/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/manage/service/impl/CompositeDocumentStructureGraphService.java b/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/manage/service/impl/CompositeDocumentStructureGraphService.java index 15aa733..183fec0 100644 --- a/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/manage/service/impl/CompositeDocumentStructureGraphService.java +++ b/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/manage/service/impl/CompositeDocumentStructureGraphService.java @@ -1,5 +1,6 @@ package org.javaup.ai.manage.service.impl; +import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.javaup.ai.manage.model.graph.GraphItem; import org.javaup.ai.manage.model.graph.GraphSection; @@ -17,6 +18,7 @@ import java.util.List; **/ @Slf4j +@AllArgsConstructor @Primary @Service public class CompositeDocumentStructureGraphService implements DocumentStructureGraphService { @@ -24,12 +26,6 @@ public class CompositeDocumentStructureGraphService implements DocumentStructure private final MysqlDocumentStructureGraphService mysqlGraphService; private final ObjectProvider neo4jGraphServiceProvider; - public CompositeDocumentStructureGraphService(MysqlDocumentStructureGraphService mysqlGraphService, - ObjectProvider neo4jGraphServiceProvider) { - this.mysqlGraphService = mysqlGraphService; - this.neo4jGraphServiceProvider = neo4jGraphServiceProvider; - } - @Override public boolean isGraphAvailable(Long documentId) { return delegate(documentId).isGraphAvailable(documentId); diff --git a/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/manage/service/impl/DefaultDocumentVectorGateway.java b/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/manage/service/impl/DefaultDocumentVectorGateway.java index b19e2d5..9cee444 100644 --- a/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/manage/service/impl/DefaultDocumentVectorGateway.java +++ b/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/manage/service/impl/DefaultDocumentVectorGateway.java @@ -1,5 +1,6 @@ package org.javaup.ai.manage.service.impl; +import lombok.AllArgsConstructor; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import com.fasterxml.jackson.core.JsonProcessingException; @@ -35,6 +36,7 @@ import java.util.Objects; **/ @Slf4j +@AllArgsConstructor @Service public class DefaultDocumentVectorGateway implements DocumentVectorGateway { @@ -70,24 +72,15 @@ public class DefaultDocumentVectorGateway implements DocumentVectorGateway { private static final String DELETE_BY_DOCUMENT_SQL_TEMPLATE = "DELETE FROM %s WHERE document_id = ?"; + @Qualifier("documentManagePgVectorJdbcTemplate") private final JdbcTemplate pgVectorJdbcTemplate; private final ObjectProvider embeddingModelProvider; private final ObjectMapper objectMapper; - private final String embeddingModelName; - - public DefaultDocumentVectorGateway( - @Qualifier("documentManagePgVectorJdbcTemplate") JdbcTemplate pgVectorJdbcTemplate, - ObjectProvider embeddingModelProvider, - ObjectMapper objectMapper, - @Value("${spring.ai.openai.embedding.options.model:}") String embeddingModelName) { - this.pgVectorJdbcTemplate = pgVectorJdbcTemplate; - this.embeddingModelProvider = embeddingModelProvider; - this.objectMapper = objectMapper; - this.embeddingModelName = embeddingModelName; - } + @Value("${spring.ai.openai.embedding.options.model:}") + private String embeddingModelName; @Override public void vectorize(List chunkList) { diff --git a/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/manage/service/impl/DocumentAsyncProcessServiceImpl.java b/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/manage/service/impl/DocumentAsyncProcessServiceImpl.java index aedae28..267ec37 100644 --- a/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/manage/service/impl/DocumentAsyncProcessServiceImpl.java +++ b/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/manage/service/impl/DocumentAsyncProcessServiceImpl.java @@ -1,12 +1,12 @@ package org.javaup.ai.manage.service.impl; +import cn.hutool.core.util.StrUtil; import com.baidu.fsg.uid.UidGenerator; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; -import cn.hutool.core.util.StrUtil; import jakarta.annotation.Resource; +import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.javaup.ai.manage.config.DocumentManageProperties; import org.javaup.ai.manage.data.SuperAgentDocument; import org.javaup.ai.manage.data.SuperAgentDocumentChunk; import org.javaup.ai.manage.data.SuperAgentDocumentParentBlock; @@ -21,21 +21,21 @@ import org.javaup.ai.manage.mapper.SuperAgentDocumentStrategyPlanMapper; import org.javaup.ai.manage.mapper.SuperAgentDocumentStrategyStepMapper; import org.javaup.ai.manage.mapper.SuperAgentDocumentTaskMapper; import org.javaup.ai.manage.service.DocumentAsyncProcessService; +import org.javaup.ai.manage.service.DocumentNavigationIndexService; import org.javaup.ai.manage.service.DocumentParserService; import org.javaup.ai.manage.service.DocumentProfileService; import org.javaup.ai.manage.service.DocumentStorageService; -import org.javaup.ai.manage.service.DocumentNavigationIndexService; +import org.javaup.ai.manage.service.DocumentStrategyService; import org.javaup.ai.manage.service.DocumentStructureGraphProjectionService; import org.javaup.ai.manage.service.DocumentStructureNodeService; -import org.javaup.ai.manage.service.DocumentStrategyService; import org.javaup.ai.manage.service.DocumentTaskLogService; import org.javaup.ai.manage.service.DocumentVectorGateway; import org.javaup.ai.manage.service.keyword.DocumentKeywordSearchGateway; import org.javaup.ai.manage.support.ChunkCandidate; import org.javaup.ai.manage.support.DocumentAnalysisResult; -import org.javaup.ai.manage.support.ParentBlockCandidate; import org.javaup.ai.manage.support.DocumentStrategyPlanDraft; import org.javaup.ai.manage.support.DocumentStrategyStepDraft; +import org.javaup.ai.manage.support.ParentBlockCandidate; import org.javaup.enums.BusinessStatus; import org.javaup.enums.DocumentChunkSourceTypeEnum; import org.javaup.enums.DocumentFileTypeEnum; @@ -56,8 +56,8 @@ import org.javaup.enums.DocumentVectorStoreTypeEnum; import org.springframework.beans.factory.ObjectProvider; import org.springframework.stereotype.Service; -import java.util.Date; import java.util.Comparator; +import java.util.Date; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; @@ -69,6 +69,7 @@ import java.util.Map; **/ @Slf4j +@AllArgsConstructor @Service public class DocumentAsyncProcessServiceImpl implements DocumentAsyncProcessService { @@ -102,49 +103,11 @@ public class DocumentAsyncProcessServiceImpl implements DocumentAsyncProcessServ private final ObjectProvider graphProjectionServiceProvider; - private final DocumentManageProperties properties; - private final DocumentProfileService documentProfileService; @Resource private UidGenerator uidGenerator; - public DocumentAsyncProcessServiceImpl(SuperAgentDocumentMapper documentMapper, - SuperAgentDocumentStrategyPlanMapper planMapper, - SuperAgentDocumentStrategyStepMapper stepMapper, - SuperAgentDocumentTaskMapper taskMapper, - SuperAgentDocumentParentBlockMapper parentBlockMapper, - SuperAgentDocumentChunkMapper chunkMapper, - DocumentStorageService storageService, - DocumentParserService parserService, - DocumentStrategyService strategyService, - DocumentStructureNodeService structureNodeService, - DocumentTaskLogService taskLogService, - DocumentVectorGateway vectorGateway, - ObjectProvider keywordSearchGatewayProvider, - ObjectProvider navigationIndexServiceProvider, - ObjectProvider graphProjectionServiceProvider, - DocumentManageProperties properties, - DocumentProfileService documentProfileService) { - this.documentMapper = documentMapper; - this.planMapper = planMapper; - this.stepMapper = stepMapper; - this.taskMapper = taskMapper; - this.parentBlockMapper = parentBlockMapper; - this.chunkMapper = chunkMapper; - this.storageService = storageService; - this.parserService = parserService; - this.strategyService = strategyService; - this.structureNodeService = structureNodeService; - this.taskLogService = taskLogService; - this.vectorGateway = vectorGateway; - this.keywordSearchGatewayProvider = keywordSearchGatewayProvider; - this.navigationIndexServiceProvider = navigationIndexServiceProvider; - this.graphProjectionServiceProvider = graphProjectionServiceProvider; - this.properties = properties; - this.documentProfileService = documentProfileService; - } - @Override public void handleParseRoute(Long documentId, Long taskId) { diff --git a/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/manage/service/impl/DocumentKnowledgeServiceImpl.java b/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/manage/service/impl/DocumentKnowledgeServiceImpl.java index 637a396..7a96ded 100644 --- a/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/manage/service/impl/DocumentKnowledgeServiceImpl.java +++ b/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/manage/service/impl/DocumentKnowledgeServiceImpl.java @@ -3,10 +3,10 @@ package org.javaup.ai.manage.service.impl; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.javaup.ai.manage.config.DocumentManageProperties; import org.javaup.ai.manage.data.SuperAgentDocument; -import org.javaup.ai.manage.data.SuperAgentDocumentChunk; import org.javaup.ai.manage.data.SuperAgentDocumentParentBlock; import org.javaup.ai.manage.mapper.SuperAgentDocumentMapper; import org.javaup.ai.manage.mapper.SuperAgentDocumentParentBlockMapper; @@ -45,6 +45,7 @@ import java.util.stream.Collectors; **/ @Slf4j +@AllArgsConstructor @Service public class DocumentKnowledgeServiceImpl implements DocumentKnowledgeService { @@ -102,26 +103,18 @@ public class DocumentKnowledgeServiceImpl implements DocumentKnowledgeService { private static final int MAX_KEYWORD_TERMS = 8; private final SuperAgentDocumentMapper documentMapper; + private final SuperAgentDocumentParentBlockMapper parentBlockMapper; + + @Qualifier("documentManagePgVectorJdbcTemplate") private final JdbcTemplate pgVectorJdbcTemplate; + private final ObjectProvider embeddingModelProvider; + private final ObjectProvider keywordSearchGatewayProvider; + private final DocumentManageProperties properties; - public DocumentKnowledgeServiceImpl(SuperAgentDocumentMapper documentMapper, - SuperAgentDocumentParentBlockMapper parentBlockMapper, - @Qualifier("documentManagePgVectorJdbcTemplate") JdbcTemplate pgVectorJdbcTemplate, - ObjectProvider embeddingModelProvider, - ObjectProvider keywordSearchGatewayProvider, - DocumentManageProperties properties) { - this.documentMapper = documentMapper; - this.parentBlockMapper = parentBlockMapper; - this.pgVectorJdbcTemplate = pgVectorJdbcTemplate; - this.embeddingModelProvider = embeddingModelProvider; - this.keywordSearchGatewayProvider = keywordSearchGatewayProvider; - this.properties = properties; - } - @Override public List listRetrievableDocuments() { diff --git a/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/manage/service/impl/DocumentManageServiceImpl.java b/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/manage/service/impl/DocumentManageServiceImpl.java index c3b783e..2fe3820 100644 --- a/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/manage/service/impl/DocumentManageServiceImpl.java +++ b/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/manage/service/impl/DocumentManageServiceImpl.java @@ -1,11 +1,11 @@ package org.javaup.ai.manage.service.impl; +import lombok.AllArgsConstructor; import com.baidu.fsg.uid.UidGenerator; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import cn.hutool.core.util.StrUtil; -import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; import org.javaup.ai.manage.data.SuperAgentDocument; import org.javaup.ai.manage.data.SuperAgentDocumentChunk; @@ -114,6 +114,7 @@ import java.util.stream.Collectors; **/ @Slf4j +@AllArgsConstructor @Service public class DocumentManageServiceImpl implements DocumentManageService { @@ -154,49 +155,8 @@ public class DocumentManageServiceImpl implements DocumentManageService { private final ObjectProvider knowledgeRouteIndexServiceProvider; private final DocumentKafkaProducer kafkaProducer; - - @Resource - private UidGenerator uidGenerator; - - public DocumentManageServiceImpl(SuperAgentDocumentMapper documentMapper, - SuperAgentDocumentStrategyPlanMapper planMapper, - SuperAgentDocumentStrategyStepMapper stepMapper, - SuperAgentDocumentTaskMapper taskMapper, - SuperAgentDocumentTaskLogMapper taskLogMapper, - SuperAgentDocumentParentBlockMapper parentBlockMapper, - SuperAgentDocumentProfileMapper documentProfileMapper, - SuperAgentTopicDocumentRelationMapper topicDocumentRelationMapper, - SuperAgentDocumentChunkMapper chunkMapper, - DocumentStorageService storageService, - DocumentStructureNodeService structureNodeService, - DocumentStrategyService strategyService, - DocumentTaskLogService taskLogService, - DocumentVectorGateway vectorGateway, - ObjectProvider keywordSearchGatewayProvider, - ObjectProvider navigationIndexServiceProvider, - ObjectProvider graphProjectionServiceProvider, - ObjectProvider knowledgeRouteIndexServiceProvider, - DocumentKafkaProducer kafkaProducer) { - this.documentMapper = documentMapper; - this.planMapper = planMapper; - this.stepMapper = stepMapper; - this.taskMapper = taskMapper; - this.taskLogMapper = taskLogMapper; - this.parentBlockMapper = parentBlockMapper; - this.documentProfileMapper = documentProfileMapper; - this.topicDocumentRelationMapper = topicDocumentRelationMapper; - this.chunkMapper = chunkMapper; - this.storageService = storageService; - this.structureNodeService = structureNodeService; - this.strategyService = strategyService; - this.taskLogService = taskLogService; - this.vectorGateway = vectorGateway; - this.keywordSearchGatewayProvider = keywordSearchGatewayProvider; - this.navigationIndexServiceProvider = navigationIndexServiceProvider; - this.graphProjectionServiceProvider = graphProjectionServiceProvider; - this.knowledgeRouteIndexServiceProvider = knowledgeRouteIndexServiceProvider; - this.kafkaProducer = kafkaProducer; - } + + private final UidGenerator uidGenerator; @Override @Transactional(rollbackFor = Exception.class) diff --git a/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/manage/service/impl/DocumentProfileServiceImpl.java b/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/manage/service/impl/DocumentProfileServiceImpl.java index 6b88bf9..50bb67c 100644 --- a/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/manage/service/impl/DocumentProfileServiceImpl.java +++ b/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/manage/service/impl/DocumentProfileServiceImpl.java @@ -1,10 +1,10 @@ package org.javaup.ai.manage.service.impl; +import lombok.AllArgsConstructor; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import com.baidu.fsg.uid.UidGenerator; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; import org.javaup.ai.manage.data.SuperAgentDocument; import org.javaup.ai.manage.data.SuperAgentDocumentProfile; @@ -34,6 +34,7 @@ import java.util.stream.Collectors; * @author: 阿星不是程序员 **/ @Slf4j +@AllArgsConstructor @Service public class DocumentProfileServiceImpl implements DocumentProfileService { @@ -43,19 +44,7 @@ public class DocumentProfileServiceImpl implements DocumentProfileService { private final SuperAgentDocumentProfileMapper documentProfileMapper; private final SuperAgentDocumentStructureNodeMapper structureNodeMapper; private final DocumentStorageService storageService; - - @Resource - private UidGenerator uidGenerator; - - public DocumentProfileServiceImpl(SuperAgentDocumentMapper documentMapper, - SuperAgentDocumentProfileMapper documentProfileMapper, - SuperAgentDocumentStructureNodeMapper structureNodeMapper, - DocumentStorageService storageService) { - this.documentMapper = documentMapper; - this.documentProfileMapper = documentProfileMapper; - this.structureNodeMapper = structureNodeMapper; - this.storageService = storageService; - } + private final UidGenerator uidGenerator; @Override public SuperAgentDocumentProfile generateProfile(Long documentId, diff --git a/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/manage/service/impl/DocumentStrategyServiceImpl.java b/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/manage/service/impl/DocumentStrategyServiceImpl.java index 06a8ac8..8c9295b 100644 --- a/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/manage/service/impl/DocumentStrategyServiceImpl.java +++ b/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/manage/service/impl/DocumentStrategyServiceImpl.java @@ -3,14 +3,15 @@ package org.javaup.ai.manage.service.impl; import cn.hutool.core.util.StrUtil; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; +import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.javaup.ai.manage.config.DocumentManageProperties; import org.javaup.ai.manage.data.SuperAgentDocument; -import org.javaup.ai.manage.data.SuperAgentDocumentStructureNode; import org.javaup.ai.manage.data.SuperAgentDocumentStrategyPlan; import org.javaup.ai.manage.data.SuperAgentDocumentStrategyStep; -import org.javaup.ai.manage.service.DocumentStructureNodeService; +import org.javaup.ai.manage.data.SuperAgentDocumentStructureNode; import org.javaup.ai.manage.service.DocumentStrategyService; +import org.javaup.ai.manage.service.DocumentStructureNodeService; import org.javaup.ai.manage.support.ChunkCandidate; import org.javaup.ai.manage.support.DocumentAnalysisResult; import org.javaup.ai.manage.support.DocumentLineClassifier; @@ -20,13 +21,13 @@ import org.javaup.ai.manage.support.ParentBlockCandidate; import org.javaup.enums.DocumentChunkSourceTypeEnum; import org.javaup.enums.DocumentContentQualityLevelEnum; import org.javaup.enums.DocumentFileTypeEnum; -import org.javaup.enums.DocumentStrategyPipelineTypeEnum; import org.javaup.enums.DocumentStrategyExecuteStatusEnum; +import org.javaup.enums.DocumentStrategyPipelineTypeEnum; import org.javaup.enums.DocumentStrategyRoleEnum; import org.javaup.enums.DocumentStrategySourceTypeEnum; import org.javaup.enums.DocumentStrategyTypeEnum; -import org.javaup.enums.DocumentStructureNodeTypeEnum; import org.javaup.enums.DocumentStructureLevelEnum; +import org.javaup.enums.DocumentStructureNodeTypeEnum; import org.springframework.ai.chat.client.ChatClient; import org.springframework.ai.chat.model.ChatModel; import org.springframework.beans.factory.ObjectProvider; @@ -42,7 +43,6 @@ import java.util.LinkedHashSet; import java.util.List; import java.util.Locale; import java.util.Map; -import java.util.Objects; import java.util.Set; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -55,6 +55,7 @@ import java.util.stream.Collectors; **/ @Slf4j +@AllArgsConstructor @Service public class DocumentStrategyServiceImpl implements DocumentStrategyService { @@ -66,25 +67,11 @@ public class DocumentStrategyServiceImpl implements DocumentStrategyService { private static final int PARENT_SEMANTIC_MIN_CHARS = 480; private final DocumentManageProperties properties; - private final ObjectMapper objectMapper; - private final ObjectProvider chatModelProvider; private final DocumentLineClassifier documentLineClassifier; private final DocumentStructureNodeService structureNodeService; - public DocumentStrategyServiceImpl(DocumentManageProperties properties, - ObjectMapper objectMapper, - ObjectProvider chatModelProvider, - DocumentLineClassifier documentLineClassifier, - DocumentStructureNodeService structureNodeService) { - this.properties = properties; - this.objectMapper = objectMapper; - this.chatModelProvider = chatModelProvider; - this.documentLineClassifier = documentLineClassifier; - this.structureNodeService = structureNodeService; - } - @Override public DocumentStrategyPlanDraft recommendStrategy(SuperAgentDocument document, DocumentAnalysisResult analysisResult) { diff --git a/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/manage/service/impl/DocumentStructureNodeServiceImpl.java b/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/manage/service/impl/DocumentStructureNodeServiceImpl.java index bdf5158..8761a46 100644 --- a/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/manage/service/impl/DocumentStructureNodeServiceImpl.java +++ b/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/manage/service/impl/DocumentStructureNodeServiceImpl.java @@ -1,8 +1,8 @@ package org.javaup.ai.manage.service.impl; +import lombok.AllArgsConstructor; import com.baidu.fsg.uid.UidGenerator; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import jakarta.annotation.Resource; import org.javaup.ai.manage.data.SuperAgentDocumentStructureNode; import org.javaup.ai.manage.mapper.SuperAgentDocumentStructureNodeMapper; import org.javaup.ai.manage.service.DocumentStructureNodeService; @@ -21,17 +21,12 @@ import java.util.Map; * @author: 阿星不是程序员 **/ +@AllArgsConstructor @Service public class DocumentStructureNodeServiceImpl implements DocumentStructureNodeService { private final SuperAgentDocumentStructureNodeMapper structureNodeMapper; - - @Resource - private UidGenerator uidGenerator; - - public DocumentStructureNodeServiceImpl(SuperAgentDocumentStructureNodeMapper structureNodeMapper) { - this.structureNodeMapper = structureNodeMapper; - } + private final UidGenerator uidGenerator; @Override public List replaceDocumentNodes(Long documentId, diff --git a/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/manage/service/impl/DocumentTaskLogServiceImpl.java b/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/manage/service/impl/DocumentTaskLogServiceImpl.java index 208d3a5..33474a0 100644 --- a/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/manage/service/impl/DocumentTaskLogServiceImpl.java +++ b/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/manage/service/impl/DocumentTaskLogServiceImpl.java @@ -1,9 +1,9 @@ package org.javaup.ai.manage.service.impl; +import lombok.AllArgsConstructor; import com.baidu.fsg.uid.UidGenerator; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; -import jakarta.annotation.Resource; import org.javaup.ai.manage.data.SuperAgentDocumentTaskLog; import org.javaup.ai.manage.mapper.SuperAgentDocumentTaskLogMapper; import org.javaup.ai.manage.service.DocumentTaskLogService; @@ -16,21 +16,13 @@ import org.springframework.stereotype.Service; * @author: 阿星不是程序员 **/ +@AllArgsConstructor @Service public class DocumentTaskLogServiceImpl implements DocumentTaskLogService { private final SuperAgentDocumentTaskLogMapper taskLogMapper; - private final ObjectMapper objectMapper; - - @Resource - private UidGenerator uidGenerator; - - public DocumentTaskLogServiceImpl(SuperAgentDocumentTaskLogMapper taskLogMapper, - ObjectMapper objectMapper) { - this.taskLogMapper = taskLogMapper; - this.objectMapper = objectMapper; - } + private final UidGenerator uidGenerator; @Override public void saveLog(Long taskId, diff --git a/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/manage/service/impl/ElasticsearchDocumentNavigationIndexService.java b/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/manage/service/impl/ElasticsearchDocumentNavigationIndexService.java index 78cc869..f90cbac 100644 --- a/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/manage/service/impl/ElasticsearchDocumentNavigationIndexService.java +++ b/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/manage/service/impl/ElasticsearchDocumentNavigationIndexService.java @@ -1,5 +1,6 @@ package org.javaup.ai.manage.service.impl; +import lombok.AllArgsConstructor; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import co.elastic.clients.elasticsearch.ElasticsearchClient; @@ -31,22 +32,17 @@ import java.util.stream.Collectors; **/ @Slf4j +@AllArgsConstructor @Service @ConditionalOnProperty(prefix = "app.manage.elasticsearch", name = "enabled", havingValue = "true", matchIfMissing = true) public class ElasticsearchDocumentNavigationIndexService implements DocumentNavigationIndexService { private static final int DEFAULT_SEARCH_SIZE = 8; + @Qualifier("documentManageElasticsearchClient") private final ElasticsearchClient elasticsearchClient; private final DocumentManageProperties properties; - public ElasticsearchDocumentNavigationIndexService( - @Qualifier("documentManageElasticsearchClient") ElasticsearchClient elasticsearchClient, - DocumentManageProperties properties) { - this.elasticsearchClient = elasticsearchClient; - this.properties = properties; - } - @Override public void reindexDocumentNodes(Long documentId, Long parseTaskId, List nodes) { if (documentId == null) { diff --git a/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/manage/service/impl/ElasticsearchKnowledgeRouteIndexService.java b/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/manage/service/impl/ElasticsearchKnowledgeRouteIndexService.java index d39c80b..c11d7bb 100644 --- a/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/manage/service/impl/ElasticsearchKnowledgeRouteIndexService.java +++ b/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/manage/service/impl/ElasticsearchKnowledgeRouteIndexService.java @@ -1,6 +1,5 @@ package org.javaup.ai.manage.service.impl; -import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import co.elastic.clients.elasticsearch.ElasticsearchClient; import co.elastic.clients.elasticsearch._types.Refresh; @@ -10,6 +9,7 @@ import co.elastic.clients.elasticsearch.core.BulkResponse; import co.elastic.clients.elasticsearch.core.SearchResponse; import co.elastic.clients.elasticsearch.core.search.Hit; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.javaup.ai.manage.config.DocumentManageProperties; import org.javaup.ai.manage.data.SuperAgentDocument; @@ -38,7 +38,6 @@ import java.util.LinkedHashSet; import java.util.List; import java.util.Locale; import java.util.Map; -import java.util.Set; import java.util.concurrent.atomic.AtomicLong; import java.util.stream.Collectors; @@ -49,12 +48,15 @@ import java.util.stream.Collectors; **/ @Slf4j +@AllArgsConstructor @Service @ConditionalOnProperty(prefix = "app.manage.elasticsearch", name = "enabled", havingValue = "true", matchIfMissing = true) public class ElasticsearchKnowledgeRouteIndexService implements KnowledgeRouteIndexService { private static final Duration REFRESH_INTERVAL = Duration.ofSeconds(5); + private static final AtomicLong LAST_REFRESH_TIME = new AtomicLong(0L); + @Qualifier("documentManageElasticsearchClient") private final ElasticsearchClient elasticsearchClient; private final DocumentManageProperties properties; private final SuperAgentKnowledgeScopeNodeMapper scopeNodeMapper; @@ -62,40 +64,23 @@ public class ElasticsearchKnowledgeRouteIndexService implements KnowledgeRouteIn private final SuperAgentDocumentMapper documentMapper; private final SuperAgentDocumentProfileMapper documentProfileMapper; private final SuperAgentTopicDocumentRelationMapper topicDocumentRelationMapper; - private final AtomicLong lastRefreshTime = new AtomicLong(0L); - - public ElasticsearchKnowledgeRouteIndexService( - @Qualifier("documentManageElasticsearchClient") ElasticsearchClient elasticsearchClient, - DocumentManageProperties properties, - SuperAgentKnowledgeScopeNodeMapper scopeNodeMapper, - SuperAgentKnowledgeTopicNodeMapper topicNodeMapper, - SuperAgentDocumentMapper documentMapper, - SuperAgentDocumentProfileMapper documentProfileMapper, - SuperAgentTopicDocumentRelationMapper topicDocumentRelationMapper) { - this.elasticsearchClient = elasticsearchClient; - this.properties = properties; - this.scopeNodeMapper = scopeNodeMapper; - this.topicNodeMapper = topicNodeMapper; - this.documentMapper = documentMapper; - this.documentProfileMapper = documentProfileMapper; - this.topicDocumentRelationMapper = topicDocumentRelationMapper; - } + @Override public void refreshIfNeeded() { long now = System.currentTimeMillis(); - long last = lastRefreshTime.get(); + long last = LAST_REFRESH_TIME.get(); if (now - last < REFRESH_INTERVAL.toMillis()) { return; } - if (!lastRefreshTime.compareAndSet(last, now)) { + if (!LAST_REFRESH_TIME.compareAndSet(last, now)) { return; } try { refreshAll(); } catch (Exception exception) { - lastRefreshTime.set(0L); + LAST_REFRESH_TIME.set(0L); log.warn("刷新知识路由索引失败,将在下次查询时重试。", exception); } } diff --git a/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/manage/service/impl/KnowledgeManageServiceImpl.java b/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/manage/service/impl/KnowledgeManageServiceImpl.java index b671148..f7fa372 100644 --- a/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/manage/service/impl/KnowledgeManageServiceImpl.java +++ b/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/manage/service/impl/KnowledgeManageServiceImpl.java @@ -1,10 +1,10 @@ package org.javaup.ai.manage.service.impl; +import lombok.AllArgsConstructor; import com.baidu.fsg.uid.UidGenerator; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import cn.hutool.core.util.StrUtil; -import jakarta.annotation.Resource; import org.javaup.ai.manage.data.SuperAgentDocument; import org.javaup.ai.manage.data.SuperAgentDocumentProfile; import org.javaup.ai.manage.data.SuperAgentKnowledgeScopeNode; @@ -49,6 +49,7 @@ import java.util.Optional; * @description: 服务实现层 * @author: 阿星不是程序员 **/ +@AllArgsConstructor @Service public class KnowledgeManageServiceImpl implements KnowledgeManageService { @@ -58,23 +59,7 @@ public class KnowledgeManageServiceImpl implements KnowledgeManageService { private final SuperAgentKnowledgeRouteTraceMapper knowledgeRouteTraceMapper; private final SuperAgentDocumentMapper documentMapper; private final DocumentProfileService documentProfileService; - - @Resource - private UidGenerator uidGenerator; - - public KnowledgeManageServiceImpl(SuperAgentKnowledgeScopeNodeMapper scopeNodeMapper, - SuperAgentKnowledgeTopicNodeMapper topicNodeMapper, - SuperAgentTopicDocumentRelationMapper topicDocumentRelationMapper, - SuperAgentKnowledgeRouteTraceMapper knowledgeRouteTraceMapper, - SuperAgentDocumentMapper documentMapper, - DocumentProfileService documentProfileService) { - this.scopeNodeMapper = scopeNodeMapper; - this.topicNodeMapper = topicNodeMapper; - this.topicDocumentRelationMapper = topicDocumentRelationMapper; - this.knowledgeRouteTraceMapper = knowledgeRouteTraceMapper; - this.documentMapper = documentMapper; - this.documentProfileService = documentProfileService; - } + private final UidGenerator uidGenerator; @Override public KnowledgeScopeItemVo saveScope(KnowledgeScopeSaveDto dto) { diff --git a/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/manage/service/impl/KnowledgeRouteServiceImpl.java b/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/manage/service/impl/KnowledgeRouteServiceImpl.java index ce9d045..a763ec4 100644 --- a/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/manage/service/impl/KnowledgeRouteServiceImpl.java +++ b/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/manage/service/impl/KnowledgeRouteServiceImpl.java @@ -1,9 +1,9 @@ package org.javaup.ai.manage.service.impl; +import lombok.AllArgsConstructor; import cn.hutool.core.util.StrUtil; import com.baidu.fsg.uid.UidGenerator; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; import org.javaup.ai.manage.data.SuperAgentDocument; import org.javaup.ai.manage.data.SuperAgentDocumentProfile; @@ -48,6 +48,7 @@ import java.util.stream.Collectors; * @author: 阿星不是程序员 **/ @Slf4j +@AllArgsConstructor @Service public class KnowledgeRouteServiceImpl implements KnowledgeRouteService { @@ -64,27 +65,7 @@ public class KnowledgeRouteServiceImpl implements KnowledgeRouteService { private final SuperAgentKnowledgeRouteTraceMapper knowledgeRouteTraceMapper; private final ObjectProvider embeddingModelProvider; private final ObjectProvider knowledgeRouteIndexServiceProvider; - - @Resource - private UidGenerator uidGenerator; - - public KnowledgeRouteServiceImpl(SuperAgentDocumentMapper documentMapper, - SuperAgentDocumentProfileMapper documentProfileMapper, - SuperAgentKnowledgeScopeNodeMapper scopeNodeMapper, - SuperAgentKnowledgeTopicNodeMapper topicNodeMapper, - SuperAgentTopicDocumentRelationMapper topicDocumentRelationMapper, - SuperAgentKnowledgeRouteTraceMapper knowledgeRouteTraceMapper, - ObjectProvider embeddingModelProvider, - ObjectProvider knowledgeRouteIndexServiceProvider) { - this.documentMapper = documentMapper; - this.documentProfileMapper = documentProfileMapper; - this.scopeNodeMapper = scopeNodeMapper; - this.topicNodeMapper = topicNodeMapper; - this.topicDocumentRelationMapper = topicDocumentRelationMapper; - this.knowledgeRouteTraceMapper = knowledgeRouteTraceMapper; - this.embeddingModelProvider = embeddingModelProvider; - this.knowledgeRouteIndexServiceProvider = knowledgeRouteIndexServiceProvider; - } + private final UidGenerator uidGenerator; @Override public KnowledgeRouteDecision route(String question, String rewriteQuestion) { diff --git a/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/manage/service/impl/MinioDocumentStorageService.java b/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/manage/service/impl/MinioDocumentStorageService.java index 5136dca..df88025 100644 --- a/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/manage/service/impl/MinioDocumentStorageService.java +++ b/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/manage/service/impl/MinioDocumentStorageService.java @@ -1,5 +1,6 @@ package org.javaup.ai.manage.service.impl; +import lombok.AllArgsConstructor; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import io.minio.BucketExistsArgs; @@ -26,6 +27,7 @@ import java.util.List; * @author: 阿星不是程序员 **/ +@AllArgsConstructor @Service public class MinioDocumentStorageService implements DocumentStorageService { @@ -33,12 +35,6 @@ public class MinioDocumentStorageService implements DocumentStorageService { private final DocumentManageProperties properties; - public MinioDocumentStorageService(MinioClient minioClient, - DocumentManageProperties properties) { - this.minioClient = minioClient; - this.properties = properties; - } - @Override public StoredObjectInfo uploadOriginalFile(Long documentId, String originalFileName, byte[] bytes, String contentType) { diff --git a/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/manage/service/impl/MysqlDocumentStructureGraphService.java b/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/manage/service/impl/MysqlDocumentStructureGraphService.java index d830a43..8cc836c 100644 --- a/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/manage/service/impl/MysqlDocumentStructureGraphService.java +++ b/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/manage/service/impl/MysqlDocumentStructureGraphService.java @@ -1,5 +1,6 @@ package org.javaup.ai.manage.service.impl; +import lombok.AllArgsConstructor; import cn.hutool.core.util.StrUtil; import org.javaup.ai.manage.data.SuperAgentDocumentStructureNode; import org.javaup.ai.manage.model.graph.GraphItem; @@ -23,15 +24,12 @@ import java.util.Objects; * @author: 阿星不是程序员 **/ +@AllArgsConstructor @Service("mysqlDocumentStructureGraphService") public class MysqlDocumentStructureGraphService implements DocumentStructureGraphService { private final DocumentStructureNodeService documentStructureNodeService; - public MysqlDocumentStructureGraphService(DocumentStructureNodeService documentStructureNodeService) { - this.documentStructureNodeService = documentStructureNodeService; - } - @Override public GraphSection findSectionById(Long documentId, Long sectionNodeId) { if (documentId == null || sectionNodeId == null) { diff --git a/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/manage/service/impl/Neo4jDocumentStructureGraphProjectionService.java b/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/manage/service/impl/Neo4jDocumentStructureGraphProjectionService.java index e16d36e..8f9a8f5 100644 --- a/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/manage/service/impl/Neo4jDocumentStructureGraphProjectionService.java +++ b/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/manage/service/impl/Neo4jDocumentStructureGraphProjectionService.java @@ -1,5 +1,7 @@ package org.javaup.ai.manage.service.impl; +import jakarta.annotation.PostConstruct; +import lombok.AllArgsConstructor; import cn.hutool.core.util.StrUtil; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; @@ -33,6 +35,7 @@ import java.util.Map; **/ @Slf4j +@AllArgsConstructor @Service @ConditionalOnBean(name = "documentManageNeo4jDriver") public class Neo4jDocumentStructureGraphProjectionService implements DocumentStructureGraphProjectionService { @@ -46,18 +49,8 @@ public class Neo4jDocumentStructureGraphProjectionService implements DocumentStr private final SuperAgentDocumentTaskMapper taskMapper; private final ObjectMapper objectMapper; - public Neo4jDocumentStructureGraphProjectionService(Driver driver, - DocumentManageProperties properties, - DocumentStructureNodeService documentStructureNodeService, - SuperAgentDocumentMapper documentMapper, - SuperAgentDocumentTaskMapper taskMapper, - ObjectMapper objectMapper) { - this.driver = driver; - this.properties = properties; - this.documentStructureNodeService = documentStructureNodeService; - this.documentMapper = documentMapper; - this.taskMapper = taskMapper; - this.objectMapper = objectMapper; + @PostConstruct + public void init() { initializeSchema(); } diff --git a/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/manage/service/impl/Neo4jDocumentStructureGraphService.java b/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/manage/service/impl/Neo4jDocumentStructureGraphService.java index 137fb87..5772a60 100644 --- a/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/manage/service/impl/Neo4jDocumentStructureGraphService.java +++ b/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/manage/service/impl/Neo4jDocumentStructureGraphService.java @@ -1,5 +1,6 @@ package org.javaup.ai.manage.service.impl; +import lombok.AllArgsConstructor; import cn.hutool.core.util.StrUtil; import org.javaup.ai.manage.config.DocumentManageProperties; import org.javaup.ai.manage.model.graph.GraphItem; @@ -23,6 +24,7 @@ import java.util.Objects; * @author: 阿星不是程序员 **/ +@AllArgsConstructor @Service @ConditionalOnBean(name = "documentManageNeo4jDriver") public class Neo4jDocumentStructureGraphService implements DocumentStructureGraphService { @@ -30,11 +32,6 @@ public class Neo4jDocumentStructureGraphService implements DocumentStructureGrap private final Driver driver; private final DocumentManageProperties properties; - public Neo4jDocumentStructureGraphService(Driver driver, DocumentManageProperties properties) { - this.driver = driver; - this.properties = properties; - } - @Override public boolean isGraphAvailable(Long documentId) { if (documentId == null) { diff --git a/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/manage/service/impl/TikaDocumentParserService.java b/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/manage/service/impl/TikaDocumentParserService.java index 133934e..89d197a 100644 --- a/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/manage/service/impl/TikaDocumentParserService.java +++ b/super-agent-business/super-agent-business-chat/src/main/java/org/javaup/ai/manage/service/impl/TikaDocumentParserService.java @@ -1,5 +1,6 @@ package org.javaup.ai.manage.service.impl; +import lombok.AllArgsConstructor; import cn.hutool.core.util.StrUtil; import org.apache.tika.Tika; import org.javaup.ai.manage.service.DocumentParserService; @@ -24,19 +25,14 @@ import java.util.List; * @author: 阿星不是程序员 **/ +@AllArgsConstructor @Service public class TikaDocumentParserService implements DocumentParserService { - private final Tika tika = new Tika(); + private static final Tika TIKA = new Tika(); private final DocumentLineClassifier documentLineClassifier; private final DocumentStructureNodeExtractor structureNodeExtractor; - public TikaDocumentParserService(DocumentLineClassifier documentLineClassifier, - DocumentStructureNodeExtractor structureNodeExtractor) { - this.documentLineClassifier = documentLineClassifier; - this.structureNodeExtractor = structureNodeExtractor; - } - @Override public DocumentAnalysisResult parse(byte[] bytes, String originalFileName, String mimeType, DocumentFileTypeEnum fileType) { @@ -77,7 +73,7 @@ public class TikaDocumentParserService implements DocumentParserService { try { if (fileType == DocumentFileTypeEnum.PDF || fileType == DocumentFileTypeEnum.DOC || fileType == DocumentFileTypeEnum.DOCX) { - return tika.parseToString(new ByteArrayInputStream(bytes)); + return TIKA.parseToString(new ByteArrayInputStream(bytes)); } if (fileType == DocumentFileTypeEnum.TXT || fileType == DocumentFileTypeEnum.MD) { @@ -85,10 +81,10 @@ public class TikaDocumentParserService implements DocumentParserService { } if (fileType == DocumentFileTypeEnum.HTML) { - return tika.parseToString(new ByteArrayInputStream(bytes)); + return TIKA.parseToString(new ByteArrayInputStream(bytes)); } - return tika.parseToString(new ByteArrayInputStream(bytes)); + return TIKA.parseToString(new ByteArrayInputStream(bytes)); } catch (Exception exception) { -- Gitee