feat(models): implement model configuration dialogs for Azure, Bedrock and Ollama

This commit is contained in:
2025-10-24 15:40:34 +08:00
parent a9b47f776b
commit edba1f049e
6 changed files with 603 additions and 144 deletions

View File

@@ -107,23 +107,25 @@ export const useAzureOpenAIDialog = () => {
dialogState.setLoading(true);
try {
// 调用 Azure OpenAI 特定的 API
await userService.set_api_key({
llm_factory: 'AzureOpenAI',
// llm_name: data.deployment_name,
await userService.add_llm({
llm_factory: data.llm_factory,
llm_name: data.llm_name,
model_type: data.model_type,
api_base: data.api_base,
api_key: data.api_key,
// azure_endpoint: data.azure_endpoint,
// api_version: data.api_version,
// @ts-ignore
api_version: data.api_version,
max_tokens: data.max_tokens,
});
showMessage.success('Azure OpenAI 配置成功');
dialogState.closeDialog();
} catch (error) {
logger.error('Azure OpenAI 配置失败:', error);
showMessage.error('Azure OpenAI 配置失败');
throw error;
} finally {
dialogState.setLoading(false);
}
}, [dialogState]);
}, [dialogState, showMessage]);
return {
...dialogState,
@@ -140,13 +142,15 @@ export const useBedrockDialog = () => {
dialogState.setLoading(true);
try {
// 调用 Bedrock 特定的 API
await userService.set_api_key({
llm_factory: 'Bedrock',
llm_name: '',
api_key: '', // Bedrock 使用 access key
// access_key_id: data.access_key_id,
// secret_access_key: data.secret_access_key,
// region: data.region,
await userService.add_llm({
llm_factory: data.llm_factory,
llm_name: data.llm_name,
model_type: data.model_type,
// @ts-ignore
bedrock_ak: data.bedrock_ak,
bedrock_sk: data.bedrock_sk,
bedrock_region: data.bedrock_region,
max_tokens: data.max_tokens,
});
showMessage.success('AWS Bedrock 配置成功');
dialogState.closeDialog();
@@ -175,9 +179,12 @@ export const useOllamaDialog = () => {
try {
// 调用添加 LLM 的 API
await userService.add_llm({
llm_factory: 'Ollama',
// llm_name: data.model_name,
// base_url: data.base_url,
llm_factory: data.llm_factory,
llm_name: data.llm_name,
model_type: data.model_type,
api_base: data.api_base,
api_key: data.api_key || '',
max_tokens: data.max_tokens,
});
showMessage.success('Ollama 模型添加成功');
dialogState.closeDialog();
@@ -188,7 +195,7 @@ export const useOllamaDialog = () => {
} finally {
dialogState.setLoading(false);
}
}, [dialogState]);
}, [dialogState, showMessage]);
return {
...dialogState,