(improvement)(chat) Support large models qianfan, zhipu, Azure, LocalAi, Dashscope, and handle the apiKey configuration as hidden. (#1552)

This commit is contained in:
lexluo09
2024-08-11 23:28:24 +08:00
committed by GitHub
parent 2f2f493d17
commit 8b01dac8d4
12 changed files with 315 additions and 184 deletions

View File

@@ -4,6 +4,7 @@ import com.tencent.supersonic.common.pojo.ChatModelConfig;
import com.tencent.supersonic.common.pojo.EmbeddingModelConfig;
import dev.langchain4j.model.chat.ChatLanguageModel;
import dev.langchain4j.model.embedding.EmbeddingModel;
import dev.langchain4j.model.qianfan.QianfanChatModel;
import dev.langchain4j.model.qianfan.QianfanEmbeddingModel;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.stereotype.Service;
@@ -12,10 +13,22 @@ import org.springframework.stereotype.Service;
public class QianfanModelFactory implements ModelFactory, InitializingBean {
public static final String PROVIDER = "QIANFAN";
public static final String DEFAULT_BASE_URL = "https://aip.baidubce.com";
@Override
public ChatLanguageModel createChatModel(ChatModelConfig modelConfig) {
return null;
return QianfanChatModel.builder()
.baseUrl(modelConfig.getBaseUrl())
.apiKey(modelConfig.getApiKey())
.secretKey(modelConfig.getSecretKey())
.endpoint(modelConfig.getEndpoint())
.modelName(modelConfig.getModelName())
.temperature(modelConfig.getTemperature())
.topP(modelConfig.getTopP())
.maxRetries(modelConfig.getMaxRetries())
.logRequests(modelConfig.getLogRequests())
.logResponses(modelConfig.getLogResponses())
.build();
}
@Override