mirror of
				https://gitee.com/hhyykk/ipms-sjy.git
				synced 2025-10-31 10:18:42 +08:00 
			
		
		
		
	【优化】AI 知识库: 从url下载文档资源
This commit is contained in:
		| @@ -10,5 +10,5 @@ import org.apache.ibatis.annotations.Mapper; | ||||
|  * @author xiaoxin | ||||
|  */ | ||||
| @Mapper | ||||
| public interface AiKnowledgeBaseMapper extends BaseMapperX<AiKnowledgeDO> { | ||||
| public interface AiKnowledgeMapper extends BaseMapperX<AiKnowledgeDO> { | ||||
| } | ||||
| @@ -1,6 +1,7 @@ | ||||
| package cn.iocoder.yudao.module.ai.service.knowledge; | ||||
|  | ||||
| import cn.hutool.core.collection.CollUtil; | ||||
| import cn.hutool.http.HttpUtil; | ||||
| import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; | ||||
| import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; | ||||
| import cn.iocoder.yudao.framework.common.util.object.BeanUtils; | ||||
| @@ -17,7 +18,7 @@ import org.springframework.ai.reader.tika.TikaDocumentReader; | ||||
| import org.springframework.ai.tokenizer.TokenCountEstimator; | ||||
| import org.springframework.ai.transformer.splitter.TokenTextSplitter; | ||||
| import org.springframework.ai.vectorstore.RedisVectorStore; | ||||
| import org.springframework.beans.factory.annotation.Value; | ||||
| import org.springframework.core.io.ByteArrayResource; | ||||
| import org.springframework.stereotype.Service; | ||||
| import org.springframework.transaction.annotation.Transactional; | ||||
|  | ||||
| @@ -46,17 +47,14 @@ public class AiKnowledgeDocumentServiceImpl implements AiKnowledgeDocumentServic | ||||
|     private RedisVectorStore vectorStore; | ||||
|  | ||||
|  | ||||
|     // TODO xiaoxin 临时测试用,后续删 | ||||
|     @Value("classpath:/webapp/test/Fel.pdf") | ||||
|     private org.springframework.core.io.Resource data; | ||||
|  | ||||
|     // TODO 芋艿:需要 review 下,代码格式; | ||||
|     @Override | ||||
|     @Transactional(rollbackFor = Exception.class) | ||||
|     public Long createKnowledgeDocument(AiKnowledgeDocumentCreateReqVO createReqVO) { | ||||
|         // TODO xiaoxin 后续从 url 加载 | ||||
|         TikaDocumentReader loader = new TikaDocumentReader(data); | ||||
|         // 1.1 加载文档 | ||||
|         // 1.1 下载文档 | ||||
|         String url = createReqVO.getUrl(); | ||||
|         TikaDocumentReader loader = new TikaDocumentReader(downloadFile(url)); | ||||
|         // 1.2 加载文档 | ||||
|         List<Document> documents = loader.get(); | ||||
|         Document document = CollUtil.getFirst(documents); | ||||
|         // TODO @xin:是不是不存在,就抛出异常呀;厚泽 return 呀; | ||||
| @@ -86,4 +84,14 @@ public class AiKnowledgeDocumentServiceImpl implements AiKnowledgeDocumentServic | ||||
|         return documentId; | ||||
|     } | ||||
|  | ||||
|     private org.springframework.core.io.Resource downloadFile(String url) { | ||||
|         try { | ||||
|             byte[] bytes = HttpUtil.downloadBytes(url); | ||||
|             return new ByteArrayResource(bytes); | ||||
|         } catch (Exception e) { | ||||
|             log.error("[downloadFile][url({}) 下载失败]", url, e); | ||||
|             throw new RuntimeException(e); | ||||
|         } | ||||
|     } | ||||
|  | ||||
| } | ||||
|   | ||||
| @@ -7,7 +7,7 @@ import cn.iocoder.yudao.module.ai.controller.admin.knowledge.vo.AiKnowledgeCreat | ||||
| import cn.iocoder.yudao.module.ai.controller.admin.knowledge.vo.AiKnowledgeUpdateMyReqVO; | ||||
| import cn.iocoder.yudao.module.ai.dal.dataobject.knowledge.AiKnowledgeDO; | ||||
| import cn.iocoder.yudao.module.ai.dal.dataobject.model.AiChatModelDO; | ||||
| import cn.iocoder.yudao.module.ai.dal.mysql.knowledge.AiKnowledgeBaseMapper; | ||||
| import cn.iocoder.yudao.module.ai.dal.mysql.knowledge.AiKnowledgeMapper; | ||||
| import cn.iocoder.yudao.module.ai.service.model.AiChatModelService; | ||||
| import jakarta.annotation.Resource; | ||||
| import lombok.extern.slf4j.Slf4j; | ||||
| @@ -29,7 +29,7 @@ public class AiKnowledgeServiceImpl implements AiKnowledgeService { | ||||
|     private AiChatModelService chatModalService; | ||||
|  | ||||
|     @Resource | ||||
|     private AiKnowledgeBaseMapper knowledgeBaseMapper; | ||||
|     private AiKnowledgeMapper knowledgeBaseMapper; | ||||
|  | ||||
|     @Override | ||||
|     public Long createKnowledgeMy(AiKnowledgeCreateMyReqVO createReqVO, Long userId) { | ||||
|   | ||||
										
											Binary file not shown.
										
									
								
							
		Reference in New Issue
	
	Block a user
	 xiaoxin
					xiaoxin