Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions src/models/Option.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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";
Expand Down
5 changes: 5 additions & 0 deletions src/options/Onboarding.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down Expand Up @@ -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;
Expand Down
5 changes: 5 additions & 0 deletions src/options/SettingsPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ import { createLogger } from "../utils/logger";
import { ensureAiOriginPermission } from "./ai-origin-permission";
import {
getProviderDefaultBaseUrl,
getProviderDefaultModel,
joinProvider,
PROVIDER_LABELS,
type ProviderChoice,
Expand Down Expand Up @@ -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<void> => {
Expand Down
6 changes: 5 additions & 1 deletion src/options/provider.ts
Original file line number Diff line number Diff line change
@@ -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 */
Expand Down Expand Up @@ -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;
Expand Down
Loading