import { http } from "@/http" export type Protocol = "openai" | "anthropic" export interface Provider { id: number name: string protocol: Protocol base_url: string api_key_hint: string model: string max_tokens: number context_window: number temperature: number | null is_default: boolean updated_at: string } export interface ProviderForm { name: string protocol: Protocol base_url: string /** 编辑时为空表示不修改 */ api_key: string model: string max_tokens: number context_window: number temperature: number | null is_default: boolean } export interface TestResult { ok: boolean elapsed_ms: number reply: string | null error: string | null } export function listProviders(): Promise { return http.get("/settings/providers") } export function createProvider(body: ProviderForm): Promise { return http.post("/settings/providers", body) } export function patchProvider(id: number, body: Partial): Promise { return http.patch(`/settings/providers/${id}`, body) } export function deleteProvider(id: number): Promise { return http.delete(`/settings/providers/${id}`) } export function testProvider(id: number): Promise { // 模型接口超时 120s 且 SDK 会重试,前端放宽等待时间 return http.post(`/settings/providers/${id}/test`, null, { timeout: 400000 }) }