From 228fb4a94e2754f37b3d5d8172eb471e3d02233c Mon Sep 17 00:00:00 2001 From: liangjinglin Date: Mon, 7 Apr 2025 09:33:05 +0800 Subject: [PATCH] =?UTF-8?q?20250407=20rag=E7=9F=A5=E8=AF=86=E5=BA=93?= =?UTF-8?q?=E5=9C=B0=E5=9D=80=E5=9C=A8applicaiton=E4=B8=AD=E9=85=8D?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 个人知识库 => rag/个人知识库 | 0 src/main/java/com/ai/config/AssistantInit.java | 5 ++++- src/main/java/com/ai/config/SegmentConfig.java | 5 ++++- src/main/java/com/ai/http/chat.http | 2 +- src/main/java/com/ai/service/EmbeddingService.java | 5 ++++- src/main/resources/application.properties | 4 +++- 6 files changed, 16 insertions(+), 5 deletions(-) rename 个人知识库 => rag/个人知识库 (100%) diff --git a/个人知识库 b/rag/个人知识库 similarity index 100% rename from 个人知识库 rename to rag/个人知识库 diff --git a/src/main/java/com/ai/config/AssistantInit.java b/src/main/java/com/ai/config/AssistantInit.java index 2199000..7c7ecc8 100644 --- a/src/main/java/com/ai/config/AssistantInit.java +++ b/src/main/java/com/ai/config/AssistantInit.java @@ -31,13 +31,16 @@ public class AssistantInit { @Value("${langchain4j.model}") private String model; + @Value("${rag.path}") + private String ragPath; + @Bean public Assist init() { ChatLanguageModel qwenModel = QwenChatModel.builder() .apiKey(apiKey) .modelName(model) .build(); - List documents = FileSystemDocumentLoader.loadDocuments("E:\\ideaProject\\liang-ai"); + List documents = FileSystemDocumentLoader.loadDocuments(ragPath); // for simplicity, we will use an in-memory one: InMemoryEmbeddingStore embeddingStore = new InMemoryEmbeddingStore<>(); EmbeddingStoreIngestor.ingest(documents, embeddingStore); diff --git a/src/main/java/com/ai/config/SegmentConfig.java b/src/main/java/com/ai/config/SegmentConfig.java index 04415ed..5dfb4a9 100644 --- a/src/main/java/com/ai/config/SegmentConfig.java +++ b/src/main/java/com/ai/config/SegmentConfig.java @@ -31,6 +31,9 @@ public class SegmentConfig { @Value("${langchain4j.model}") private String model; + @Value("${rag.path}") + private String ragPath; + @Bean public SegmentAssist segmentAssist() { ChatLanguageModel qwenModel = QwenChatModel.builder() @@ -39,7 +42,7 @@ public class SegmentConfig { .build(); QwenEmbeddingModel embeddingModel = QwenEmbeddingModel.builder().apiKey(apiKey).build(); InMemoryEmbeddingStore embeddingStore = new InMemoryEmbeddingStore<>(); - List documents = FileSystemDocumentLoader.loadDocuments("E:\\ideaProject\\liang-ai\\rag"); + List documents = FileSystemDocumentLoader.loadDocuments(ragPath); for (Document document : documents) { DocumentByLineSplitter splitter = new DocumentByLineSplitter(300,30); List segments = splitter.split(document); diff --git a/src/main/java/com/ai/http/chat.http b/src/main/java/com/ai/http/chat.http index 48049e9..637fe7f 100644 --- a/src/main/java/com/ai/http/chat.http +++ b/src/main/java/com/ai/http/chat.http @@ -2,7 +2,7 @@ GET http://localhost:8080/langchain/chat?input=今天天气如何 ### 测试 LangChainController 的 highlevel chat 接口 -GET http://localhost:8080/langchain/high/chat?input=请推荐3件DWALK商城的商品 +GET http://localhost:8080/langchain/high/chat?input=梁靖林的个人博客地址是什么 ### 测试 LangChainController 的 highlevel memory chat 接口 GET http://localhost:8080/langchain/high/memory-chat?memoryId=1&input=你好,我想要买电脑笔记本 diff --git a/src/main/java/com/ai/service/EmbeddingService.java b/src/main/java/com/ai/service/EmbeddingService.java index b0924c4..3e86de0 100644 --- a/src/main/java/com/ai/service/EmbeddingService.java +++ b/src/main/java/com/ai/service/EmbeddingService.java @@ -22,10 +22,13 @@ public class EmbeddingService { @Value("${langchain4j.api-key}") private String apiKey; + @Value("${rag.path}") + private String ragPath; + public void embedding(String input) { QwenEmbeddingModel embeddingModel = QwenEmbeddingModel.builder().apiKey(apiKey).build(); InMemoryEmbeddingStore embeddingStore = new InMemoryEmbeddingStore<>(); - List documents = FileSystemDocumentLoader.loadDocuments("E:\\ideaProject\\liang-ai\\rag"); + List documents = FileSystemDocumentLoader.loadDocuments(ragPath); for (Document document : documents) { DocumentByLineSplitter splitter = new DocumentByLineSplitter(200,30); List segments = splitter.split(document); diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 8b201cd..d065978 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -5,4 +5,6 @@ langchain4j.community.dashscope.chat-model.model-name=deepseek-v3 langchain4j.api-key=sk-2f703a41fff0488e9b6888013d2ee58a -langchain4j.model=deepseek-v3 \ No newline at end of file +langchain4j.model=deepseek-v3 + +rag.path=D:/IdeaProjects/liang-ai/rag \ No newline at end of file