mirror of
https://github.com/tencentmusic/supersonic.git
synced 2025-12-12 04:27:39 +00:00
(improvement)(chat) The vector database supports configuring the dimensions field. (#1535)
This commit is contained in:
@@ -6,6 +6,7 @@ import com.tencent.supersonic.common.pojo.EmbeddingStoreConfig;
|
|||||||
import com.tencent.supersonic.common.pojo.Parameter;
|
import com.tencent.supersonic.common.pojo.Parameter;
|
||||||
import dev.langchain4j.store.embedding.EmbeddingStoreType;
|
import dev.langchain4j.store.embedding.EmbeddingStoreType;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -65,11 +66,24 @@ public class EmbeddingStoreParameterConfig extends ParameterConfig {
|
|||||||
"超时时间(秒)", "",
|
"超时时间(秒)", "",
|
||||||
"number", "向量库配置");
|
"number", "向量库配置");
|
||||||
|
|
||||||
|
public static final Parameter EMBEDDING_STORE_DIMENSION =
|
||||||
|
new Parameter("s2.embedding.store.dimension", "",
|
||||||
|
"纬度", "",
|
||||||
|
"number", "向量库配置", null,
|
||||||
|
getDependency(EMBEDDING_STORE_PROVIDER.getName(),
|
||||||
|
Lists.newArrayList(
|
||||||
|
EmbeddingStoreType.MILVUS.name()
|
||||||
|
),
|
||||||
|
ImmutableMap.of(
|
||||||
|
EmbeddingStoreType.MILVUS.name(), "384"
|
||||||
|
)
|
||||||
|
));
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<Parameter> getSysParameters() {
|
public List<Parameter> getSysParameters() {
|
||||||
return Lists.newArrayList(
|
return Lists.newArrayList(
|
||||||
EMBEDDING_STORE_PROVIDER, EMBEDDING_STORE_BASE_URL, EMBEDDING_STORE_API_KEY,
|
EMBEDDING_STORE_PROVIDER, EMBEDDING_STORE_BASE_URL, EMBEDDING_STORE_API_KEY,
|
||||||
EMBEDDING_STORE_PERSIST_PATH, EMBEDDING_STORE_TIMEOUT
|
EMBEDDING_STORE_PERSIST_PATH, EMBEDDING_STORE_TIMEOUT, EMBEDDING_STORE_DIMENSION
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -79,13 +93,17 @@ public class EmbeddingStoreParameterConfig extends ParameterConfig {
|
|||||||
String apiKey = getParameterValue(EMBEDDING_STORE_API_KEY);
|
String apiKey = getParameterValue(EMBEDDING_STORE_API_KEY);
|
||||||
String persistPath = getParameterValue(EMBEDDING_STORE_PERSIST_PATH);
|
String persistPath = getParameterValue(EMBEDDING_STORE_PERSIST_PATH);
|
||||||
String timeOut = getParameterValue(EMBEDDING_STORE_TIMEOUT);
|
String timeOut = getParameterValue(EMBEDDING_STORE_TIMEOUT);
|
||||||
|
Integer dimension = null;
|
||||||
|
if (StringUtils.isNumeric(getParameterValue(EMBEDDING_STORE_DIMENSION))) {
|
||||||
|
dimension = Integer.valueOf(getParameterValue(EMBEDDING_STORE_DIMENSION));
|
||||||
|
}
|
||||||
return EmbeddingStoreConfig.builder()
|
return EmbeddingStoreConfig.builder()
|
||||||
.provider(provider)
|
.provider(provider)
|
||||||
.baseUrl(baseUrl)
|
.baseUrl(baseUrl)
|
||||||
.apiKey(apiKey)
|
.apiKey(apiKey)
|
||||||
.persistPath(persistPath)
|
.persistPath(persistPath)
|
||||||
.timeOut(Long.valueOf(timeOut))
|
.timeOut(Long.valueOf(timeOut))
|
||||||
|
.dimension(dimension)
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -20,4 +20,5 @@ public class EmbeddingStoreConfig implements Serializable {
|
|||||||
private String baseUrl;
|
private String baseUrl;
|
||||||
private String apiKey;
|
private String apiKey;
|
||||||
private Long timeOut = 60L;
|
private Long timeOut = 60L;
|
||||||
|
private Integer dimension;
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user