diff --git a/pom.xml b/pom.xml
index 79326ea..24d0bf7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -56,6 +56,17 @@
1.0.0-beta1
+
+ dev.langchain4j
+ langchain4j-milvus
+ 1.0.0-beta1
+
+
+ dev.langchain4j
+ langchain4j-embeddings-all-minilm-l6-v2
+ 1.0.0-beta1
+
+
dev.langchain4j
langchain4j-community-dashscope-spring-boot-starter
diff --git a/src/main/java/com/ai/config/AssistantInit.java b/src/main/java/com/ai/config/AssistantInit.java
index 7c7ecc8..39ac764 100644
--- a/src/main/java/com/ai/config/AssistantInit.java
+++ b/src/main/java/com/ai/config/AssistantInit.java
@@ -39,15 +39,10 @@ public class AssistantInit {
ChatLanguageModel qwenModel = QwenChatModel.builder()
.apiKey(apiKey)
.modelName(model)
- .build();
- List documents = FileSystemDocumentLoader.loadDocuments(ragPath);
- // for simplicity, we will use an in-memory one:
- InMemoryEmbeddingStore embeddingStore = new InMemoryEmbeddingStore<>();
- EmbeddingStoreIngestor.ingest(documents, embeddingStore);
+ .build();// for simplicity, we will use an in-memory one:
return AiServices.builder(Assist.class)
.chatMemoryProvider(memoryId -> MessageWindowChatMemory.withMaxMessages(10))
.chatLanguageModel(qwenModel)
- .contentRetriever(EmbeddingStoreContentRetriever.from(embeddingStore))
// .tools(new MyCalculator())
.build();
}
diff --git a/src/main/java/com/ai/config/SegmentConfig.java b/src/main/java/com/ai/config/SegmentConfig.java
index 5dfb4a9..dd83f15 100644
--- a/src/main/java/com/ai/config/SegmentConfig.java
+++ b/src/main/java/com/ai/config/SegmentConfig.java
@@ -13,7 +13,11 @@ import dev.langchain4j.model.chat.ChatLanguageModel;
import dev.langchain4j.rag.content.retriever.ContentRetriever;
import dev.langchain4j.rag.content.retriever.EmbeddingStoreContentRetriever;
import dev.langchain4j.service.AiServices;
-import dev.langchain4j.store.embedding.inmemory.InMemoryEmbeddingStore;
+import dev.langchain4j.store.embedding.EmbeddingStore;
+import dev.langchain4j.store.embedding.milvus.MilvusEmbeddingStore;
+import io.milvus.common.clientenum.ConsistencyLevelEnum;
+import io.milvus.param.IndexType;
+import io.milvus.param.MetricType;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
@@ -41,7 +45,21 @@ public class SegmentConfig {
.modelName(model)
.build();
QwenEmbeddingModel embeddingModel = QwenEmbeddingModel.builder().apiKey(apiKey).build();
- InMemoryEmbeddingStore embeddingStore = new InMemoryEmbeddingStore<>();
+// InMemoryEmbeddingStore embeddingStore = new InMemoryEmbeddingStore<>();
+ EmbeddingStore embeddingStore = MilvusEmbeddingStore.builder()
+ .host("localhost")
+ .port(19530)
+ .collectionName("langchain4j_collection")
+ .dimension(1536)
+ .indexType(IndexType.FLAT)
+ .metricType(MetricType.COSINE)
+ .consistencyLevel(ConsistencyLevelEnum.EVENTUALLY)
+ .autoFlushOnInsert(true)
+ .idFieldName("id")
+ .textFieldName("text")
+ .metadataFieldName("metadata")
+ .vectorFieldName("vector")
+ .build();
List documents = FileSystemDocumentLoader.loadDocuments(ragPath);
for (Document document : documents) {
DocumentByLineSplitter splitter = new DocumentByLineSplitter(300,30);
diff --git a/src/main/java/com/ai/controller/LangChainController.java b/src/main/java/com/ai/controller/LangChainController.java
index fa461a2..b97d99a 100644
--- a/src/main/java/com/ai/controller/LangChainController.java
+++ b/src/main/java/com/ai/controller/LangChainController.java
@@ -95,7 +95,7 @@ public class LangChainController {
@GetMapping("/embedd/chat")
public String embeddChat(@RequestParam("input") String input) {
System.out.println("start embedd chat...");
- embeddingService.embedding(input);
+// embeddingService.embedding(input);
return segmentAssist.chat(input);
}