add azure openai support

This commit is contained in:
robin
2023-06-29 20:05:59 +08:00
parent 9f496f5f45
commit fe64ddbd35
2 changed files with 28 additions and 5 deletions

View File

@ -14,6 +14,7 @@ import ai.chat2db.server.domain.api.service.ConfigService;
import ai.chat2db.server.tools.base.wrapper.result.ActionResult;
import ai.chat2db.server.tools.base.wrapper.result.DataResult;
import ai.chat2db.server.web.api.aspect.ConnectionInfoAspect;
import ai.chat2db.server.web.api.controller.ai.azure.client.AzureOpenAIClient;
import ai.chat2db.server.web.api.controller.config.request.AISystemConfigRequest;
import ai.chat2db.server.web.api.controller.config.request.SystemConfigRequest;
import ai.chat2db.server.web.api.util.OpenAIClient;
@ -64,10 +65,14 @@ public class ConfigController {
SystemConfigParam param = SystemConfigParam.builder().code(RestAIClient.AI_SQL_SOURCE).content(sqlSource)
.build();
configService.createOrUpdate(param);
if (AiSqlSourceEnum.OPENAI.getCode().equals(sqlSource)) {
saveOpenAIConfig(request);
} else {
saveRestAIConfig(request);
AiSqlSourceEnum aiSqlSourceEnum = AiSqlSourceEnum.getByName(sqlSource);
switch (Objects.requireNonNull(aiSqlSourceEnum)) {
case OPENAI :
saveOpenAIConfig(request);
case RESTAI :
saveRestAIConfig(request);
case AZUREAI :
saveAzureAIConfig(request);
}
return ActionResult.isSuccess();
}
@ -111,6 +116,24 @@ public class ConfigController {
RestAIClient.refresh();
}
/**
* 保存azure配置
*
* @param request
*/
private void saveAzureAIConfig(AISystemConfigRequest request) {
SystemConfigParam apikeyParam = SystemConfigParam.builder().code(AzureOpenAIClient.AZURE_CHATGPT_API_KEY).content(
request.getAzureApiKey()).build();
configService.createOrUpdate(apikeyParam);
SystemConfigParam endpointParam = SystemConfigParam.builder().code(AzureOpenAIClient.AZURE_CHATGPT_ENDPOINT).content(
request.getAzureEndpoint()).build();
configService.createOrUpdate(endpointParam);
SystemConfigParam modelParam = SystemConfigParam.builder().code(AzureOpenAIClient.AZURE_CHATGPT_DEPLOYMENT_ID).content(
request.getAzureDeploymentId()).build();
configService.createOrUpdate(modelParam);
RestAIClient.refresh();
}
@GetMapping("/system_config/{code}")
public DataResult<Config> getSystemConfig(@PathVariable("code") String code) {
DataResult<Config> result = configService.find(code);

View File

@ -68,7 +68,7 @@ public class AISystemConfigRequest {
private String azureEndpoint;
/**
* deployment id of the deployed model
* deploymentId of the deployed model, default gpt-3.5-turbo
*/
private String azureDeploymentId;
}