Commit b453856864d44879befd7558b68b0239b4be7870

Authored by YunaiV
1 parent f8d1fa9b

【代码优化】AI:向量化的集成

yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/knowledge/DocService.java
... ... @@ -7,7 +7,6 @@ package cn.iocoder.yudao.module.ai.service.knowledge;
7 7 */
8 8 public interface DocService {
9 9  
10   -
11 10 /**
12 11 * 向量化文档
13 12 */
... ...
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/knowledge/DocServiceImpl.java
... ... @@ -21,24 +21,23 @@ import java.util.List;
21 21 public class DocServiceImpl implements DocService {
22 22  
23 23 @Resource
24   - RedisVectorStore vectorStore;
  24 + private RedisVectorStore vectorStore;
25 25 @Resource
26   - TokenTextSplitter tokenTextSplitter;
  26 + private TokenTextSplitter tokenTextSplitter;
27 27  
28 28 // TODO @xin 临时测试用,后续删
29 29 @Value("classpath:/webapp/test/Fel.pdf")
30 30 private org.springframework.core.io.Resource data;
31 31  
32   -
33 32 @Override
34 33 public void embeddingDoc() {
35 34 // 读取文件
36   - org.springframework.core.io.Resource file = data;
37   - TikaDocumentReader loader = new TikaDocumentReader(file);
  35 + TikaDocumentReader loader = new TikaDocumentReader(data);
38 36 List<Document> documents = loader.get();
39 37 // 文档分段
40 38 List<Document> segments = tokenTextSplitter.apply(documents);
41 39 // 向量化并存储
42 40 vectorStore.add(segments);
43 41 }
  42 +
44 43 }
... ...
yudao-module-ai/yudao-spring-boot-starter-ai/pom.xml
... ... @@ -40,6 +40,7 @@
40 40 <version>${spring-ai.version}</version>
41 41 </dependency>
42 42  
  43 + <!-- 向量化,基于 Redis 存储,Tika 解析内容 -->
43 44 <dependency>
44 45 <groupId>org.springframework.ai</groupId>
45 46 <artifactId>spring-ai-transformers-spring-boot-starter</artifactId>
... ... @@ -55,13 +56,14 @@
55 56 <artifactId>spring-ai-redis-store</artifactId>
56 57 <version>${spring-ai.version}</version>
57 58 </dependency>
  59 +
  60 + <!-- TODO @xin:引入我们项目的 starter -->
58 61 <dependency>
59 62 <groupId>org.springframework.data</groupId>
60 63 <artifactId>spring-data-redis</artifactId>
61 64 <optional>true</optional>
62 65 </dependency>
63 66  
64   -
65 67 <dependency>
66 68 <groupId>cn.iocoder.boot</groupId>
67 69 <artifactId>yudao-common</artifactId>
... ...
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/org/springframework/ai/autoconfigure/vectorstore/redis/RedisVectorStoreAutoConfiguration.java
... ... @@ -30,6 +30,8 @@ import redis.clients.jedis.JedisPooled;
30 30 /**
31 31 * TODO @xin 先拿 spring-ai 最新代码覆盖,1.0.0-M1 跟 redis 自动配置会冲突
32 32 *
  33 + * TODO 这个官方,有说啥时候 fix 哇?
  34 + *
33 35 * @author Christian Tzolov
34 36 * @author Eddú Meléndez
35 37 */
... ... @@ -39,8 +41,6 @@ import redis.clients.jedis.JedisPooled;
39 41 @EnableConfigurationProperties(RedisVectorStoreProperties.class)
40 42 public class RedisVectorStoreAutoConfiguration {
41 43  
42   -
43   -
44 44 @Bean
45 45 @ConditionalOnMissingBean
46 46 public RedisVectorStore vectorStore(EmbeddingModel embeddingModel, RedisVectorStoreProperties properties,
... ...
yudao-server/src/main/resources/application.yaml
... ... @@ -153,7 +153,7 @@ spring:
153 153  
154 154 spring:
155 155 ai:
156   - vectorstore:
  156 + vectorstore: # 向量存储
157 157 redis:
158 158 index: default-index
159 159 prefix: "default:"
... ...