mirror of
https://github.com/tencentmusic/supersonic.git
synced 2025-12-11 12:07:42 +00:00
(improvement)(chat) Remove initial default values, make the configuration file settings take effect, and optimize the code. (#1406)
This commit is contained in:
@@ -24,7 +24,7 @@ public class InMemoryAutoConfig {
|
||||
@Bean
|
||||
@ConditionalOnProperty(PREFIX + ".embedding-store.persist-path")
|
||||
EmbeddingStoreFactory inMemoryChatModel(Properties properties) {
|
||||
return new InMemoryEmbeddingStoreFactory(properties);
|
||||
return new InMemoryEmbeddingStoreFactory(properties.getEmbeddingStore());
|
||||
}
|
||||
|
||||
@Bean
|
||||
|
||||
@@ -23,22 +23,20 @@ import java.util.concurrent.CopyOnWriteArraySet;
|
||||
public class InMemoryEmbeddingStoreFactory extends BaseEmbeddingStoreFactory {
|
||||
|
||||
public static final String PERSISTENT_FILE_PRE = "InMemory.";
|
||||
private Properties properties;
|
||||
private EmbeddingStoreProperties embeddingStore;
|
||||
|
||||
public InMemoryEmbeddingStoreFactory(EmbeddingStoreConfig storeConfig) {
|
||||
this(createPropertiesFromConfig(storeConfig));
|
||||
}
|
||||
|
||||
public InMemoryEmbeddingStoreFactory(Properties properties) {
|
||||
this.properties = properties;
|
||||
public InMemoryEmbeddingStoreFactory(EmbeddingStoreProperties embeddingStore) {
|
||||
this.embeddingStore = embeddingStore;
|
||||
}
|
||||
|
||||
private static Properties createPropertiesFromConfig(EmbeddingStoreConfig storeConfig) {
|
||||
Properties properties = new Properties();
|
||||
private static EmbeddingStoreProperties createPropertiesFromConfig(EmbeddingStoreConfig storeConfig) {
|
||||
EmbeddingStoreProperties embeddingStore = new EmbeddingStoreProperties();
|
||||
BeanUtils.copyProperties(storeConfig, embeddingStore);
|
||||
properties.setEmbeddingStore(embeddingStore);
|
||||
return properties;
|
||||
return embeddingStore;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -97,7 +95,7 @@ public class InMemoryEmbeddingStoreFactory extends BaseEmbeddingStoreFactory {
|
||||
|
||||
private Path getPersistPath(String collectionName) {
|
||||
String persistFile = PERSISTENT_FILE_PRE + collectionName;
|
||||
String persistPath = properties.getEmbeddingStore().getPersistPath();
|
||||
String persistPath = embeddingStore.getPersistPath();
|
||||
if (StringUtils.isEmpty(persistPath)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -15,6 +15,6 @@ public class MilvusAutoConfig {
|
||||
@Bean
|
||||
@ConditionalOnProperty(PREFIX + ".embedding-store.uri")
|
||||
EmbeddingStoreFactory milvusChatModel(Properties properties) {
|
||||
return new MilvusEmbeddingStoreFactory(properties);
|
||||
return new MilvusEmbeddingStoreFactory(properties.getEmbeddingStore());
|
||||
}
|
||||
}
|
||||
@@ -8,28 +8,25 @@ import dev.langchain4j.store.embedding.milvus.MilvusEmbeddingStore;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
|
||||
public class MilvusEmbeddingStoreFactory extends BaseEmbeddingStoreFactory {
|
||||
private final Properties properties;
|
||||
private final EmbeddingStoreProperties storeProperties;
|
||||
|
||||
public MilvusEmbeddingStoreFactory(EmbeddingStoreConfig storeConfig) {
|
||||
this(createPropertiesFromConfig(storeConfig));
|
||||
}
|
||||
|
||||
public MilvusEmbeddingStoreFactory(Properties properties) {
|
||||
this.properties = properties;
|
||||
public MilvusEmbeddingStoreFactory(EmbeddingStoreProperties storeProperties) {
|
||||
this.storeProperties = storeProperties;
|
||||
}
|
||||
|
||||
private static Properties createPropertiesFromConfig(EmbeddingStoreConfig storeConfig) {
|
||||
Properties properties = new Properties();
|
||||
private static EmbeddingStoreProperties createPropertiesFromConfig(EmbeddingStoreConfig storeConfig) {
|
||||
EmbeddingStoreProperties embeddingStore = new EmbeddingStoreProperties();
|
||||
BeanUtils.copyProperties(storeConfig, embeddingStore);
|
||||
embeddingStore.setUri(storeConfig.getBaseUrl());
|
||||
properties.setEmbeddingStore(embeddingStore);
|
||||
return properties;
|
||||
return embeddingStore;
|
||||
}
|
||||
|
||||
@Override
|
||||
public EmbeddingStore<TextSegment> createEmbeddingStore(String collectionName) {
|
||||
EmbeddingStoreProperties storeProperties = properties.getEmbeddingStore();
|
||||
return MilvusEmbeddingStore.builder()
|
||||
.host(storeProperties.getHost())
|
||||
.port(storeProperties.getPort())
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package dev.langchain4j.provider;
|
||||
|
||||
import com.tencent.supersonic.common.config.EmbeddingModelParameterConfig;
|
||||
import com.tencent.supersonic.common.pojo.ChatModelConfig;
|
||||
import com.tencent.supersonic.common.pojo.EmbeddingModelConfig;
|
||||
import com.tencent.supersonic.common.util.ContextUtils;
|
||||
@@ -31,6 +32,13 @@ public class ModelProvider {
|
||||
throw new RuntimeException("Unsupported ChatLanguageModel provider: " + modelConfig.getProvider());
|
||||
}
|
||||
|
||||
public static EmbeddingModel getEmbeddingModel() {
|
||||
EmbeddingModelParameterConfig parameterConfig = ContextUtils.getBean(
|
||||
EmbeddingModelParameterConfig.class);
|
||||
EmbeddingModelConfig embeddingModelConfig = parameterConfig.convert();
|
||||
return getEmbeddingModel(embeddingModelConfig);
|
||||
}
|
||||
|
||||
public static EmbeddingModel getEmbeddingModel(EmbeddingModelConfig embeddingModel) {
|
||||
if (embeddingModel == null || StringUtils.isBlank(embeddingModel.getProvider())) {
|
||||
return ContextUtils.getBean(EmbeddingModel.class);
|
||||
|
||||
Reference in New Issue
Block a user