mirror of
https://github.com/CodePhiliaX/Chat2DB.git
synced 2025-07-30 11:12:55 +08:00
Merge pull request #872 from evrentan/reafactor/refactor-Chat2dbAIClient-class
refactor(Chat2dbAIClient): refactor Chat2dbAIClient class
This commit is contained in:
@ -4,11 +4,10 @@ package ai.chat2db.server.web.api.controller.ai.chat2db.client;
|
|||||||
import ai.chat2db.server.domain.api.model.Config;
|
import ai.chat2db.server.domain.api.model.Config;
|
||||||
import ai.chat2db.server.domain.api.service.ConfigService;
|
import ai.chat2db.server.domain.api.service.ConfigService;
|
||||||
import ai.chat2db.server.web.api.util.ApplicationContextUtil;
|
import ai.chat2db.server.web.api.util.ApplicationContextUtil;
|
||||||
import com.google.common.collect.Lists;
|
|
||||||
import com.unfbx.chatgpt.OpenAiStreamClient;
|
|
||||||
import com.unfbx.chatgpt.constant.OpenAIConst;
|
import com.unfbx.chatgpt.constant.OpenAIConst;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author jipengfei
|
* @author jipengfei
|
||||||
@ -35,7 +34,7 @@ public class Chat2dbAIClient {
|
|||||||
public static final String CHAT2DB_EMBEDDING_MODEL= "fastchat.embedding.model";
|
public static final String CHAT2DB_EMBEDDING_MODEL= "fastchat.embedding.model";
|
||||||
|
|
||||||
|
|
||||||
private static Chat2DBAIStreamClient CHAT2DB_AI_STREAM_CLIENT;
|
private static volatile Chat2DBAIStreamClient CHAT2DB_AI_STREAM_CLIENT;
|
||||||
|
|
||||||
public static Chat2DBAIStreamClient getInstance() {
|
public static Chat2DBAIStreamClient getInstance() {
|
||||||
if (CHAT2DB_AI_STREAM_CLIENT != null) {
|
if (CHAT2DB_AI_STREAM_CLIENT != null) {
|
||||||
@ -57,35 +56,57 @@ public class Chat2dbAIClient {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static void refresh() {
|
public static void refresh() {
|
||||||
String apikey;
|
|
||||||
String apiHost = ApplicationContextUtil.getProperty(CHAT2DB_OPENAI_HOST);
|
|
||||||
if (StringUtils.isBlank(apiHost)) {
|
|
||||||
apiHost = OpenAIConst.OPENAI_HOST;
|
|
||||||
}
|
|
||||||
ConfigService configService = ApplicationContextUtil.getBean(ConfigService.class);
|
ConfigService configService = ApplicationContextUtil.getBean(ConfigService.class);
|
||||||
|
|
||||||
|
CHAT2DB_AI_STREAM_CLIENT = Chat2DBAIStreamClient.builder().apiHost(getApiHost(configService))
|
||||||
|
.apiKey(getApiKey(configService)).model(getModel(configService)).build();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static String getApiHost(ConfigService configService) {
|
||||||
Config apiHostConfig = configService.find(CHAT2DB_OPENAI_HOST).getData();
|
Config apiHostConfig = configService.find(CHAT2DB_OPENAI_HOST).getData();
|
||||||
if (apiHostConfig != null) {
|
|
||||||
apiHost = apiHostConfig.getContent();
|
if (Objects.nonNull(apiHostConfig)) {
|
||||||
|
return apiHostConfig.getContent();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String apiHost = ApplicationContextUtil.getProperty(CHAT2DB_OPENAI_HOST);
|
||||||
|
|
||||||
|
if (apiHost.isBlank()) {
|
||||||
|
return OpenAIConst.OPENAI_HOST;
|
||||||
|
}
|
||||||
|
|
||||||
|
return apiHost;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static String getApiKey(ConfigService configService) {
|
||||||
|
String apiKey;
|
||||||
|
|
||||||
Config config = configService.find(CHAT2DB_OPENAI_KEY).getData();
|
Config config = configService.find(CHAT2DB_OPENAI_KEY).getData();
|
||||||
if (config != null) {
|
|
||||||
apikey = config.getContent();
|
if (Objects.nonNull(config)) {
|
||||||
|
apiKey = config.getContent();
|
||||||
} else {
|
} else {
|
||||||
apikey = ApplicationContextUtil.getProperty(CHAT2DB_OPENAI_KEY);
|
apiKey = ApplicationContextUtil.getProperty(CHAT2DB_OPENAI_KEY);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
log.info("refresh chat2db apikey:{}", maskApiKey(apiKey));
|
||||||
|
|
||||||
|
return apiKey;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static String getModel(ConfigService configService) {
|
||||||
Config modelConfig = configService.find(CHAT2DB_OPENAI_MODEL).getData();
|
Config modelConfig = configService.find(CHAT2DB_OPENAI_MODEL).getData();
|
||||||
String model = "";
|
|
||||||
if (modelConfig != null) {
|
if (Objects.nonNull(modelConfig)) {
|
||||||
model = modelConfig.getContent();
|
return modelConfig.getContent();
|
||||||
}
|
}
|
||||||
log.info("refresh chat2db apikey:{}", maskApiKey(apikey));
|
|
||||||
CHAT2DB_AI_STREAM_CLIENT = Chat2DBAIStreamClient.builder().apiHost(apiHost)
|
return null;
|
||||||
.apiKey(apikey).model(model).build();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static String maskApiKey(String input) {
|
private static String maskApiKey(String input) {
|
||||||
if (input == null) {
|
if (Objects.isNull(input)) {
|
||||||
return input;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
StringBuilder maskedString = new StringBuilder(input);
|
StringBuilder maskedString = new StringBuilder(input);
|
||||||
|
Reference in New Issue
Block a user