GPTPortal
九大AI平台聚合入口,一个界面用遍GPT/Claude/Gemini/DeadSeek等模型
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
九大AI平台聚合入口,一个界面用遍GPT/Claude/Gemini/DeadSeek等模型
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一个场景:你同时在用 GPT-4 处理文案、让 Claude 润色代码、请 Gemini 查资料——结果要在三个浏览器标签页之间来回切换,API Key 散落各处,历史记录无法互通。GPTPortal 正是为解决这个痛点而生:它用一个本地运行的轻量级 Web 应用,将 OpenAI、Claude、Gemini、Mistral、Groq、OpenRouter、DeepSeek、Grok、Kimi 等九大 AI 平台汇聚到同一个聊天界面中,一次配置,随处使用。
GPTPortal 由开发者 Zaki-1052 构建并维护,是一个开源的 Node.js 应用。与市面上的第三方 AI 聚合平台不同,GPTPortal 强调本地优先——所有对话数据存储在本地浏览器 Session 中,API 调用直接经过用户自己的 Key,不经过任何中间服务器。这种设计意味着用户对数据拥有完全控制权,适合对隐私有要求的技术用户或企业内网部署场景。
项目采用 MIT 许可证,当前版本基于 Node.js LTS 运行时,默认端口 3000,通过 Express.js 提供 HTTP 服务。397 颗 GitHub Stars 的社区关注度说明它确实解决了一部分用户的真实需求。
GPTPortal 的核心价值在于统一接入层。通过内置的 ProviderFactory 工厂模式,它为每个 AI 平台封装了标准化的调用接口,用户只需在 .env 文件中填入对应 API Key,即可在界面上自由切换模型。以下是各平台的支持情况:
| 平台 | SDK/调用方式 | 特色功能 |
|---|---|---|
| OpenAI | 官方 openai SDK | 支持 GPT-5 的 Reasoning Effort + Verbosity 参数调节 |
| Claude | HTTP 原生调用 | 支持 Assistants API、自定义 Instructions |
| Gemini | @google/generative-ai SDK | 安全过滤器、多轮对话 |
| Mistral / Groq / OpenRouter | HTTP 原生调用 | 第三方中转平台,聚合多个开源模型 |
| DeepSeek / Grok / Kimi | HTTP 原生调用 | 国内/海外平台,覆盖不同地域用户 |
在对话体验上,GPTPortal 支持多模态输入:用户可以上传图片、发送语音消息、附加文件,并在对话中实时显示 Token 用量和费用统计。导出功能(exportService)允许将聊天记录保存为 Markdown 或 JSON 格式,方便后续整理。对于使用 Assistants API 的用户,GPTPortal 还支持加载自定义提示词文件(instructions.md),实现个性化的助手行为。
GPTPortal 的架构分为后端和前端两大层,后端采用经典的分层设计:
server.js (入口)
└── src/server/
├── core/ # Application、ErrorHandler、MiddlewareManager、RouteManager、ServiceManager
├── routes/ # chat.js、assistant.js、gemini.js、models.js、config.js、setup.js
├── services/ # 模型服务、成本统计、Token计数、导出、缓存、标题生成...
├── middleware/ # auth.js(Basic Auth)、security.js(Helmet安全头)、upload.js(文件上传)
└── utils/ # Logger、ValidationUtils
核心模块 Application.js 负责整体生命周期管理,RouteManager.js(26KB)是最复杂的服务模块,负责协调各路由与服务的注册与调度。数据层通过 ModelLoader.js(18KB)从统一的 models.json 加载所有模型元数据,支持每 24 小时自动同步模型列表。
前端则保持极简主义:纯原生 JavaScript + 少量 CSS,没有使用 React/Vue 等框架。portal.html 是主界面,通过 fetch 与后端 API 通信。这种设计的好处是对运行环境几乎零要求——只需要一个现代浏览器即可。
值得注意的安全设计:后端使用了 express-rate-limit 防止 API 滥用,helmet 中间件添加了安全响应头,ValidationUtils 实现了路径遍历防护,防止自定义提示词文件名注入。
GPTPortal 提供了完整的容器化支持,这是项目的一大亮点。Dockerfile 采用多阶段构建(multi-stage build):先用 node:lts 构建镜像,再打包成精简的 node:lts-slim 运行时镜像,并使用 dumb-init 处理 PID 1 问题,符合 Node.js Docker 最佳实践。
配合项目根目录的 docker-compose.yml,用户只需三步即可完成部署:
.env.example 为 .env,填入各平台 API Keydocker-compose up -dhttp://localhost:3000部署硬件需求极低:纯 CPU 运行,无需 GPU,内存仅需 512MB,磁盘 300MB。即便在树莓派或老旧服务器上也能流畅运行。部署难度评为「简单」,适合非 DevOps 背景的用户。
从源码结构来看,GPTPortal 的代码质量处于中等偏上水平:
ErrorHandler.js 实现了全局错误捕获,unhandledRejection 和 uncaughtException 均有处理,避免服务崩溃package.json 中 npm test 为空),README 为空(README.md 通过 API 获取内容为空,可能仓库设置问题)package-lock.json,但部分依赖(如 tiktoken)需要本地编译综合评分:78 / 100。主要扣分项在测试覆盖和文档完整性上。
GPTPortal 非常适合以下场景:
其局限性同样明显:
在 AI 应用爆发的当下,「AI 聚合」赛道已出现多家商业产品(如集换式 AI 客户端、API 网关等)。GPTPortal 代表了一种本地化、轻量化、社区驱动的路线:不需要服务器、不需要订阅、不收集任何数据。它的增长曲线与开源社区中同类工具(如 NextChat、Open WebUI)的热度正相关,反映了用户对「数据自主」和「工具可控」的强烈诉求。
尽管功能不如商业产品丰富,但其零成本、完全开源、Docker 一键部署的特性,使其成为个人开发者和小型团队的首选入口工具。随着更多 AI 平台的出现,这类聚合工具的价值将持续增长。

图1:GPTPortal 项目作者 Zaki-1052 的 GitHub 头像