From fada2aab78207e1a4142b3e63ca846a7c69c8ca7 Mon Sep 17 00:00:00 2001 From: huangge1199 Date: Sat, 12 Jul 2025 13:08:59 +0800 Subject: [PATCH] RAG --- pom.xml | 10 +++++----- .../java/com/huangge1199/ai/config/RagConfig.java | 13 +++++-------- .../ai/controller/LangChainController.java | 13 +++++++++++++ .../huangge1199/ai/service/LangChainService.java | 7 ++++++- 4 files changed, 29 insertions(+), 14 deletions(-) diff --git a/pom.xml b/pom.xml index a212df4..a53411e 100644 --- a/pom.xml +++ b/pom.xml @@ -55,11 +55,11 @@ langchain4j 1.1.0 - - - - - + + dev.langchain4j + langchain4j-spring-boot-starter + 1.1.0-beta7 + diff --git a/src/main/java/com/huangge1199/ai/config/RagConfig.java b/src/main/java/com/huangge1199/ai/config/RagConfig.java index 509b499..ad9374f 100644 --- a/src/main/java/com/huangge1199/ai/config/RagConfig.java +++ b/src/main/java/com/huangge1199/ai/config/RagConfig.java @@ -40,22 +40,19 @@ public class RagConfig { EmbeddingStoreIngestor ingestor = EmbeddingStoreIngestor.builder() .documentSplitter(documentByParagraphSplitter) - .textSegmentTransformer(textSegment -> { - return TextSegment.from( - textSegment.metadata().getString("file_name") + "\n" + textSegment.text(), - textSegment.metadata() - ); - }) + .textSegmentTransformer(textSegment -> TextSegment.from( + textSegment.metadata().getString("file_name") + "\n" + textSegment.text(), + textSegment.metadata() + )) .embeddingModel(qwenEmbeddingModel) .embeddingStore(embeddingStore) .build(); ingestor.ingest(documents); - EmbeddingStoreContentRetriever contentRetriever = EmbeddingStoreContentRetriever.builder() + return EmbeddingStoreContentRetriever.builder() .embeddingStore(embeddingStore) .embeddingModel(qwenEmbeddingModel) .maxResults(5) .minScore(0.75) .build(); - return contentRetriever; } } diff --git a/src/main/java/com/huangge1199/ai/controller/LangChainController.java b/src/main/java/com/huangge1199/ai/controller/LangChainController.java index 2711892..41235a1 100644 --- a/src/main/java/com/huangge1199/ai/controller/LangChainController.java +++ b/src/main/java/com/huangge1199/ai/controller/LangChainController.java @@ -2,6 +2,7 @@ package com.huangge1199.ai.controller; import com.huangge1199.ai.common.R; import com.huangge1199.ai.service.LangChainService; +import dev.langchain4j.service.Result; import jakarta.annotation.Resource; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -44,4 +45,16 @@ public class LangChainController { LangChainService.Report result = langChainService.chatForReport(message); return R.ok(result); } + + /** + * RAG + * + * @param message 输入信息 + * @return ai返回结果 + */ + @PostMapping("/chatWithRag") + public R> chatWithRag(@RequestBody String message) { + Result result = langChainService.chatWithRag(message); + return R.ok(result); + } } diff --git a/src/main/java/com/huangge1199/ai/service/LangChainService.java b/src/main/java/com/huangge1199/ai/service/LangChainService.java index c7109fe..0e1728d 100644 --- a/src/main/java/com/huangge1199/ai/service/LangChainService.java +++ b/src/main/java/com/huangge1199/ai/service/LangChainService.java @@ -1,5 +1,6 @@ package com.huangge1199.ai.service; +import dev.langchain4j.service.Result; import dev.langchain4j.service.SystemMessage; import java.util.List; @@ -18,5 +19,9 @@ public interface LangChainService { @SystemMessage(fromResource = "system-prompt.txt") Report chatForReport(String message); - record Report(String name, List list){} + record Report(String name, List list) { + } + + @SystemMessage(fromResource = "system-prompt.txt") + Result chatWithRag(String message); }