mirror of
https://github.com/tencentmusic/supersonic.git
synced 2025-12-10 11:07:06 +00:00
40 lines
1.8 KiB
Java
40 lines
1.8 KiB
Java
package dev.langchain4j.provider;
|
|
|
|
import com.tencent.supersonic.common.pojo.ChatModelConfig;
|
|
import com.tencent.supersonic.common.pojo.EmbeddingModelConfig;
|
|
import dev.langchain4j.model.chat.ChatLanguageModel;
|
|
import dev.langchain4j.model.dashscope.QwenChatModel;
|
|
import dev.langchain4j.model.dashscope.QwenEmbeddingModel;
|
|
import dev.langchain4j.model.dashscope.QwenModelName;
|
|
import dev.langchain4j.model.embedding.EmbeddingModel;
|
|
import org.springframework.beans.factory.InitializingBean;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
@Service
|
|
public class DashscopeModelFactory implements ModelFactory, InitializingBean {
|
|
public static final String PROVIDER = "DASHSCOPE";
|
|
public static final String DEFAULT_BASE_URL = "https://dashscope.aliyuncs.com/api/v1";
|
|
public static final String DEFAULT_MODEL_NAME = QwenModelName.QWEN_PLUS;
|
|
public static final String DEFAULT_EMBEDDING_MODEL_NAME = "text-embedding-v2";
|
|
|
|
@Override
|
|
public ChatLanguageModel createChatModel(ChatModelConfig modelConfig) {
|
|
return QwenChatModel.builder().baseUrl(modelConfig.getBaseUrl())
|
|
.apiKey(modelConfig.getApiKey()).modelName(modelConfig.getModelName())
|
|
.temperature(modelConfig.getTemperature() == null ? 0L
|
|
: modelConfig.getTemperature().floatValue())
|
|
.topP(modelConfig.getTopP()).enableSearch(modelConfig.getEnableSearch()).build();
|
|
}
|
|
|
|
@Override
|
|
public EmbeddingModel createEmbeddingModel(EmbeddingModelConfig embeddingModelConfig) {
|
|
return QwenEmbeddingModel.builder().apiKey(embeddingModelConfig.getApiKey())
|
|
.modelName(embeddingModelConfig.getModelName()).build();
|
|
}
|
|
|
|
@Override
|
|
public void afterPropertiesSet() {
|
|
ModelProvider.add(PROVIDER, this);
|
|
}
|
|
}
|