fix: show site presets and api key site options
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
use crate::{
|
use crate::{
|
||||||
db::models::account::Account,
|
db::models::{account::Account, site::Site},
|
||||||
error::{AppError, AppResult},
|
error::{AppError, AppResult},
|
||||||
AppState,
|
AppState,
|
||||||
};
|
};
|
||||||
@@ -64,7 +64,17 @@ pub async fn list_accounts(
|
|||||||
.await?
|
.await?
|
||||||
};
|
};
|
||||||
|
|
||||||
Ok(Json(json!({ "data": accounts })))
|
let sites: Vec<Site> =
|
||||||
|
sqlx::query_as::<_, Site>("SELECT * FROM sites ORDER BY sort_order, name")
|
||||||
|
.fetch_all(&*state.db)
|
||||||
|
.await?;
|
||||||
|
|
||||||
|
Ok(Json(json!({
|
||||||
|
"data": accounts,
|
||||||
|
"accounts": accounts,
|
||||||
|
"sites": sites,
|
||||||
|
"generatedAt": chrono::Utc::now().to_rfc3339(),
|
||||||
|
})))
|
||||||
}
|
}
|
||||||
|
|
||||||
/// POST /api/accounts
|
/// POST /api/accounts
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
const presets = [
|
const presets = [
|
||||||
{
|
{
|
||||||
id: 'codingplan-openai',
|
id: 'codingplan-openai',
|
||||||
|
label: '阿里云 Coding Plan (OpenAI)',
|
||||||
platform: 'openai',
|
platform: 'openai',
|
||||||
defaultUrl: 'https://coding.dashscope.aliyuncs.com/v1',
|
defaultUrl: 'https://coding.dashscope.aliyuncs.com/v1',
|
||||||
initialSegment: 'apikey',
|
initialSegment: 'apikey',
|
||||||
@@ -9,6 +10,7 @@ const presets = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 'codingplan-claude',
|
id: 'codingplan-claude',
|
||||||
|
label: '阿里云 Coding Plan (Claude)',
|
||||||
platform: 'claude',
|
platform: 'claude',
|
||||||
defaultUrl: 'https://coding.dashscope.aliyuncs.com/apps/anthropic',
|
defaultUrl: 'https://coding.dashscope.aliyuncs.com/apps/anthropic',
|
||||||
initialSegment: 'apikey',
|
initialSegment: 'apikey',
|
||||||
@@ -17,6 +19,7 @@ const presets = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 'zhipu-coding-plan-openai',
|
id: 'zhipu-coding-plan-openai',
|
||||||
|
label: '智谱清言 Coding Plan (OpenAI)',
|
||||||
platform: 'openai',
|
platform: 'openai',
|
||||||
defaultUrl: 'https://open.bigmodel.cn/api/coding/paas/v4',
|
defaultUrl: 'https://open.bigmodel.cn/api/coding/paas/v4',
|
||||||
initialSegment: 'apikey',
|
initialSegment: 'apikey',
|
||||||
@@ -25,6 +28,7 @@ const presets = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 'zhipu-coding-plan-claude',
|
id: 'zhipu-coding-plan-claude',
|
||||||
|
label: '智谱清言 Coding Plan (Claude)',
|
||||||
platform: 'claude',
|
platform: 'claude',
|
||||||
defaultUrl: 'https://open.bigmodel.cn/api/anthropic',
|
defaultUrl: 'https://open.bigmodel.cn/api/anthropic',
|
||||||
initialSegment: 'apikey',
|
initialSegment: 'apikey',
|
||||||
@@ -33,6 +37,7 @@ const presets = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 'deepseek-openai',
|
id: 'deepseek-openai',
|
||||||
|
label: 'DeepSeek (OpenAI)',
|
||||||
platform: 'openai',
|
platform: 'openai',
|
||||||
defaultUrl: 'https://api.deepseek.com/v1',
|
defaultUrl: 'https://api.deepseek.com/v1',
|
||||||
initialSegment: 'apikey',
|
initialSegment: 'apikey',
|
||||||
@@ -41,6 +46,7 @@ const presets = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 'deepseek-claude',
|
id: 'deepseek-claude',
|
||||||
|
label: 'DeepSeek (Claude)',
|
||||||
platform: 'claude',
|
platform: 'claude',
|
||||||
defaultUrl: 'https://api.deepseek.com/anthropic',
|
defaultUrl: 'https://api.deepseek.com/anthropic',
|
||||||
initialSegment: 'apikey',
|
initialSegment: 'apikey',
|
||||||
@@ -49,6 +55,7 @@ const presets = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 'moonshot-openai',
|
id: 'moonshot-openai',
|
||||||
|
label: 'Moonshot (OpenAI)',
|
||||||
platform: 'openai',
|
platform: 'openai',
|
||||||
defaultUrl: 'https://api.moonshot.cn/v1',
|
defaultUrl: 'https://api.moonshot.cn/v1',
|
||||||
initialSegment: 'apikey',
|
initialSegment: 'apikey',
|
||||||
@@ -57,6 +64,7 @@ const presets = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 'moonshot-claude',
|
id: 'moonshot-claude',
|
||||||
|
label: 'Moonshot (Claude)',
|
||||||
platform: 'claude',
|
platform: 'claude',
|
||||||
defaultUrl: 'https://api.moonshot.cn/anthropic',
|
defaultUrl: 'https://api.moonshot.cn/anthropic',
|
||||||
initialSegment: 'apikey',
|
initialSegment: 'apikey',
|
||||||
@@ -65,6 +73,7 @@ const presets = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 'minimax-openai',
|
id: 'minimax-openai',
|
||||||
|
label: 'MiniMax (OpenAI)',
|
||||||
platform: 'openai',
|
platform: 'openai',
|
||||||
defaultUrl: 'https://api.minimaxi.com/v1',
|
defaultUrl: 'https://api.minimaxi.com/v1',
|
||||||
initialSegment: 'apikey',
|
initialSegment: 'apikey',
|
||||||
@@ -73,6 +82,7 @@ const presets = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 'minimax-claude',
|
id: 'minimax-claude',
|
||||||
|
label: 'MiniMax (Claude)',
|
||||||
platform: 'claude',
|
platform: 'claude',
|
||||||
defaultUrl: 'https://api.minimaxi.com/anthropic',
|
defaultUrl: 'https://api.minimaxi.com/anthropic',
|
||||||
initialSegment: 'apikey',
|
initialSegment: 'apikey',
|
||||||
@@ -81,6 +91,7 @@ const presets = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 'modelscope-openai',
|
id: 'modelscope-openai',
|
||||||
|
label: 'ModelScope (OpenAI)',
|
||||||
platform: 'openai',
|
platform: 'openai',
|
||||||
defaultUrl: 'https://api-inference.modelscope.cn/v1',
|
defaultUrl: 'https://api-inference.modelscope.cn/v1',
|
||||||
initialSegment: 'apikey',
|
initialSegment: 'apikey',
|
||||||
@@ -93,6 +104,7 @@ const presets = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 'modelscope-claude',
|
id: 'modelscope-claude',
|
||||||
|
label: 'ModelScope (Claude)',
|
||||||
platform: 'claude',
|
platform: 'claude',
|
||||||
defaultUrl: 'https://api-inference.modelscope.cn',
|
defaultUrl: 'https://api-inference.modelscope.cn',
|
||||||
initialSegment: 'apikey',
|
initialSegment: 'apikey',
|
||||||
@@ -101,6 +113,7 @@ const presets = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 'doubao-coding-openai',
|
id: 'doubao-coding-openai',
|
||||||
|
label: '豆包 Coding Plan (OpenAI)',
|
||||||
platform: 'openai',
|
platform: 'openai',
|
||||||
defaultUrl: 'https://ark.cn-beijing.volces.com/api/coding/v3',
|
defaultUrl: 'https://ark.cn-beijing.volces.com/api/coding/v3',
|
||||||
initialSegment: 'apikey',
|
initialSegment: 'apikey',
|
||||||
@@ -128,6 +141,8 @@ const rootReselect = [
|
|||||||
{ rootPrefix: 'https://coding.dashscope.aliyuncs.com', id: 'codingplan-openai' },
|
{ rootPrefix: 'https://coding.dashscope.aliyuncs.com', id: 'codingplan-openai' },
|
||||||
];
|
];
|
||||||
export function getSiteInitializationPreset(id) {
|
export function getSiteInitializationPreset(id) {
|
||||||
|
if (!id)
|
||||||
|
return undefined;
|
||||||
return presets.find((p) => p.id === id);
|
return presets.find((p) => p.id === id);
|
||||||
}
|
}
|
||||||
export function listSiteInitializationPresets() {
|
export function listSiteInitializationPresets() {
|
||||||
|
|||||||
Reference in New Issue
Block a user