From 1ca5584d7e3200a9af65a099bd26d3593e2ba702 Mon Sep 17 00:00:00 2001
From: liyong <18434998025@163.com>
Date: 星期四, 07 五月 2026 14:36:08 +0800
Subject: [PATCH] 迁移pro
---
src/main/java/com/ruoyi/ai/config/XiaozhiAgentConfig.java | 91 +++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 91 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/ruoyi/ai/config/XiaozhiAgentConfig.java b/src/main/java/com/ruoyi/ai/config/XiaozhiAgentConfig.java
new file mode 100644
index 0000000..27e5a6b
--- /dev/null
+++ b/src/main/java/com/ruoyi/ai/config/XiaozhiAgentConfig.java
@@ -0,0 +1,91 @@
+package com.ruoyi.ai.config;
+
+import com.ruoyi.ai.store.MongoChatMemoryStore;
+import dev.langchain4j.memory.chat.ChatMemoryProvider;
+import dev.langchain4j.memory.chat.MessageWindowChatMemory;
+import dev.langchain4j.model.embedding.EmbeddingModel;
+import dev.langchain4j.rag.content.retriever.ContentRetriever;
+import dev.langchain4j.rag.content.retriever.EmbeddingStoreContentRetriever;
+import dev.langchain4j.store.embedding.EmbeddingStore;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * @author :yys
+ * @date : 2025/5/2 20:01
+ */
+@Configuration
+public class XiaozhiAgentConfig {
+
+ @Autowired
+ private MongoChatMemoryStore mongoChatMemoryStore;
+
+ @Autowired
+ private EmbeddingStore embeddingStore;
+ @Autowired
+ private EmbeddingModel embeddingModel;
+
+// @Value("${knowledge.one}")
+// private String one;
+//
+// @Value("${knowledge.two}")
+// private String two;
+//
+// @Value("${knowledge.three}")
+// private String three;
+
+ @Bean
+ ChatMemoryProvider chatMemoryProviderXiaozhi() {
+ return memoryId -> MessageWindowChatMemory.builder()
+ .id(memoryId)
+ .maxMessages(20)
+ .chatMemoryStore(mongoChatMemoryStore)
+ .build();
+ }
+
+// @Bean
+// ContentRetriever contentRetrieverXiaozhi() {
+// //浣跨敤FileSystemDocumentLoader璇诲彇鎸囧畾鐩綍涓嬬殑鐭ヨ瘑搴撴枃妗�
+// //骞朵娇鐢ㄩ粯璁ょ殑鏂囨。瑙f瀽鍣ㄥ鏂囨。杩涜瑙f瀽
+// Document document1 = FileSystemDocumentLoader.loadDocument(one);
+//// Document document2 = FileSystemDocumentLoader.loadDocument(two);
+//// Document document3 = FileSystemDocumentLoader.loadDocument(three);
+//// List<Document> documents = Arrays.asList(document1, document2, document3);
+//
+// List<Document> documents = Collections.singletonList(document1);
+//// 2. 灏嗘暟鎹簱鏁版嵁杞负LangChain4j鐨凞ocument瀵硅薄
+//// List<Document> documents = new ArrayList<>();
+//
+// //浣跨敤鍐呭瓨鍚戦噺瀛樺偍
+// InMemoryEmbeddingStore<TextSegment> inMemoryEmbeddingStore = new InMemoryEmbeddingStore<>();
+// //浣跨敤榛樿鐨勬枃妗e垎鍓插櫒
+// EmbeddingStoreIngestor.builder()
+// .embeddingModel(embeddingModel)
+// .embeddingStore(inMemoryEmbeddingStore)
+// .build()
+// .ingest(documents);
+// //浠庡祵鍏ュ瓨鍌紙EmbeddingStore锛夐噷妫�绱㈠拰鏌ヨ鍐呭鐩稿叧鐨勪俊鎭�
+// return EmbeddingStoreContentRetriever.builder()
+// .embeddingModel(embeddingModel)
+// .embeddingStore(inMemoryEmbeddingStore)
+// .build();
+// }
+
+ @Bean
+ ContentRetriever contentRetrieverXiaozhiPincone() {
+ // 鍒涘缓涓�涓� EmbeddingStoreContentRetriever 瀵硅薄锛岀敤浜庝粠宓屽叆瀛樺偍涓绱㈠唴瀹�
+ return EmbeddingStoreContentRetriever
+ .builder()
+ // 璁剧疆鐢ㄤ簬鐢熸垚宓屽叆鍚戦噺鐨勫祵鍏ユā鍨�
+ .embeddingModel(embeddingModel)
+ // 鎸囧畾瑕佷娇鐢ㄧ殑宓屽叆瀛樺偍
+ .embeddingStore(embeddingStore)
+ // 璁剧疆鏈�澶ф绱㈢粨鏋滄暟閲忥紝杩欓噷琛ㄧず鏈�澶氳繑鍥� 1 鏉″尮閰嶇粨鏋�
+ .maxResults(1)
+ // 璁剧疆鏈�灏忓緱鍒嗛槇鍊硷紝鍙湁寰楀垎澶т簬绛変簬 0.8 鐨勭粨鏋滄墠浼氳杩斿洖
+ .minScore(0.8)
+ // 鏋勫缓鏈�缁堢殑 EmbeddingStoreContentRetriever 瀹炰緥
+ .build();
+ }
+}
--
Gitblit v1.9.3