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:
- Vendor positioning + localized brand names — move the provider card up, add zh/en/ja label variants that match the brand team's canonical names.
- 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.
What
Graduate SiliconFlow from the
featuredtier toinvited sponsors(tier 1), alongside Baidu Qianfan and ERNIE. Two work streams, both under Setup + Models surfaces:siliconflow.com) for both the API base URL and the API-key acquisition page, not the mainlandsiliconflow.cndomain.Why
siliconflowuses a hardcodedapi.siliconflow.cnbase URL and acloud.siliconflow.cn/account/akkey URL (seepackages/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
'siliconflow'out ofTEXT_PROVIDER_TIERS[featured].members(types.ts:553-563) intoTEXT_PROVIDER_TIERS[sponsors].members(types.ts:548). Suggested slot order:['baiduqianfancodingplan', 'baidu-aistudio', 'siliconflow']or wherever brand-team agrees.PROVIDER_BADGES['siliconflow'] = 'golden-sponsor'(types.ts:596-600).PROVIDERSentry (types.ts:275) to carrylabelByLocale(same pattern asbaidu-aistudioat line 290). Brand-approved names needed — please confirm before merge:硅基流动SiliconFlowシリコンフロー(or keepSiliconFlow)ernieQuotaNote, add anoteKey+ matching zh/en/ja strings underproviders.siliconflowSponsorNote(or whichever key).Part 2 — Locale-aware endpoints
Infrastructure change — this is the larger lift:
ProviderDefwithkeyUrlByLocale?: Partial<Record<'zh'|'en'|'ja', string>>andbaseUrlByLocale?: Partial<Record<'zh'|'en'|'ja', string>>, mirroring the existinglabelByLocalepattern.normalizeProviderLocaleat types.ts:602) that takes(provider, locale)and returns the effectivekeyUrl/baseUrl, falling back to the top-level fields.packages/web/src/shared/providerCatalog.ts:26default base URL mappackages/backend/src/services/providerCatalogService.ts:24backend default base URL mapkeyUrl/baseUrlare read without going through the resolver — grep for both field names before merging.For SiliconFlow specifically — overseas URLs need brand-team confirmation, do not merge with my guesses:
baseUrlhttps://api.siliconflow.cn/v1https://api.siliconflow.com/v1❓keyUrlhttps://cloud.siliconflow.cn/account/akhttps://cloud.siliconflow.com/account/ak❓Verify the exact hostnames + path structure on the overseas dashboard before writing them into the code.
Acceptance
zhlocale shows SiliconFlow in the invited sponsors group with硅基流动and links to*.siliconflow.cn.enlocale shows the same card withSiliconFlowlabel and links to*.siliconflow.com.providerCatalogService.test.tscover the locale-aware base URL resolution for SiliconFlow, analogous to existing ERNIE/Qianfan coverage.Out of scope
siliconflow(breaking change, not worth the blast radius — the id stays, only display / URL routing localize).modelsDevPricingentries atsrc/services/modelsDevPricing.ts:29-30are already registry-sourced and don't need per-locale variants.