From e290b7e9442f20c293a921ae162fc3568abe0d72 Mon Sep 17 00:00:00 2001 From: Hongbro886 Date: Thu, 30 Jul 2026 15:48:44 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=B8=BA=E4=B8=8D=E5=90=8CAI=E9=A2=84?= =?UTF-8?q?=E8=AE=BE=E6=BA=90=E5=88=87=E6=8D=A2=E5=AF=B9=E5=BA=94=E7=A1=AC?= =?UTF-8?q?=E7=BC=96=E7=A0=81=E5=9C=A8=E4=BB=A3=E7=A0=81=E4=B8=AD=E7=9A=84?= =?UTF-8?q?=E6=A8=A1=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/models/Option.ts | 5 +++++ src/options/Onboarding.tsx | 5 +++++ src/options/SettingsPage.tsx | 5 +++++ src/options/provider.ts | 6 +++++- 4 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/models/Option.ts b/src/models/Option.ts index 2ffa7ac..463aa9d 100644 --- a/src/models/Option.ts +++ b/src/models/Option.ts @@ -5,6 +5,11 @@ export const AI_PROVIDER_BASE_URLS = { deepseek: "https://api.deepseek.com/v1", } as const satisfies Record<"openai" | "deepseek", AbsoluteUrl>; +export const AI_PROVIDER_DEFAULT_MODELS: Record<"openai" | "deepseek", string> = { + openai: "gpt-4o-mini", + deepseek: "deepseek-v4-flash", +}; + export const OPTION_STORAGE_KEY = "brainrest_option"; export type ThemePreference = "system" | "light" | "dark"; diff --git a/src/options/Onboarding.tsx b/src/options/Onboarding.tsx index 6f629ce..81e75fa 100644 --- a/src/options/Onboarding.tsx +++ b/src/options/Onboarding.tsx @@ -6,6 +6,7 @@ import { PRODUCT_BOUNDARY_COPY } from "../ui/bridge"; import { ensureAiOriginPermission } from "./ai-origin-permission"; import { getProviderDefaultBaseUrl, + getProviderDefaultModel, joinProvider, PROVIDER_LABELS, type ProviderChoice, @@ -105,6 +106,10 @@ export default function Onboarding({ onDone }: { onDone: () => void }) { if (defaultBaseUrl) { setBaseUrl(defaultBaseUrl); } + const defaultModel = getProviderDefaultModel(choice); + if (defaultModel) { + setModel(defaultModel); + } }; const isLast = step === STEP_TITLES.length - 1; diff --git a/src/options/SettingsPage.tsx b/src/options/SettingsPage.tsx index de1156d..ae835eb 100644 --- a/src/options/SettingsPage.tsx +++ b/src/options/SettingsPage.tsx @@ -24,6 +24,7 @@ import { createLogger } from "../utils/logger"; import { ensureAiOriginPermission } from "./ai-origin-permission"; import { getProviderDefaultBaseUrl, + getProviderDefaultModel, joinProvider, PROVIDER_LABELS, type ProviderChoice, @@ -162,6 +163,10 @@ export default function SettingsPage({ onOnboardingReset }: { onOnboardingReset: if (defaultBaseUrl) { setBaseUrl(defaultBaseUrl); } + const defaultModel = getProviderDefaultModel(choice); + if (defaultModel) { + setModel(defaultModel); + } }; const changeThemePreference = async (preference: ThemePreference): Promise => { diff --git a/src/options/provider.ts b/src/options/provider.ts index 7bd8987..99f1dda 100644 --- a/src/options/provider.ts +++ b/src/options/provider.ts @@ -1,4 +1,4 @@ -import { AI_PROVIDER_BASE_URLS, type Option } from "../models/Option"; +import { AI_PROVIDER_BASE_URLS, AI_PROVIDER_DEFAULT_MODELS, type Option } from "../models/Option"; import type { AbsoluteUrl } from "../models/types"; /** provider 下拉项:openai / deepseek / 自定义绝对 URL */ @@ -28,6 +28,10 @@ export function getProviderDefaultBaseUrl(choice: ProviderChoice): AbsoluteUrl | return choice === "custom" ? undefined : AI_PROVIDER_BASE_URLS[choice]; } +export function getProviderDefaultModel(choice: ProviderChoice): string | undefined { + return choice === "custom" ? undefined : AI_PROVIDER_DEFAULT_MODELS[choice]; +} + export interface AiProviderConfig { provider: Option["aiProvider"]; baseUrl: AbsoluteUrl;