44import ai .chat2db .server .domain .api .model .Config ;
55import ai .chat2db .server .domain .api .service .ConfigService ;
66import ai .chat2db .server .web .api .util .ApplicationContextUtil ;
7- import com .google .common .collect .Lists ;
8- import com .unfbx .chatgpt .OpenAiStreamClient ;
97import com .unfbx .chatgpt .constant .OpenAIConst ;
108import lombok .extern .slf4j .Slf4j ;
11- import org .apache .commons .lang3 .StringUtils ;
9+
10+ import java .util .Objects ;
1211
1312/**
1413 * @author jipengfei
@@ -35,7 +34,7 @@ public class Chat2dbAIClient {
3534 public static final String CHAT2DB_EMBEDDING_MODEL = "fastchat.embedding.model" ;
3635
3736
38- private static Chat2DBAIStreamClient CHAT2DB_AI_STREAM_CLIENT ;
37+ private static volatile Chat2DBAIStreamClient CHAT2DB_AI_STREAM_CLIENT ;
3938
4039 public static Chat2DBAIStreamClient getInstance () {
4140 if (CHAT2DB_AI_STREAM_CLIENT != null ) {
@@ -57,35 +56,57 @@ private static Chat2DBAIStreamClient singleton() {
5756 }
5857
5958 public static void refresh () {
60- String apikey ;
61- String apiHost = ApplicationContextUtil .getProperty (CHAT2DB_OPENAI_HOST );
62- if (StringUtils .isBlank (apiHost )) {
63- apiHost = OpenAIConst .OPENAI_HOST ;
64- }
6559 ConfigService configService = ApplicationContextUtil .getBean (ConfigService .class );
60+
61+ CHAT2DB_AI_STREAM_CLIENT = Chat2DBAIStreamClient .builder ().apiHost (getApiHost (configService ))
62+ .apiKey (getApiKey (configService )).model (getModel (configService )).build ();
63+ }
64+
65+ private static String getApiHost (ConfigService configService ) {
6666 Config apiHostConfig = configService .find (CHAT2DB_OPENAI_HOST ).getData ();
67- if (apiHostConfig != null ) {
68- apiHost = apiHostConfig .getContent ();
67+
68+ if (Objects .nonNull (apiHostConfig )) {
69+ return apiHostConfig .getContent ();
70+ }
71+
72+ String apiHost = ApplicationContextUtil .getProperty (CHAT2DB_OPENAI_HOST );
73+
74+ if (apiHost .isBlank ()) {
75+ return OpenAIConst .OPENAI_HOST ;
6976 }
77+
78+ return apiHost ;
79+ }
80+
81+ private static String getApiKey (ConfigService configService ) {
82+ String apiKey ;
83+
7084 Config config = configService .find (CHAT2DB_OPENAI_KEY ).getData ();
71- if (config != null ) {
72- apikey = config .getContent ();
85+
86+ if (Objects .nonNull (config )) {
87+ apiKey = config .getContent ();
7388 } else {
74- apikey = ApplicationContextUtil .getProperty (CHAT2DB_OPENAI_KEY );
89+ apiKey = ApplicationContextUtil .getProperty (CHAT2DB_OPENAI_KEY );
7590 }
91+
92+ log .info ("refresh chat2db apikey:{}" , maskApiKey (apiKey ));
93+
94+ return apiKey ;
95+ }
96+
97+ private static String getModel (ConfigService configService ) {
7698 Config modelConfig = configService .find (CHAT2DB_OPENAI_MODEL ).getData ();
77- String model = "" ;
78- if (modelConfig != null ) {
79- model = modelConfig .getContent ();
99+
100+ if (Objects . nonNull ( modelConfig ) ) {
101+ return modelConfig .getContent ();
80102 }
81- log .info ("refresh chat2db apikey:{}" , maskApiKey (apikey ));
82- CHAT2DB_AI_STREAM_CLIENT = Chat2DBAIStreamClient .builder ().apiHost (apiHost )
83- .apiKey (apikey ).model (model ).build ();
103+
104+ return null ;
84105 }
85106
86107 private static String maskApiKey (String input ) {
87- if (input == null ) {
88- return input ;
108+ if (Objects . isNull ( input ) ) {
109+ return null ;
89110 }
90111
91112 StringBuilder maskedString = new StringBuilder (input );
0 commit comments