From 558124914759083966aa260e86aadddda7840f69 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A8=8B=E5=BA=8F=E5=91=98=E9=98=BF=E6=B1=9F=28Relakkes?= =?UTF-8?q?=29?= Date: Tue, 28 Jul 2026 11:30:57 +0800 Subject: [PATCH] =?UTF-8?q?chore(sponsor):=20=E4=B8=8B=E7=BA=BF=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3AI=20=E8=B5=9E=E5=8A=A9=E4=B8=8E=20Provider=20?= =?UTF-8?q?=E9=A2=84=E8=AE=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - provider presets 移除 jiekouai 预设(预设数 11 → 10) - README.md / README.en.md 赞助商表格移除接口AI 整行及推广链接 - 删除 docs/images/sponsors/jiekou-logo.svg - docs 中英文模型页的中转服务商清单去掉接口AI - provider-presets 测试同步移除 jiekouai 断言;依赖该预设 defaultEnv / authStrategy 的 conversation-service、conversations 测试 fixture 改用 shengsuanyun 预设 --- README.en.md | 11 -------- README.md | 11 -------- docs/en/start/models.md | 2 +- docs/images/sponsors/jiekou-logo.svg | 4 --- docs/start/models.md | 2 +- .../__tests__/conversation-service.test.ts | 8 +++--- src/server/__tests__/conversations.test.ts | 4 +-- src/server/__tests__/provider-presets.test.ts | 11 -------- src/server/config/providerPresets.json | 27 ------------------- 9 files changed, 8 insertions(+), 72 deletions(-) delete mode 100644 docs/images/sponsors/jiekou-logo.svg diff --git a/README.en.md b/README.en.md index f0355133..a1dca766 100644 --- a/README.en.md +++ b/README.en.md @@ -119,17 +119,6 @@ This project is maintained in the author's spare time. Corporate or individual s - - - - JieKou AI
- 接口AI -
- - - Thanks to JieKou AI for sponsoring this project. JieKou AI provides official model resources with stable, high-performance API access. Subscription bundles are priced at 20% off the official rate; new users who register through this link and bind GitHub can claim a $3 coupon. - - diff --git a/README.md b/README.md index 80fce0fb..282357d2 100644 --- a/README.md +++ b/README.md @@ -119,17 +119,6 @@ cp .env.example .env - - - - 接口AI
- 接口AI -
- - - 感谢 接口AI 赞助本项目!接口AI 提供官方资源直供与稳定高性能 API 体验,订阅包价格为官方 8 折;使用 专属链接 注册并绑定 GitHub,可领取 3 美元优惠券。 - - diff --git a/docs/en/start/models.md b/docs/en/start/models.md index 3cfc9368..7f18cf9b 100644 --- a/docs/en/start/models.md +++ b/docs/en/start/models.md @@ -44,7 +44,7 @@ With an API key in hand, this is the fastest route. Click "Add Provider", pick s The built-in presets, as they appear in the dialog: - **DeepSeek** · **Zhipu GLM** · **Kimi** · **MiniMax** — major Chinese model vendors; the base URLs point at each one's Anthropic-compatible endpoint. -- **接口AI (JiekouAI)** · **胜算云 (Shengsuanyun)** · **TeamoRouter** — routing services that give you access to official Claude models through their own gateway. +- **胜算云 (Shengsuanyun)** · **TeamoRouter** — routing services that give you access to official Claude models through their own gateway. - **LM Studio** · **Ollama** — local models; see the next section. - **Custom** — anything not listed above. diff --git a/docs/images/sponsors/jiekou-logo.svg b/docs/images/sponsors/jiekou-logo.svg deleted file mode 100644 index eb688a87..00000000 --- a/docs/images/sponsors/jiekou-logo.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/start/models.md b/docs/start/models.md index 100e4c42..b63468de 100644 --- a/docs/start/models.md +++ b/docs/start/models.md @@ -44,7 +44,7 @@ Claude Code Haha 自己不带模型,它只是那个替你干活的壳。装完 内置预设(按弹窗里的排列): - **DeepSeek** · **Zhipu GLM** · **Kimi** · **MiniMax** — 国内主流模型厂商,接口地址是各家的 Anthropic 兼容端点。 -- **接口AI** · **胜算云** · **TeamoRouter** — 中转类服务商,用它们的通道调 Claude 官方模型。 +- **胜算云** · **TeamoRouter** — 中转类服务商,用它们的通道调 Claude 官方模型。 - **LM Studio** · **Ollama** — 本地模型,见下一节。 - **Custom** — 上面都没有,自己填。 diff --git a/src/server/__tests__/conversation-service.test.ts b/src/server/__tests__/conversation-service.test.ts index c37c93d0..fd3e730a 100644 --- a/src/server/__tests__/conversation-service.test.ts +++ b/src/server/__tests__/conversation-service.test.ts @@ -839,10 +839,10 @@ describe('ConversationService', () => { test('buildChildEnv clears stale api key for bearer-token providers', async () => { const providerService = new ProviderService() const provider = await providerService.addProvider({ - presetId: 'jiekouai', - name: 'Jiekou', + presetId: 'shengsuanyun', + name: 'ShengSuanYun', apiKey: 'provider-key', - baseUrl: 'https://api.jiekou.ai/anthropic', + baseUrl: 'https://router.shengsuanyun.com/api', apiFormat: 'anthropic', models: { main: 'claude-sonnet-4-6', @@ -858,7 +858,7 @@ describe('ConversationService', () => { model: 'claude-sonnet-4-6', })) as Record - expect(env.ANTHROPIC_BASE_URL).toBe('https://api.jiekou.ai/anthropic') + expect(env.ANTHROPIC_BASE_URL).toBe('https://router.shengsuanyun.com/api') expect(env.ANTHROPIC_AUTH_TOKEN).toBe('provider-key') expect(env.ANTHROPIC_API_KEY).toBe('') expect(env.ANTHROPIC_MODEL).toBe('claude-sonnet-4-6') diff --git a/src/server/__tests__/conversations.test.ts b/src/server/__tests__/conversations.test.ts index 33773ac9..c40d8a4e 100644 --- a/src/server/__tests__/conversations.test.ts +++ b/src/server/__tests__/conversations.test.ts @@ -3154,10 +3154,10 @@ describe('WebSocket Chat Integration', () => { it('should pass the active provider id into default desktop sessions', async () => { const providerService = new ProviderService() const provider = await providerService.addProvider({ - presetId: 'jiekouai', + presetId: 'shengsuanyun', name: 'Active Default Provider', apiKey: 'key-active-default', - baseUrl: 'https://api.jiekou.ai/anthropic', + baseUrl: 'https://router.shengsuanyun.com/api', apiFormat: 'anthropic', models: { main: 'active-main', diff --git a/src/server/__tests__/provider-presets.test.ts b/src/server/__tests__/provider-presets.test.ts index 8a06966e..56c3ec57 100644 --- a/src/server/__tests__/provider-presets.test.ts +++ b/src/server/__tests__/provider-presets.test.ts @@ -67,7 +67,6 @@ describe('provider presets API', () => { const zhipu = PROVIDER_PRESETS.find((preset) => preset.id === 'zhipuglm') const kimi = PROVIDER_PRESETS.find((preset) => preset.id === 'kimi') const minimax = PROVIDER_PRESETS.find((preset) => preset.id === 'minimax') - const jiekouai = PROVIDER_PRESETS.find((preset) => preset.id === 'jiekouai') const shengsuanyun = PROVIDER_PRESETS.find((preset) => preset.id === 'shengsuanyun') const teamorouter = PROVIDER_PRESETS.find((preset) => preset.id === 'teamorouter') @@ -106,12 +105,6 @@ describe('provider presets API', () => { expect(minimax?.defaultEnv?.CLAUDE_CODE_AUTO_COMPACT_WINDOW).toBe('1000000') expect(minimax?.defaultEnv?.ANTHROPIC_DEFAULT_SONNET_MODEL_SUPPORTED_CAPABILITIES).toBe('thinking,adaptive_thinking') expect(minimax?.modelContextWindows?.['MiniMax-M3']).toBe(1000000) - expect(jiekouai?.baseUrl).toBe('https://api.jiekou.ai/anthropic') - expect(jiekouai?.authStrategy).toBe('auth_token') - expect(jiekouai?.defaultModels.main).toBe('claude-sonnet-4-6') - expect(jiekouai?.defaultModels.opus).toBe('claude-opus-4-7') - expect(jiekouai?.defaultEnv?.ANTHROPIC_DEFAULT_SONNET_MODEL_SUPPORTED_CAPABILITIES).toBe('none') - expect(jiekouai?.modelContextWindows?.['claude-sonnet-4-6']).toBe(1000000) expect(shengsuanyun?.baseUrl).toBe('https://router.shengsuanyun.com/api') expect(shengsuanyun?.authStrategy).toBe('auth_token') expect(shengsuanyun?.defaultModels.main).toBe('anthropic/claude-sonnet-4.6') @@ -134,7 +127,6 @@ describe('provider presets API', () => { const zhipu = PROVIDER_PRESETS.find((preset) => preset.id === 'zhipuglm') const kimi = PROVIDER_PRESETS.find((preset) => preset.id === 'kimi') const minimax = PROVIDER_PRESETS.find((preset) => preset.id === 'minimax') - const jiekouai = PROVIDER_PRESETS.find((preset) => preset.id === 'jiekouai') const shengsuanyun = PROVIDER_PRESETS.find((preset) => preset.id === 'shengsuanyun') const teamorouter = PROVIDER_PRESETS.find((preset) => preset.id === 'teamorouter') const custom = PROVIDER_PRESETS.find((preset) => preset.id === 'custom') @@ -166,9 +158,6 @@ describe('provider presets API', () => { expect(kimi?.modelContextWindows?.['kimi-for-coding']).toBe(262144) expect(kimi?.modelContextWindows?.['kimi-for-coding-highspeed']).toBe(262144) expect(minimax?.apiKeyUrl).toBe('https://platform.minimaxi.com/subscribe/token-plan?code=1TG2Cseab2&source=link') - expect(jiekouai?.apiKeyUrl).toBe('https://jiekou.ai/referral?invited_code=OBNU3K') - expect(jiekouai?.promoText).toContain('官方 8 折') - expect(jiekouai?.featured).toBe(true) expect(shengsuanyun?.apiKeyUrl).toBe('https://www.shengsuanyun.com/?from=CH_LEJ88KWR') expect(shengsuanyun?.promoText).toContain('首充 10%') expect(shengsuanyun?.featured).toBe(true) diff --git a/src/server/config/providerPresets.json b/src/server/config/providerPresets.json index 86ae6415..e026de3e 100644 --- a/src/server/config/providerPresets.json +++ b/src/server/config/providerPresets.json @@ -128,33 +128,6 @@ "MiniMax-M2.7-highspeed": 204800 } }, - { - "id": "jiekouai", - "name": "接口AI", - "baseUrl": "https://api.jiekou.ai/anthropic", - "apiFormat": "anthropic", - "defaultModels": { - "main": "claude-sonnet-4-6", - "haiku": "claude-haiku-4-5-20251001", - "sonnet": "claude-sonnet-4-6", - "opus": "claude-opus-4-7" - }, - "needsApiKey": true, - "websiteUrl": "https://jiekou.ai", - "apiKeyUrl": "https://jiekou.ai/referral?invited_code=OBNU3K", - "promoText": "接口AI为 cc-haha 的用户提供官方资源与稳定高性能体验,订阅包价格为官方 8 折;绑定 GitHub 后还可领取 3 美元优惠券。", - "featured": true, - "authStrategy": "auth_token", - "defaultEnv": { - "ANTHROPIC_DEFAULT_SONNET_MODEL_SUPPORTED_CAPABILITIES": "none" - }, - "modelContextWindows": { - "claude-sonnet-4-6": 1000000, - "claude-haiku-4-5-20251001": 200000, - "claude-haiku-4-5": 200000, - "claude-opus-4-7": 1000000 - } - }, { "id": "shengsuanyun", "name": "胜算云",