Niek/chatgpt-web
ChatGPT web interface using the OpenAI API
ChatGPT‑web – 任意 OpenAI 兼容模型的轻量级自托管聊天 UI
是什么 – 一个单页 Web 应用,可让你直接通过浏览器与大语言模型聊天端点(OpenAI、Anthropic、Google Gemini、Mistral、xAI、OpenRouter 等)对话。你只需提供提供商名称和 API 密钥,应用会自动发现该端点支持的模型,然后即可开始对话。
为何重要 – 所有对话历史均存储在浏览器的本地存储中,不会发送到第三方服务器。UI 为开源(GPL-3.0),可部署在任何地方,也可使用 Tauri 打包为桌面应用,或通过 Docker 本地运行。它提供与商业网站相同的聊天体验,同时保护你的数据隐私,并允许你选择任意兼容的提供商。
核心功能(README 中描述)
- 提供商无关 – 适用于任何遵循 OpenAI 聊天规范的 API。内置 OpenAI、Anthropic、xAI、Google Gemini、Mistral AI、APIpie、OpenRouter、OrcaRouter 的预设,以及通用的“自定义”模式。
- 仅本地存储 – 对话保存在浏览器的本地存储中,无服务器端持久化。
- 可自定义模型设置 – 可为每个对话调整温度、系统提示等参数。
- 语音 I/O – 支持语音转文本输入和文本转语音输出。
- 提示库 – 内置来自 awesome-chatgpt-prompts 收集的 100 个热门提示。
- 导出 – 对话可保存为 Markdown 文件,用于分享或归档。
- 代码处理 – 自动检测代码块,应用语法高亮,并添加一键复制按钮。
- 图像生成 – 若所选提供商提供图像端点,可输入“show me an image of …”请求生成图片。UI 会自动选择提供商特定的图像模型(如 OpenAI 的
gpt-image-2)。 - 流式响应 – 模型输出随到达实时显示,模拟 ChatGPT 的实时感。
- 移动端友好 – 响应式布局,可在手机和平板上正常工作。
- 桌面应用构建 – 使用 Tauri(基于 Rust),可将 Web 应用打包为 Windows/macOS/Linux 的原生桌面应用。
- Docker 支持 – 提供
docker compose文件,可同时启动 UI 和模拟 API,用于测试或离线演示。
典型工作流程
- 在
https://niek.github.io/chatgpt-web/打开托管页面(或你自己的部署)。 - 在设置页面选择提供商,粘贴 API 密钥,让应用列出可用模型。
- 开始新对话,可选择预加载提示或编写自己的系统提示。
- 输入或语音发送消息;应用将消息转发至所选端点并流式接收回复。
- 对话本地持久化;可随时导出或清除存储。
快速上手(开发者导向)
- 本地运行
npm ci # 安装精确依赖 npm run dev # 启动 Vite 开发服务器(http://localhost:5173) - 生产构建
npm run build # 生成静态 `dist/` 文件夹,可部署到任意静态主机 - 更新内置提示列表
npm run update-prompts # 从公共 API 获取最新 100 个高票提示 - Docker –
docker compose up -d启动 UI 和模拟 API。在.env中设置VITE_PROVIDER=custom和VITE_API_BASE=http://localhost:5174,将 UI 指向模拟服务。 - 桌面应用 – 安装 Rust 后,运行
npm run tauri dev启动开发窗口,或npm run tauri build在src-tauri/target生成二进制文件。
适合谁使用
- 注重隐私的用户 – 希望使用聊天 UI 但不将对话日志发送给第三方网站的人。
- 开发者 – 测试多个 LLM 提供商或并排比较模型行为的人。
- 教育者 / 培训师 – 需要简单、自托管界面用于课堂演示的人。
- 开源爱好者 – 希望 Fork、扩展或嵌入该 UI 到自己项目中的人。
许可与社区
- 许可证:GPL-3.0(完整源码开放,可自由托管、修改、再分发)。
- 贡献者:项目遵循 all-contributors 模型;数十人贡献了代码、想法、设计和文档。
- 问题追踪与 PR:在 GitHub 上开放;README 提供了添加新提示、自定义模拟 API 和构建桌面版本的指南。
总结
ChatGPT‑web 是任意 OpenAI 兼容聊天服务的实用、隐私优先的前端。它集成了语音、图像生成、提示库、导出等实用功能,同时保持轻量,可在浏览器中运行或作为微型桌面应用使用。
相关
- 项目
- 项目
- 项目
- 项目
- 项目