diff --git a/src/components/providers/forms/ProviderForm.tsx b/src/components/providers/forms/ProviderForm.tsx index 6171bd0..930f40d 100644 --- a/src/components/providers/forms/ProviderForm.tsx +++ b/src/components/providers/forms/ProviderForm.tsx @@ -26,7 +26,7 @@ import { applyTemplateValues } from "@/utils/providerConfigUtils"; import ApiKeyInput from "@/components/ProviderForm/ApiKeyInput"; import EndpointSpeedTest from "@/components/ProviderForm/EndpointSpeedTest"; import { Zap } from "lucide-react"; -import { useProviderCategory, useApiKeyState, useBaseUrlState } from "./hooks"; +import { useProviderCategory, useApiKeyState, useBaseUrlState, useModelState } from "./hooks"; const CLAUDE_DEFAULT_CONFIG = JSON.stringify({ env: {}, config: {} }, null, 2); const CODEX_DEFAULT_CONFIG = JSON.stringify({ auth: {}, config: "" }, null, 2); @@ -123,6 +123,12 @@ export function ProviderForm({ }, }); + // 使用 Model hook + const { claudeModel, claudeSmallFastModel, handleModelChange } = useModelState({ + settingsConfig: form.watch("settingsConfig"), + onConfigChange: (config) => form.setValue("settingsConfig", config), + }); + useEffect(() => { form.reset(defaultValues); }, [defaultValues, form]); @@ -406,6 +412,54 @@ export function ProviderForm({ /> )} + {/* 模型选择器(仅 Claude 非官方供应商显示) */} + {appType === "claude" && category !== "official" && ( +
+
+ {/* ANTHROPIC_MODEL */} +
+ + {t("providerForm.anthropicModel", { defaultValue: "主模型" })} + + handleModelChange("ANTHROPIC_MODEL", e.target.value)} + placeholder={t("providerForm.modelPlaceholder", { + defaultValue: "claude-3-7-sonnet-20250219" + })} + autoComplete="off" + /> +
+ + {/* ANTHROPIC_SMALL_FAST_MODEL */} +
+ + {t("providerForm.anthropicSmallFastModel", { + defaultValue: "快速模型" + })} + + handleModelChange("ANTHROPIC_SMALL_FAST_MODEL", e.target.value)} + placeholder={t("providerForm.smallModelPlaceholder", { + defaultValue: "claude-3-5-haiku-20241022" + })} + autoComplete="off" + /> +
+
+

+ {t("providerForm.modelHelper", { + defaultValue: "可选:指定默认使用的 Claude 模型,留空则使用系统默认。", + })} +

+
+ )} +