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);
}