向量数据库:加载md进数据库

This commit is contained in:
huangge1199 2025-05-27 14:01:04 +08:00
parent 071f710f5c
commit 274608a471
5 changed files with 21 additions and 22 deletions

View File

@ -12,4 +12,6 @@ import java.util.List;
*/
public interface DBService {
List<Document> similaritySearch();
List<Document> loadMdToDd();
}

View File

@ -1,6 +1,7 @@
package com.huangge1199.aiagent.Service.impl;
import com.huangge1199.aiagent.Service.DBService;
import com.huangge1199.aiagent.rag.DocumentLoaderUtils;
import jakarta.annotation.Resource;
import org.springframework.ai.document.Document;
import org.springframework.ai.vectorstore.SearchRequest;
@ -22,6 +23,9 @@ public class DBServiceImpl implements DBService {
@Resource
VectorStore pgVectorVectorStore;
@Resource
DocumentLoaderUtils documentLoaderUtils;
@Override
public List<Document> similaritySearch() {
@ -34,4 +38,11 @@ public class DBServiceImpl implements DBService {
// 相似度查询
return pgVectorVectorStore.similaritySearch(SearchRequest.builder().query("Spring").topK(5).build());
}
@Override
public List<Document> loadMdToDd() {
List<Document> documents = documentLoaderUtils.loadMarkdowns();
pgVectorVectorStore.add(documents);
return pgVectorVectorStore.similaritySearch(SearchRequest.builder().topK(5).build());
}
}

View File

@ -1,7 +1,5 @@
package com.huangge1199.aiagent.config;
import com.huangge1199.aiagent.rag.DocumentLoaderUtils;
import jakarta.annotation.Resource;
import org.springframework.ai.embedding.EmbeddingModel;
import org.springframework.ai.vectorstore.VectorStore;
import org.springframework.ai.vectorstore.pgvector.PgVectorStore;
@ -22,18 +20,9 @@ import static org.springframework.ai.vectorstore.pgvector.PgVectorStore.PgIndexT
@Configuration
public class PgVectorVectorStoreConfig {
@Resource
private DocumentLoaderUtils documentLoaderUtils;
@Bean
public VectorStore vectorStore(JdbcTemplate jdbcTemplate, @Qualifier("ollamaEmbeddingModel") EmbeddingModel embeddingModel) {
// 设置向量维度默认为模型维度或1536
// 设置距离类型默认为 COSINE_DISTANCE
// 设置索引类型默认为 HNSW
// 是否初始化模式默认为 false
// 设置模式名称默认为 "public"
// 设置向量表名称默认为 "vector_store"
// 设置最大文档批处理大小默认为 10000
return PgVectorStore.builder(jdbcTemplate, embeddingModel)
// 设置向量维度默认为模型维度或1536
.dimensions(1024)

View File

@ -32,4 +32,11 @@ public class DBController {
List<Document> results = dbService.similaritySearch();
return R.ok(results);
}
@PostMapping("/loadMdToDB")
@Operation(summary = "加载md进数据库")
public R<List<Document>> loadMdToDd() {
List<Document> result = dbService.loadMdToDd();
return R.ok(result);
}
}

View File

@ -1,6 +1,5 @@
package com.huangge1199.aiagent.rag;
import jakarta.annotation.Resource;
import org.springframework.ai.chat.client.ChatClient;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@ -14,15 +13,6 @@ import org.springframework.context.annotation.Configuration;
@Configuration
public class RagConfig {
@Resource
private DocumentLoaderUtils documentLoaderUtils;
@Resource
private MyTokenTextSplitter myTokenTextSplitter;
@Resource
private MyKeywordEnricher myKeywordEnricher;
@Bean
ChatClient chatClient(ChatClient.Builder builder) {
return builder.defaultSystem("你将作为一名恋爱大师,对于用户的问题作出解答")