Skip to content

Promote SiliconFlow to invited sponsor #134

Description

@webup

What

Graduate SiliconFlow from the featured tier to invited sponsors (tier 1), alongside Baidu Qianfan and ERNIE. Two work streams, both under Setup + Models surfaces:

  1. Vendor positioning + localized brand names — move the provider card up, add zh/en/ja label variants that match the brand team's canonical names.
  2. Locale-aware endpoint routing — the English-language UI must point users to SiliconFlow's overseas site (siliconflow.com) for both the API base URL and the API-key acquisition page, not the mainland siliconflow.cn domain.

Why

  • SiliconFlow is joining the same sponsor tier as ERNIE / Qianfan. Tier 1 placement + golden-sponsor badge is the agreed exposure.
  • Today siliconflow uses a hardcoded api.siliconflow.cn base URL and a cloud.siliconflow.cn/account/ak key URL (see packages/web/src/modules/setup/types.ts:275-289). Non-mainland users landing on the English UI should not be routed to the .cn domain — both because it is slower / sometimes unreachable for overseas users, and because SiliconFlow's sponsor ask is specifically for the overseas funnel to show the overseas entry point.

How

Part 1 — Tier + branding

  • Move 'siliconflow' out of TEXT_PROVIDER_TIERS[featured].members (types.ts:553-563) into TEXT_PROVIDER_TIERS[sponsors].members (types.ts:548). Suggested slot order: ['baiduqianfancodingplan', 'baidu-aistudio', 'siliconflow'] or wherever brand-team agrees.
  • Add PROVIDER_BADGES['siliconflow'] = 'golden-sponsor' (types.ts:596-600).
  • Upgrade the SiliconFlow PROVIDERS entry (types.ts:275) to carry labelByLocale (same pattern as baidu-aistudio at line 290). Brand-approved names needed — please confirm before merge:
    • zh: 硅基流动
    • en: SiliconFlow
    • ja: シリコンフロー(or keep SiliconFlow
  • If SiliconFlow wants a sponsor tagline like ERNIE's ernieQuotaNote, add a noteKey + matching zh/en/ja strings under providers.siliconflowSponsorNote (or whichever key).

Part 2 — Locale-aware endpoints

Infrastructure change — this is the larger lift:

  • Extend ProviderDef with keyUrlByLocale?: Partial<Record<'zh'|'en'|'ja', string>> and baseUrlByLocale?: Partial<Record<'zh'|'en'|'ja', string>>, mirroring the existing labelByLocale pattern.
  • Add a resolver (companion to normalizeProviderLocale at types.ts:602) that takes (provider, locale) and returns the effective keyUrl/baseUrl, falling back to the top-level fields.
  • Thread the resolved URL through all readers of these fields — at minimum:

For SiliconFlow specifically — overseas URLs need brand-team confirmation, do not merge with my guesses:

Field zh (default) en / ja (overseas)
baseUrl https://api.siliconflow.cn/v1 https://api.siliconflow.com/v1
keyUrl https://cloud.siliconflow.cn/account/ak https://cloud.siliconflow.com/account/ak

Verify the exact hostnames + path structure on the overseas dashboard before writing them into the code.

Acceptance

  • Setup wizard under zh locale shows SiliconFlow in the invited sponsors group with 硅基流动 and links to *.siliconflow.cn.
  • Setup wizard under en locale shows the same card with SiliconFlow label and links to *.siliconflow.com.
  • Japanese locale respects whatever brand routing is chosen (most likely same as EN — overseas).
  • Golden-sponsor badge renders on the SiliconFlow card in all three locales.
  • Backend tests in providerCatalogService.test.ts cover the locale-aware base URL resolution for SiliconFlow, analogous to existing ERNIE/Qianfan coverage.
  • Web tests in the setup wizard snapshot suite verify locale → key URL routing.

Out of scope

  • Renaming the runtime provider id from siliconflow (breaking change, not worth the blast radius — the id stays, only display / URL routing localize).
  • Cost/pricing data routing — modelsDevPricing entries at src/services/modelsDevPricing.ts:29-30 are already registry-sourced and don't need per-locale variants.

Metadata

Metadata

Assignees

No one assigned

    Labels

    component:backendExpress backendcomponent:webReact + Vite frontendroadmap:setup能接管 — wizard, providers, channels, profiles

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions