Files
jocay 283f40892a 优化 API 配置:一个弹窗完成接口、Key 与模型选择
- 去掉预设供应商,直接选择接口类型并填写 Base URL、API Key
- 可在保存前从接口拉取模型,搜索并勾选多个;也可手动输入模型名
- 适配中转站:漏写 /v1(Gemini 为 /v1beta)时自动补全,同时发送 Bearer 与官方鉴权头
- 保存时服务端同步连接下的模型列表;编辑时不填 Key 也可拉取
- 单模型测试与参数设置;手机端布局优化

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 02:23:09 +08:00

27 lines
788 B
TypeScript

import { z } from 'zod'
const schema = z.object({
name: z.string().default(''),
type: z.enum(['openai-compatible', 'anthropic', 'google']),
baseUrl: z.string().default(''),
apiKey: z.string().default(''),
models: z.array(z.string()).default([])
})
/** 新建 API 连接,并一次性添加所选模型 */
export default defineEventHandler(async (event) => {
const body = await readJson(event, schema)
const id = newId()
useDb().transaction(() => {
useDb().insert(tables.providers).values({
id,
name: body.name.trim() || defaultProviderName(body.type, body.baseUrl),
type: body.type,
baseUrl: body.baseUrl.trim(),
apiKeyEnc: encryptSecret(body.apiKey.trim())
}).run()
syncProviderModels(id, body.models)
})
return { id }
})