(improvement)(chat) Fix the error in Milvus query and add the option to create EmbeddingStore based on caching mode (#1310)

This commit is contained in:
lexluo09
2024-07-01 16:29:43 +08:00
committed by GitHub
parent 37d08007c4
commit 7773442fbf
11 changed files with 489 additions and 104 deletions

View File

@@ -23,4 +23,5 @@ class EmbeddingStoreProperties {
private ConsistencyLevelEnum consistencyLevel;
private Boolean retrieveEmbeddingsOnSearch;
private String databaseName;
private Boolean autoFlushOnInsert;
}

View File

@@ -1,11 +1,11 @@
package dev.langchain4j.milvus.spring;
import dev.langchain4j.data.segment.TextSegment;
import dev.langchain4j.store.embedding.BaseEmbeddingStoreFactory;
import dev.langchain4j.store.embedding.EmbeddingStore;
import dev.langchain4j.store.embedding.EmbeddingStoreFactory;
import dev.langchain4j.store.embedding.milvus.MilvusEmbeddingStore;
public class MilvusEmbeddingStoreFactory implements EmbeddingStoreFactory {
public class MilvusEmbeddingStoreFactory extends BaseEmbeddingStoreFactory {
private final Properties properties;
public MilvusEmbeddingStoreFactory(Properties properties) {
@@ -13,22 +13,23 @@ public class MilvusEmbeddingStoreFactory implements EmbeddingStoreFactory {
}
@Override
public EmbeddingStore<TextSegment> create(String collectionName) {
EmbeddingStoreProperties embeddingStore = properties.getEmbeddingStore();
public EmbeddingStore<TextSegment> createEmbeddingStore(String collectionName) {
EmbeddingStoreProperties storeProperties = properties.getEmbeddingStore();
return MilvusEmbeddingStore.builder()
.host(embeddingStore.getHost())
.port(embeddingStore.getPort())
.host(storeProperties.getHost())
.port(storeProperties.getPort())
.collectionName(collectionName)
.dimension(embeddingStore.getDimension())
.indexType(embeddingStore.getIndexType())
.metricType(embeddingStore.getMetricType())
.uri(embeddingStore.getUri())
.token(embeddingStore.getToken())
.username(embeddingStore.getUsername())
.password(embeddingStore.getPassword())
.consistencyLevel(embeddingStore.getConsistencyLevel())
.retrieveEmbeddingsOnSearch(embeddingStore.getRetrieveEmbeddingsOnSearch())
.databaseName(embeddingStore.getDatabaseName())
.dimension(storeProperties.getDimension())
.indexType(storeProperties.getIndexType())
.metricType(storeProperties.getMetricType())
.uri(storeProperties.getUri())
.token(storeProperties.getToken())
.username(storeProperties.getUsername())
.password(storeProperties.getPassword())
.consistencyLevel(storeProperties.getConsistencyLevel())
.retrieveEmbeddingsOnSearch(storeProperties.getRetrieveEmbeddingsOnSearch())
.autoFlushOnInsert(storeProperties.getAutoFlushOnInsert())
.databaseName(storeProperties.getDatabaseName())
.build();
}
}