Skip to content

Commit b2d4efa

Browse files
authored
fix(ai): 为不同AI预设源切换对应硬编码在代码中的模型
1 parent dd1e356 commit b2d4efa

4 files changed

Lines changed: 20 additions & 1 deletion

File tree

src/models/Option.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,11 @@ export const AI_PROVIDER_BASE_URLS = {
55
deepseek: "https://api.deepseek.com/v1",
66
} as const satisfies Record<"openai" | "deepseek", AbsoluteUrl>;
77

8+
export const AI_PROVIDER_DEFAULT_MODELS: Record<"openai" | "deepseek", string> = {
9+
openai: "gpt-4o-mini",
10+
deepseek: "deepseek-v4-flash",
11+
};
12+
813
export const OPTION_STORAGE_KEY = "brainrest_option";
914

1015
export type ThemePreference = "system" | "light" | "dark";

src/options/Onboarding.tsx

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import { PRODUCT_BOUNDARY_COPY } from "../ui/bridge";
66
import { ensureAiOriginPermission } from "./ai-origin-permission";
77
import {
88
getProviderDefaultBaseUrl,
9+
getProviderDefaultModel,
910
joinProvider,
1011
PROVIDER_LABELS,
1112
type ProviderChoice,
@@ -105,6 +106,10 @@ export default function Onboarding({ onDone }: { onDone: () => void }) {
105106
if (defaultBaseUrl) {
106107
setBaseUrl(defaultBaseUrl);
107108
}
109+
const defaultModel = getProviderDefaultModel(choice);
110+
if (defaultModel) {
111+
setModel(defaultModel);
112+
}
108113
};
109114

110115
const isLast = step === STEP_TITLES.length - 1;

src/options/SettingsPage.tsx

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import { createLogger } from "../utils/logger";
2424
import { ensureAiOriginPermission } from "./ai-origin-permission";
2525
import {
2626
getProviderDefaultBaseUrl,
27+
getProviderDefaultModel,
2728
joinProvider,
2829
PROVIDER_LABELS,
2930
type ProviderChoice,
@@ -162,6 +163,10 @@ export default function SettingsPage({ onOnboardingReset }: { onOnboardingReset:
162163
if (defaultBaseUrl) {
163164
setBaseUrl(defaultBaseUrl);
164165
}
166+
const defaultModel = getProviderDefaultModel(choice);
167+
if (defaultModel) {
168+
setModel(defaultModel);
169+
}
165170
};
166171

167172
const changeThemePreference = async (preference: ThemePreference): Promise<void> => {

src/options/provider.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { AI_PROVIDER_BASE_URLS, type Option } from "../models/Option";
1+
import { AI_PROVIDER_BASE_URLS, AI_PROVIDER_DEFAULT_MODELS, type Option } from "../models/Option";
22
import type { AbsoluteUrl } from "../models/types";
33

44
/** provider 下拉项:openai / deepseek / 自定义绝对 URL */
@@ -28,6 +28,10 @@ export function getProviderDefaultBaseUrl(choice: ProviderChoice): AbsoluteUrl |
2828
return choice === "custom" ? undefined : AI_PROVIDER_BASE_URLS[choice];
2929
}
3030

31+
export function getProviderDefaultModel(choice: ProviderChoice): string | undefined {
32+
return choice === "custom" ? undefined : AI_PROVIDER_DEFAULT_MODELS[choice];
33+
}
34+
3135
export interface AiProviderConfig {
3236
provider: Option["aiProvider"];
3337
baseUrl: AbsoluteUrl;

0 commit comments

Comments
 (0)