From 162800e18e88fe71834cc349b36c9cfe7d5c3ad4 Mon Sep 17 00:00:00 2001 From: Jason Date: Fri, 30 Jan 2026 15:22:39 +0800 Subject: [PATCH] feat(claude): add apiFormat support for provider presets Allow preset providers to specify API format (anthropic or openai_chat), enabling third-party proxy services that use OpenAI Chat Completions format. --- src/components/providers/forms/ProviderForm.tsx | 8 ++++++++ src/config/claudeProviderPresets.ts | 5 +++++ 2 files changed, 13 insertions(+) diff --git a/src/components/providers/forms/ProviderForm.tsx b/src/components/providers/forms/ProviderForm.tsx index e2258e8ff..c05dd38b3 100644 --- a/src/components/providers/forms/ProviderForm.tsx +++ b/src/components/providers/forms/ProviderForm.tsx @@ -1139,6 +1139,14 @@ export function ProviderForm({ preset.templateValues, ); + // Sync preset's apiFormat to local state (for Claude providers) + if (preset.apiFormat) { + setLocalApiFormat(preset.apiFormat); + } else { + // Reset to default if preset doesn't specify apiFormat + setLocalApiFormat("anthropic"); + } + form.reset({ name: preset.name, websiteUrl: preset.websiteUrl ?? "", diff --git a/src/config/claudeProviderPresets.ts b/src/config/claudeProviderPresets.ts index bb6abc479..0b117c4ac 100644 --- a/src/config/claudeProviderPresets.ts +++ b/src/config/claudeProviderPresets.ts @@ -43,6 +43,11 @@ export interface ProviderPreset { // 图标配置 icon?: string; // 图标名称 iconColor?: string; // 图标颜色 + + // Claude API 格式(仅 Claude 供应商使用) + // - "anthropic" (默认): Anthropic Messages API 格式,直接透传 + // - "openai_chat": OpenAI Chat Completions 格式,需要格式转换 + apiFormat?: "anthropic" | "openai_chat"; } export const providerPresets: ProviderPreset[] = [