diff --git a/README.md b/README.md index 68d6142..b8ceb4b 100644 --- a/README.md +++ b/README.md @@ -74,7 +74,7 @@ - 聚合面板: [New API](https://github.com/QuantumNous/new-api)、[One API](https://github.com/songquanpeng/one-api)、[OneHub](https://github.com/MartialBE/one-hub)、[DoneHub](https://github.com/deanxv/done-hub)、[Veloera](https://github.com/Veloera/Veloera)、[AnyRouter](https://anyrouter.top)、[Sub2API](https://github.com/Wei-Shaw/sub2api) - 通用兼容接口:OpenAI / Claude / Gemini compatible endpoints,以及 `cliproxyapi` / CPA、[OrcaRouter](https://www.orcarouter.ai) -- 官方预设:阿里云 / 智谱 / 豆包 Coding Plan,DeepSeek,Moonshot(Kimi),MiniMax,ModelScope,OrcaRouter +- 官方预设:阿里云 / 智谱 / 豆包 Coding Plan,DeepSeek,Moonshot(Kimi),MiniMax,ModelScope,OrcaRouter,无限星河 - OAuth 连接:Codex、Claude、Gemini CLI、Antigravity 详细接法见 [上游接入](./docs/upstream-integration.md) 与 [OAuth 管理](./docs/oauth.md)。 @@ -104,6 +104,18 @@

IPWO 覆盖 195+ 地区动态住宅代理、静态住宅代理和不限量住宅代理,支持 HTTP、HTTPS 及 SOCKS5 协议,适用于 AI 开发者及 API 应用的多地区网络访问。可用于 AI 模型调用、API 访问、自动化及数据采集等场景。支持免费测试,专属折扣码:0205,欢迎通过专属链接体验。

+

+ + Infistar.cc 无限星河 + +

+

+ 感谢 Infistar.cc 无限星河 赞助本项目,为 Metapi 智能路由补充稳定上游:
+ ⚡ 稳定高效的模型通道:价格低至官方渠道 1 折,模型倍率公开透明,多节点冗余保障,有效降低限流、429 与断连影响。
+ 🧠 主流模型一站式接入:一个 API Key 即可调用 Claude、ChatGPT、Gemini、Kimi、GLM、DeepSeek 等主流模型。
+ 🔀 契合 Metapi 智能路由:可作为 OpenAI、Claude、Gemini 兼容上游接入,配合 Metapi 的模型自动发现、成本优选与故障转移,为 Cursor、Claude Code、Codex、Open WebUI 等工具提供稳定模型服务。
+ 🎁 Metapi 用户专属福利:通过专属推广链接注册即可领取 5 美元等值测试额度 / 首充专属优惠,快速添加上游并开始调用。 +

--- diff --git a/docs/getting-started.md b/docs/getting-started.md index 1a0dc19..127acf5 100644 --- a/docs/getting-started.md +++ b/docs/getting-started.md @@ -140,7 +140,7 @@ npm run dev - 按你手上的上游形态选择: - 有后台面板:`new-api` / `one-api` / `one-hub` / `done-hub` / `veloera` / `anyrouter` / `sub2api` - 通用兼容接口:`openai` / `claude` / `gemini` / `cliproxyapi` / `orcarouter` - - 官方入口:直接在下拉里选对应**官方预设**,例如阿里云 / 智谱 / 豆包 Coding Plan,DeepSeek,Moonshot,MiniMax,ModelScope,OrcaRouter + - 官方入口:直接在下拉里选对应**官方预设**,例如阿里云 / 智谱 / 豆包 Coding Plan,DeepSeek,Moonshot,MiniMax,ModelScope,OrcaRouter,无限星河 - 平台通常可自动检测;如果因为防护页、反向代理或特殊路径导致检测失败,再手动选择。 - 可选是否开启系统代理,方便国内机器访问国外中转站。 - 可选站点权重,站点权重越大,路由将更加频繁使用这个站点的模型。 @@ -196,7 +196,7 @@ npm run dev - `claude` - `gemini` - `cliproxyapi` -- 所有官方预设(Coding Plan、DeepSeek、Moonshot、MiniMax、ModelScope 等) +- 所有官方预设(Coding Plan、DeepSeek、Moonshot、MiniMax、ModelScope、无限星河等) #### 2C. Provider 原生授权:走 OAuth 管理 diff --git a/docs/sponsors/infistar-banner.png b/docs/sponsors/infistar-banner.png new file mode 100644 index 0000000..9ce5697 Binary files /dev/null and b/docs/sponsors/infistar-banner.png differ diff --git a/docs/upstream-integration.md b/docs/upstream-integration.md index ff543d2..f4b3022 100644 --- a/docs/upstream-integration.md +++ b/docs/upstream-integration.md @@ -12,7 +12,7 @@ Metapi 当前支持三类上游接入方式: 1. **中转聚合平台** — New API / One API / OneHub / DoneHub / Veloera / AnyRouter / Sub2API / CPA 等 2. **官方 API 端点** — OpenAI / Claude (Anthropic) / Gemini (Google) 直连 -3. **官方预设与 OAuth 连接** — Coding Plan / DeepSeek / Moonshot / MiniMax / ModelScope 等官方兼容入口,以及 Codex / Claude / Gemini CLI / Antigravity 的浏览器授权登录 +3. **官方预设与 OAuth 连接** — Coding Plan / DeepSeek / Moonshot / MiniMax / ModelScope / 无限星河等官方兼容入口,以及 Codex / Claude / Gemini CLI / Antigravity 的浏览器授权登录 其中: @@ -397,6 +397,7 @@ CPA 这类站点推荐直接使用 **API Key**: | ModelScope / OpenAI | `openai` | `https://api-inference.modelscope.cn/v1` | 适合开源编程模型兼容接入 | | ModelScope / Claude | `claude` | `https://api-inference.modelscope.cn` | 适合 Claude 兼容接入 | | 豆包 Coding Plan / OpenAI | `openai` | `https://ark.cn-beijing.volces.com/api/coding/v3` | 适合火山方舟 Coding Plan | +| 无限星河 | `openai` | `https://infistar.cc/v1` | OpenAI 兼容入口;模型以当前 API Key 的实时模型列表为准 | #### 使用建议 @@ -520,6 +521,7 @@ Metapi 支持自动识别站点类型,当前检测优先级如下: | `api-inference.modelscope.cn/v1` | `modelscope-openai` | | `api-inference.modelscope.cn` | `modelscope-claude` | | `ark.cn-beijing.volces.com/api/coding/v3` | `doubao-coding-openai` | +| `infistar.cc` 或 `infistar.cc/v1` | `infistar-openai` | > [!NOTE] > 智谱 Coding Plan 的 Claude 兼容入口当前不会按 URL 强制自动识别,更适合手动选预设。 diff --git a/src/shared/siteInitializationPresets.d.ts b/src/shared/siteInitializationPresets.d.ts index e46fac8..bb90578 100644 --- a/src/shared/siteInitializationPresets.d.ts +++ b/src/shared/siteInitializationPresets.d.ts @@ -12,7 +12,8 @@ export type SiteInitializationPresetId = | 'modelscope-openai' | 'modelscope-claude' | 'doubao-coding-openai' - | 'orcarouter-openai'; + | 'orcarouter-openai' + | 'infistar-openai'; export type SiteInitializationPreset = { id: SiteInitializationPresetId; label: string; diff --git a/src/shared/siteInitializationPresets.js b/src/shared/siteInitializationPresets.js index 1763ff4..0f26284 100644 --- a/src/shared/siteInitializationPresets.js +++ b/src/shared/siteInitializationPresets.js @@ -82,6 +82,10 @@ const ORCAROUTER_RECOMMENDED_MODELS = Object.freeze([ 'orcarouter/auto', ]); +const INFISTAR_RECOMMENDED_MODELS = Object.freeze([ + 'qwen-plus', +]); + const SITE_INITIALIZATION_PRESETS = Object.freeze([ Object.freeze({ id: 'codingplan-openai', @@ -293,6 +297,21 @@ const SITE_INITIALIZATION_PRESETS = Object.freeze([ return matchesHostAndPaths(url, 'api.orcarouter.ai', ['/', '/v1']); }, }), + Object.freeze({ + id: 'infistar-openai', + label: '无限星河', + providerLabel: '无限星河', + description: '适合无限星河 OpenAI 兼容入口,支持通过一个 API Key 接入多家主流模型;模型以当前 API Key 的实时模型列表为准。', + platform: 'openai', + defaultUrl: 'https://infistar.cc/v1', + initialSegment: 'apikey', + recommendedSkipModelFetch: false, + recommendedModels: INFISTAR_RECOMMENDED_MODELS, + docsUrl: 'https://doc.infistar.cc/api-overview', + matches(url) { + return matchesHostAndPaths(url, 'infistar.cc', ['/', '/v1']); + }, + }), ]); function clonePreset(preset) { diff --git a/src/shared/siteInitializationPresets.test.ts b/src/shared/siteInitializationPresets.test.ts index 3bd8c82..2471802 100644 --- a/src/shared/siteInitializationPresets.test.ts +++ b/src/shared/siteInitializationPresets.test.ts @@ -24,6 +24,7 @@ describe('siteInitializationPresets', () => { 'modelscope-claude', 'doubao-coding-openai', 'orcarouter-openai', + 'infistar-openai', ])); const openaiPreset = getSiteInitializationPreset('codingplan-openai'); @@ -133,6 +134,19 @@ describe('siteInitializationPresets', () => { recommendedSkipModelFetch: true, }); expect(orcaRouterPreset?.recommendedModels).toEqual(['orcarouter/auto']); + + const infistarPreset = getSiteInitializationPreset('infistar-openai'); + expect(infistarPreset).toMatchObject({ + id: 'infistar-openai', + label: '无限星河', + providerLabel: '无限星河', + platform: 'openai', + defaultUrl: 'https://infistar.cc/v1', + initialSegment: 'apikey', + recommendedSkipModelFetch: false, + docsUrl: 'https://doc.infistar.cc/api-overview', + }); + expect(infistarPreset?.recommendedModels).toEqual(['qwen-plus']); }); it('detects Aliyun CodingPlan endpoints by URL', () => { @@ -209,6 +223,15 @@ describe('siteInitializationPresets', () => { id: 'orcarouter-openai', platform: 'orcarouter', }); + + expect(detectSiteInitializationPreset('https://infistar.cc/v1')).toMatchObject({ + id: 'infistar-openai', + platform: 'openai', + }); + expect(detectSiteInitializationPreset('https://infistar.cc/')).toMatchObject({ + id: 'infistar-openai', + platform: 'openai', + }); }); it('reselects openai presets from canonicalized root urls when platform is already known', () => {