[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-chatgpt-web-dev--chatgpt-web":3,"tool-chatgpt-web-dev--chatgpt-web":64},[4,17,27,35,43,56],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":16},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,3,"2026-04-05T11:01:52",[13,14,15],"开发框架","图像","Agent","ready",{"id":18,"name":19,"github_repo":20,"description_zh":21,"stars":22,"difficulty_score":23,"last_commit_at":24,"category_tags":25,"status":16},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",140436,2,"2026-04-05T23:32:43",[13,15,26],"语言模型",{"id":28,"name":29,"github_repo":30,"description_zh":31,"stars":32,"difficulty_score":23,"last_commit_at":33,"category_tags":34,"status":16},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107662,"2026-04-03T11:11:01",[13,14,15],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":23,"last_commit_at":41,"category_tags":42,"status":16},3704,"NextChat","ChatGPTNextWeb\u002FNextChat","NextChat 是一款轻量且极速的 AI 助手，旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性，以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发，NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。\n\n这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言，它也提供了便捷的自托管方案，支持一键部署到 Vercel 或 Zeabur 等平台。\n\nNextChat 的核心亮点在于其广泛的模型兼容性，原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型，让用户在一个界面即可自由切换不同 AI 能力。此外，它还率先支持 MCP（Model Context Protocol）协议，增强了上下文处理能力。针对企业用户，NextChat 提供专业版解决方案，具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能，满足公司对数据隐私和个性化管理的高标准要求。",87618,"2026-04-05T07:20:52",[13,26],{"id":44,"name":45,"github_repo":46,"description_zh":47,"stars":48,"difficulty_score":23,"last_commit_at":49,"category_tags":50,"status":16},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,"2026-04-05T10:45:23",[14,51,52,53,15,54,26,13,55],"数据工具","视频","插件","其他","音频",{"id":57,"name":58,"github_repo":59,"description_zh":60,"stars":61,"difficulty_score":10,"last_commit_at":62,"category_tags":63,"status":16},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,"2026-04-04T04:44:48",[15,14,13,26,54],{"id":65,"github_repo":66,"name":67,"description_en":68,"description_zh":69,"ai_summary_zh":70,"readme_en":71,"readme_zh":72,"quickstart_zh":73,"use_case_zh":74,"hero_image_url":75,"owner_login":76,"owner_name":76,"owner_avatar_url":77,"owner_bio":78,"owner_company":79,"owner_location":79,"owner_email":80,"owner_twitter":79,"owner_website":81,"owner_url":82,"languages":83,"stars":119,"forks":120,"last_commit_at":121,"license":122,"difficulty_score":10,"env_os":123,"env_gpu":124,"env_ram":125,"env_deps":126,"category_tags":133,"github_topics":134,"view_count":95,"oss_zip_url":79,"oss_zip_packed_at":79,"status":16,"created_at":148,"updated_at":149,"faqs":150,"releases":181},204,"chatgpt-web-dev\u002Fchatgpt-web","chatgpt-web","A third-party ChatGPT Web UI page built with Express and Vue3, through the official OpenAI completion API. \u002F 用 Express 和 Vue3 搭建的第三方 ChatGPT 前端页面, 基于 OpenAI 官方 completion API.","chatgpt-web 是一款基于 Express 后端与 Vue3 前端构建的开源 ChatGPT 网页界面，旨在通过调用 OpenAI 官方 API 为用户提供稳定、私有的对话服务。chatgpt-web 主要解决了官方访问受限、缺乏多用户管理及数据私有化部署的痛点，特别适合开发者、技术团队或希望搭建内部 AI 平台的组织使用。\n\n相较于同类项目，chatgpt-web 的独特之处在于引入了数据库支持，实现了完整的用户体系，包括注册登录、双重验证、密码重置及后台用户管理。管理员可灵活设置对话数量限制、生成兑换码，并支持多 API Key 随机轮换以优化成本与稳定性。技术亮点方面，chatgpt-web 集成了 Web 网络搜索功能（基于 Tavily API），支持 VLLM 模型接入与深度思考模式开关，并提供 Auth Proxy 实现 SSO 单点登录（兼容 LDAP\u002FOIDC 等协议）。\n\n部署方式灵活，支持 Docker 容器化部署或手动打包，环境变量配置简单。作为基于 MIT 协议开源的项目，chatgpt-web 免费供学习与使用，帮助用户安全、高效地构建专属的 AI ","chatgpt-web 是一款基于 Express 后端与 Vue3 前端构建的开源 ChatGPT 网页界面，旨在通过调用 OpenAI 官方 API 为用户提供稳定、私有的对话服务。chatgpt-web 主要解决了官方访问受限、缺乏多用户管理及数据私有化部署的痛点，特别适合开发者、技术团队或希望搭建内部 AI 平台的组织使用。\n\n相较于同类项目，chatgpt-web 的独特之处在于引入了数据库支持，实现了完整的用户体系，包括注册登录、双重验证、密码重置及后台用户管理。管理员可灵活设置对话数量限制、生成兑换码，并支持多 API Key 随机轮换以优化成本与稳定性。技术亮点方面，chatgpt-web 集成了 Web 网络搜索功能（基于 Tavily API），支持 VLLM 模型接入与深度思考模式开关，并提供 Auth Proxy 实现 SSO 单点登录（兼容 LDAP\u002FOIDC 等协议）。\n\n部署方式灵活，支持 Docker 容器化部署或手动打包，环境变量配置简单。作为基于 MIT 协议开源的项目，chatgpt-web 免费供学习与使用，帮助用户安全、高效地构建专属的 AI 对话环境。","# ChatGPT Web\n\n[中文](.\u002FREADME.md) | [English](.\u002FREADME.en.md)\n\n\n## 说明\n\n> [!IMPORTANT]\n> **此项目 Fork 自 [Chanzhaoyu\u002Fchatgpt-web](https:\u002F\u002Fgithub.com\u002FChanzhaoyu\u002Fchatgpt-web)**\n>\n> 由于原项目作者不愿意引入对数据库的依赖 故制作该永久分叉独立开发 [详见讨论](https:\u002F\u002Fgithub.com\u002FChanzhaoyu\u002Fchatgpt-web\u002Fpull\u002F589#issuecomment-1469207694)\n>\n> 再次感谢 [Chanzhaoyu](https:\u002F\u002Fgithub.com\u002FChanzhaoyu) 大佬对开源的贡献 🙏\n\n新增了部分特色功能:\n\n[✓] 注册 & 登录 & 重置密码 & 2FA\n\n[✓] 同步历史会话\n\n[✓] 前端页面设置apikey\n\n[✓] 自定义敏感词\n\n[✓] 每个会话设置独有 Prompt\n\n[✓] 用户管理\n\n[✓] 多 Key 随机\n\n[✓] 对话数量限制 & 设置不同用户对话数量 & 兑换数量\n\n[✓] 通过 auth proxy 功能实现sso登录 (配合第三方身份验证反向代理 可实现支持 LDAP\u002FOIDC\u002FSAML 等协议登录)\n\n[✓] Web Search 网络搜索功能 (基于 Tavily API 实现实时网络搜索)\n\n[✓] VLLM API 模型支持 & 可选关闭深度思考模式\n\n[✓] 上下文窗口控制\n\n\n> [!CAUTION]\n> 声明：此项目只发布于 Github，基于 MIT 协议，免费且作为开源学习使用。并且不会有任何形式的卖号、付费服务、讨论群、讨论组等行为。谨防受骗。\n\n## 截图\n\n![cover3](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fchatgpt-web-dev_chatgpt-web_readme_db5fc6230b3f.jpg)\n![cover](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fchatgpt-web-dev_chatgpt-web_readme_d372613f839a.png)\n![cover2](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fchatgpt-web-dev_chatgpt-web_readme_925632e60416.png)\n![cover3](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fchatgpt-web-dev_chatgpt-web_readme_a49d9f6404a6.jpg)\n![cover3](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fchatgpt-web-dev_chatgpt-web_readme_8acd7c3172e7.jpg)\n![cover3](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fchatgpt-web-dev_chatgpt-web_readme_0b696fcc0f55.jpg)\n![cover3](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fchatgpt-web-dev_chatgpt-web_readme_d47ecbdcbb45.jpg)\n![userlimit](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fchatgpt-web-dev_chatgpt-web_readme_1ae71cf7b118.png)\n![setmanuallimit](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fchatgpt-web-dev_chatgpt-web_readme_c0e4f2ded93b.png)\n![giftcarddb](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fchatgpt-web-dev_chatgpt-web_readme_7508f2ec5da1.png)\n\n- [ChatGPT Web](#chatgpt-web)\n\t- [介绍](#介绍)\n\t- [待实现路线](#待实现路线)\n\t- [前置要求](#前置要求)\n\t\t- [Node](#node)\n\t\t- [PNPM](#pnpm)\n\t\t- [填写密钥](#填写密钥)\n\t- [安装依赖](#安装依赖)\n\t\t- [后端](#后端)\n\t\t- [前端](#前端)\n\t- [测试环境运行](#测试环境运行)\n\t\t- [后端服务](#后端服务)\n\t\t- [前端网页](#前端网页)\n\t- [环境变量](#环境变量)\n\t- [打包](#打包)\n\t\t- [使用 Docker](#使用-docker)\n\t\t\t- [Docker 参数示例](#docker-参数示例)\n\t\t\t- [Docker build \\& Run](#docker-build--run)\n\t\t\t- [Docker compose](#docker-compose)\n\t\t\t- [防止爬虫抓取](#防止爬虫抓取)\n\t\t- [使用 Railway 部署](#使用-railway-部署)\n\t\t\t- [Railway 环境变量](#railway-环境变量)\n\t\t- [手动打包](#手动打包)\n\t\t\t- [后端服务](#后端服务-1)\n\t\t\t- [前端网页](#前端网页-1)\n\t- [Auth Proxy Mode](#auth-proxy-mode)\n\t- [Web Search 网络搜索功能](#web-search-网络搜索功能)\n\t\t- [功能特性](#功能特性)\n\t\t- [配置方式](#配置方式)\n\t\t- [使用方式](#使用方式)\n\t\t- [技术实现](#技术实现)\n\t\t- [注意事项](#注意事项)\n\t- [常见问题](#常见问题)\n\t- [参与贡献](#参与贡献)\n\t- [赞助](#赞助)\n\t- [License](#license)\n## 介绍\n\n使用官方 `OpenAI API` 访问 `ChatGPT`：\n\n`ChatGPTAPI` 使用 `gpt-4.1` 通过 `OpenAI` 官方 `API` 调用 `ChatGPT`（需要 API 密钥）。\n\n警告：\n1. 使用 `API` 时，如果网络不通，那是国内被墙了，你需要自建代理，绝对不要使用别人的公开代理，那是危险的。\n2. 把项目发布到公共网络时，你应该设置 `AUTH_SECRET_KEY` 变量添加你的密码访问权限，你也应该修改 `index.html` 中的 `title`，防止被关键词搜索到。\n\n设置方式：\n1. 进入 `service\u002F.env.example` 文件，复制内容到 `service\u002F.env` 文件\n2. 填写 `OPENAI_API_KEY` 字段 [(获取 apiKey)](https:\u002F\u002Fplatform.openai.com\u002Foverview)\n\n环境变量：\n\n全部参数变量请查看或[这里](#环境变量)\n\n```\n\u002Fservice\u002F.env.example\n```\n\n## 待实现路线\n[✓] 双模型\n\n[✓] 多会话储存和上下文逻辑\n\n[✓] 对代码等消息类型的格式化美化处理\n\n[✓] 支持用户登录注册\n\n[✓] 前端页面设置 apikey 等信息\n\n[✓] 数据导入、导出\n\n[✓] 保存消息到本地图片\n\n[✓] 界面多语言\n\n[✓] 界面主题\n\n[✓] VLLM API 模型支持\n\n[✓] 深度思考模式开关\n\n[✗] More...\n\n## 前置要求\n\n### Node\n\n`node` 需要 `^20 || ^22 || ^24` 版本，使用 [nvm](https:\u002F\u002Fgithub.com\u002Fnvm-sh\u002Fnvm) 可管理本地多个 `node` 版本\n\n```shell\nnode -v\n```\n\n### PNPM\n如果你没有安装过 `pnpm`\n```shell\nnpm install pnpm -g\n```\n\n### 填写API密钥\n获取 `OpenAI API Key` 并填写本地环境变量 [跳转](#介绍)\n\n```\n# service\u002F.env 文件\n\n# OpenAI API Key - https:\u002F\u002Fplatform.openai.com\u002Foverview\nOPENAI_API_KEY=\n```\n\n## 安装依赖\n\n> 为了简便 `后端开发人员` 的了解负担，所以并没有采用前端 `workspace` 模式，而是分文件夹存放。如果只需要前端页面做二次开发，删除 `service` 文件夹即可。\n\n### 后端\n\n进入文件夹 `\u002Fservice` 运行以下命令\n\n```shell\npnpm install\n```\n\n### 前端\n根目录下运行以下命令\n```shell\npnpm bootstrap\n```\n\n## 测试环境运行\n### 后端服务\n\n进入文件夹 `\u002Fservice` 运行以下命令\n\n```shell\npnpm start\n```\n\n### 前端网页\n根目录下运行以下命令\n```shell\npnpm dev\n```\n\n## 环境变量\n\n`API` 可用：\n\n- `OPENAI_API_KEY` 必填\n- `OPENAI_API_BASE_URL` 设置接口地址，可选，默认：`https:\u002F\u002Fapi.openai.com`\n- `OPENAI_API_DISABLE_DEBUG` 设置接口关闭 debug 日志，可选，默认：empty 不关闭\n\n通用：\n\n- `AUTH_SECRET_KEY` 访问权限密钥，可选\n- `MAX_REQUEST_PER_HOUR` 每小时最大请求次数，可选，默认无限\n- `TIMEOUT_MS` 超时，单位毫秒，可选\n- `SOCKS_PROXY_HOST` 和 `SOCKS_PROXY_PORT` 一起时生效，可选\n- `SOCKS_PROXY_PORT` 和 `SOCKS_PROXY_HOST` 一起时生效，可选\n- `HTTPS_PROXY` 支持 `http`，`https`, `socks5`，可选\n\n## 打包\n\n### 使用 Docker\n\n#### Docker 参数示例\n\n- `OPENAI_API_KEY` 必填\n- `OPENAI_API_BASE_URL` 可选，设置接口地址，默认：`https:\u002F\u002Fapi.openai.com`\n- `OPENAI_API_MODEL` 可选，指定使用的模型\n- `AUTH_SECRET_KEY` 访问密码，可选\n- `TIMEOUT_MS` 超时，单位毫秒，可选\n- `SOCKS_PROXY_HOST` 可选，与 SOCKS_PROXY_PORT 一起使用\n- `SOCKS_PROXY_PORT` 可选，与 SOCKS_PROXY_HOST 一起使用\n- `SOCKS_PROXY_USERNAME` 可选，与 SOCKS_PROXY_HOST 和 SOCKS_PROXY_PORT 一起使用\n- `SOCKS_PROXY_PASSWORD` 可选，与 SOCKS_PROXY_HOST 和 SOCKS_PROXY_PORT 一起使用\n- `HTTPS_PROXY` 可选，支持 http，https, socks5\n\n![docker](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fchatgpt-web-dev_chatgpt-web_readme_17e14c2ebe69.png)\n\n#### Docker build & Run\n\n```bash\nGIT_COMMIT_HASH=`git rev-parse HEAD`\nRELEASE_VERSION=`git branch --show-current`\ndocker build --build-arg GIT_COMMIT_HASH=${GIT_COMMIT_HASH} --build-arg RELEASE_VERSION=${RELEASE_VERSION} -t chatgpt-web .\n\n# 前台运行\n# 如果在宿主机运行 mongodb 则使用 MONGODB_URL=mongodb:\u002F\u002Fhost.docker.internal:27017\u002Fchatgpt\ndocker run --name chatgpt-web --rm -it -p 3002:3002 --env OPENAI_API_KEY=your_api_key --env MONGODB_URL=your_mongodb_url chatgpt-web\n\n# 后台运行\ndocker run --name chatgpt-web -d -p 127.0.0.1:3002:3002 --env OPENAI_API_KEY=your_api_key --env MONGODB_URL=your_mongodb_url chatgpt-web\n\n# 运行地址\nhttp:\u002F\u002Flocalhost:3002\u002F\n```\n\n#### Docker compose\n\n[Hub 地址](https:\u002F\u002Fhub.docker.com\u002Fr\u002Fchatgptweb\u002Fchatgpt-web)\n\n```yml\nversion: '3'\n\nservices:\n  app:\n    image: chatgptweb\u002Fchatgpt-web # 总是使用latest,更新时重新pull该tag镜像即可\n    container_name: chatgptweb\n    restart: unless-stopped\n    ports:\n      - 3002:3002\n    depends_on:\n      - database\n    environment:\n      TZ: Asia\u002FShanghai\n      # 每小时最大请求次数，可选，默认无限\n      MAX_REQUEST_PER_HOUR: 0\n      # 访问jwt加密参数，可选 不为空则允许登录 同时需要设置 MONGODB_URL\n      AUTH_SECRET_KEY: xxx\n      # 网站名称\n      SITE_TITLE: ChatGpt Web\n      # mongodb 的连接字符串\n      MONGODB_URL: 'mongodb:\u002F\u002Fchatgpt:xxxx@database:27017'\n      # 开启注册之后 密码加密的盐\n      PASSWORD_MD5_SALT: xxx\n      # 开启注册之后 超级管理邮箱\n      ROOT_USER: me@example.com\n      # 网站是否开启注册 必须开启, 否则管理员都没法注册, 可后续关闭\n      REGISTER_ENABLED: true\n      # 更多配置, 在运行后, 注册管理员, 在管理员页面中设置\n    links:\n      - database\n\n  database:\n    image: mongo\n    container_name: chatgptweb-database\n    restart: unless-stopped\n    ports:\n      - '27017:27017'\n    expose:\n      - '27017'\n    volumes:\n      - mongodb:\u002Fdata\u002Fdb\n    environment:\n      MONGO_INITDB_ROOT_USERNAME: chatgpt\n      MONGO_INITDB_ROOT_PASSWORD: xxxx\n      MONGO_INITDB_DATABASE: chatgpt\n\nvolumes:\n  mongodb: {}\n```\n- `OPENAI_API_BASE_URL`  可选，设置 `OPENAI_API_KEY` 时可用\n\n#### 防止爬虫抓取\n\n**nginx**\n\n将下面配置填入nginx配置文件中，可以参考 `docker-compose\u002Fnginx\u002Fnginx.conf` 文件中添加反爬虫的方法\n\n```\n    # 防止爬虫抓取\n    if ($http_user_agent ~* \"360Spider|JikeSpider|Spider|spider|bot|Bot|2345Explorer|curl|wget|webZIP|qihoobot|Baiduspider|Googlebot|Googlebot-Mobile|Googlebot-Image|Mediapartners-Google|Adsbot-Google|Feedfetcher-Google|Yahoo! Slurp|Yahoo! Slurp China|YoudaoBot|Sosospider|Sogou spider|Sogou web spider|MSNBot|ia_archiver|Tomato Bot|NSPlayer|bingbot\"){\n      return 403;\n    }\n```\n\n###  使用 Railway 部署\n\n[![Deploy on Railway](https:\u002F\u002Frailway.app\u002Fbutton.svg)](https:\u002F\u002Frailway.app\u002Fnew\u002Ftemplate\u002Fyytmgc)\n\n> 参考这个 issue 详细教程  https:\u002F\u002Fgithub.com\u002FKerwin1202\u002Fchatgpt-web\u002Fissues\u002F266\n\n> 注意: `Railway` 修改环境变量会重新 `Deploy`\n\n### 手动打包\n#### 后端服务\n> 如果你不需要本项目的 `node` 接口，可以省略如下操作\n\n复制 `service` 文件夹到你有 `node` 服务环境的服务器上。\n\n```shell\n# 安装\npnpm install\n\n# 打包\npnpm build\n\n# 运行\npnpm prod\n```\n\nPS: 不进行打包，直接在服务器上运行 `pnpm start` 也可\n\n#### 前端网页\n\n1、修改根目录下 `.env` 文件中的 `VITE_GLOB_API_URL` 为你的实际后端接口地址\n\n2、根目录下运行以下命令，然后将 `dist` 文件夹内的文件复制到你网站服务的根目录下\n\n[参考信息](https:\u002F\u002Fcn.vitejs.dev\u002Fguide\u002Fstatic-deploy.html#building-the-app)\n\n```shell\npnpm build\n```\n\n## Auth Proxy Mode\n\n> [!WARNING]\n> 该功能仅适用于有相关经验的运维人员在集成企业内部账号管理系统时部署 配置不当可能会导致安全风险\n\n设置环境变量 `AUTH_PROXY_ENABLED=true` 即可开启 auth proxy 模式\n\n在开启该功能后 需确保 chatgpt-web 只能通过反向代理访问\n\n由反向代理进行进行身份验证 并再转发请求时携带请求头标识用户身份\n默认请求头为 `X-Email` 并可以通过设置环境变量 `AUTH_PROXY_HEADER_NAME` 自定义配置\n\n推荐当前 Idp 使用 LDAP 协议的 可以选择使用 [authelia](https:\u002F\u002Fwww.authelia.com)\n\n当前 Idp 使用 OIDC 协议的 可以选择使用 [oauth2-proxy](https:\u002F\u002Foauth2-proxy.github.io\u002Foauth2-proxy)\n\n## Web Search 网络搜索功能\n\n> [!TIP]\n> Web Search 功能基于 [Tavily API](https:\u002F\u002Ftavily.com\u002F) 实现，可以让 ChatGPT 获取最新的网络信息来回答问题。\n\n### 功能特性\n\n- **实时网络搜索**: 基于 Tavily API 获取最新的网络信息\n- **智能查询提取**: 自动从用户问题中提取最相关的搜索关键词\n- **搜索结果整合**: 将搜索结果无缝整合到 AI 对话中\n- **按会话控制**: 每个对话可以独立开启或关闭搜索功能\n- **搜索历史记录**: 保存搜索查询和结果到数据库\n- **可配置系统消息**: 支持自定义搜索相关的系统提示消息\n\n### 配置方式\n\n#### 1. 获取 Tavily API Key\n\n1. 访问 [Tavily 官网](https:\u002F\u002Ftavily.com\u002F) 注册账号\n2. 获取 API Key\n\n#### 2. 管理员配置\n\n1. 以管理员身份登录系统\n2. 进入系统设置页面\n3. 找到 \"Web Search 配置\" 选项\n4. 填写以下配置：\n   - **启用状态**: 开启\u002F关闭全局搜索功能\n   - **API Key**: 填入 Tavily API Key\n   - **最大搜索结果数**: 设置每次搜索返回的最大结果数量（1-20，默认10）\n   - **搜索查询系统消息**: 用于提取搜索关键词的提示模板\n   - **搜索结果系统消息**: 用于处理搜索结果的提示模板\n\n#### 3. 系统消息模板\n\n**搜索查询提取模板** (用于从用户问题中提取搜索关键词):\n```\nYou are a search query extraction assistant. Extract the most relevant search query from user's question and wrap it with \u003Csearch_query>\u003C\u002Fsearch_query> tags.\nCurrent time: {current_time}\n```\n\n**搜索结果处理模板** (用于处理包含搜索结果的对话):\n```\nYou are a helpful assistant with access to real-time web search results. Use the provided search information to give accurate and up-to-date responses.\nCurrent time: {current_time}\n```\n\n### 使用方式\n\n#### 用户端操作\n\n1. **开启搜索功能**:\n   - 在对话界面中，找到搜索开关按钮\n   - 点击开启当前会话的网络搜索功能\n\n2. **提问获取实时信息**:\n   - 开启搜索后，直接向 ChatGPT 提问需要实时信息的问题\n   - 系统会自动搜索相关信息并整合到回答中\n\n3. **查看搜索历史**:\n   - 搜索查询和结果会保存在数据库中\n   - 可以通过数据库查看具体的搜索记录\n\n#### 工作流程\n\n1. **用户提问**: 用户在开启搜索的会话中提问\n2. **查询提取**: 系统使用 AI 从问题中提取搜索关键词\n3. **网络搜索**: 调用 Tavily API 进行实时搜索\n4. **结果整合**: 将搜索结果作为上下文提供给 AI\n5. **生成回答**: AI 基于搜索结果生成更准确的回答\n\n### 技术实现\n\n- **搜索引擎**: Tavily API\n- **查询提取**: 使用 OpenAI API 智能提取关键词\n- **结果格式**: JSON 格式存储完整搜索结果\n- **数据存储**: MongoDB 存储搜索查询和结果\n- **超时设置**: 搜索请求超时时间为 300 秒\n- **结果数量控制**: 支持配置每次搜索返回的最大结果数量（1-20）\n\n### 注意事项\n\n- Web Search 功能需要额外的 Tavily API 费用\n- 搜索功能会增加响应时间\n- 建议根据实际需求选择性开启\n- 管理员可以控制全局搜索功能的开启状态\n- 每个会话可以独立控制是否使用搜索功能\n- 最大搜索结果数设置会影响搜索的详细程度和 API 费用\n\n\n## 上下文窗口控制\n\n> [!TIP]\n> 上下文窗口控制功能可以让用户灵活管理 AI 对话中的上下文信息，优化模型性能和对话效果。\n\n### 功能特性\n\n- **上下文管理**: 控制模型可以参考的聊天记录数量\n- **按对话控制**: 每个对话可以独立开启或关闭上下文窗口\n- **实时切换**: 在对话过程中可以随时切换上下文模式\n- **记忆管理**: 灵活控制 AI 的记忆范围和连续性\n- **可配置数量**: 管理员可设置上下文消息的最大数量\n\n### 工作原理\n\n上下文窗口决定了在生成过程中，模型可以参考的当前会话下聊天记录的量：\n\n- **合理的上下文窗口大小**有助于模型生成连贯且相关的文本\n- **避免因为参考过多的上下文**而导致混乱或不相关的输出\n- **关闭上下文窗口**会导致会话失去记忆，每次提问之间将完全独立\n\n### 使用方式\n\n#### 1. 启用\u002F关闭上下文窗口\n\n1. **进入对话界面**: 在任何对话会话中都可以使用此功能\n2. **找到控制开关**: 在对话界面中找到\"上下文窗口\"开关按钮\n3. **切换模式**:\n   - **开启**: 模型会参考之前的聊天记录，保持对话连贯性\n   - **关闭**: 模型不会参考历史记录，每个问题独立处理\n\n#### 2. 使用场景\n\n**建议开启上下文窗口的情况：**\n- 需要连续对话和上下文关联\n- 复杂主题的深入讨论\n- 多轮问答和逐步解决问题\n- 需要 AI 记住之前提到的信息\n\n**建议关闭上下文窗口的情况：**\n- 独立的简单问题\n- 避免历史信息干扰新问题\n- 处理不相关的多个主题\n- 需要\"重新开始\"的场景\n\n#### 3. 管理员配置\n\n管理员可以在系统设置中配置：\n- **最大上下文数量**: 设置会话中包含的上下文消息数量\n- **默认状态**: 设置新对话的默认上下文窗口状态\n\n### 技术实现\n\n- **上下文截取**: 自动截取指定数量的历史消息\n- **状态持久化**: 每个对话独立保存上下文窗口开关状态\n- **实时生效**: 切换后立即对下一条消息生效\n- **内存优化**: 合理控制上下文长度，避免超出模型限制\n\n### 注意事项\n\n- **对话连贯性**: 关闭上下文窗口会影响对话的连续性\n- **Token 消耗**: 更多的上下文会增加 Token 使用量\n- **响应质量**: 适当的上下文有助于提高回答质量\n- **模型限制**: 需要考虑不同模型的上下文长度限制\n\n## VLLM API 深度思考模式控制\n\n> [!TIP]\n> 深度思考模式控制功能仅在后端配置为 VLLM API 时可用，可以让用户选择是否启用模型的深度思考功能。\n\n### 功能特性\n\n- **VLLM API 专属功能**: 仅在后端使用 VLLM API 时可用\n- **按对话控制**: 每个对话可以独立开启或关闭深度思考模式\n- **实时切换**: 在对话过程中可以随时切换深度思考模式\n- **性能优化**: 关闭深度思考可以提高响应速度，降低计算成本\n\n### 工作原理\n\n开启深度思考后，模型会用更多的计算资源以及消耗更长时间，模拟更复杂的思维链路进行逻辑推理：\n\n- **适合复杂任务或高要求场景**，比如数学题推导、项目规划\n- **日常简单查询无需开启**深度思考模式\n- **关闭深度思考**可以获得更快的响应速度\n\n### 使用前提\n\n**必须满足以下条件才能使用此功能：**\n\n1. **后端配置**: 后端必须配置为使用 VLLM API 接口\n2. **模型支持**: 使用的模型必须支持深度思考功能\n3. **API 兼容**: VLLM API 版本需要支持思考模式控制参数\n\n### 使用方式\n\n#### 1. 启用\u002F关闭深度思考模式\n\n1. **进入对话界面**: 在支持 VLLM API 的对话会话中\n2. **找到控制开关**: 在对话界面中找到\"深度思考\"开关按钮\n3. **切换模式**: \n   - 开启：模型将进行深度思考，提供更详细和深入的回答\n   - 关闭：模型将直接回答，响应更快但可能较为简洁\n\n#### 2. 使用场景\n\n**建议开启深度思考的情况：**\n- 复杂问题需要深入分析\n- 需要逻辑推理和多步骤思考\n- 对回答质量要求较高的场景\n- 时间不敏感的情况\n\n**建议关闭深度思考的情况：**\n- 简单问题快速回答\n- 需要快速响应的场景\n- 降低计算成本的需求\n- 批量处理简单任务\n\n#### 3. 技术实现\n\n- **API 参数**: 通过 VLLM API 的 `disable_thinking` 参数控制\n- **状态保存**: 每个对话会话独立保存深度思考开关状态\n- **实时生效**: 切换后立即对下一条消息生效\n\n### 注意事项\n\n- **仅限 VLLM API**: 此功能仅在后端使用 VLLM API 时可用，其他 API（如 OpenAI API）不支持此功能\n- **模型依赖**: 不是所有模型都支持深度思考模式，请确认您使用的模型支持此功能\n- **响应差异**: 关闭深度思考可能会影响回答的详细程度和质量\n- **成本考虑**: 开启深度思考通常会增加计算成本和响应时间\n\n## 常见问题\nQ: 为什么 `Git` 提交总是报错？\n\nA: 因为有提交信息验证，请遵循 [Commit 指南](.\u002FCONTRIBUTING.md)\n\nQ: 如果只使用前端页面，在哪里改请求接口？\n\nA: 根目录下 `.env` 文件中的 `VITE_GLOB_API_URL` 字段。\n\nQ: 文件保存时全部爆红?\n\nA: `vscode` 请安装项目推荐插件，或手动安装 `Eslint` 插件。\n\nQ: 前端没有打字机效果？\n\nA: 一种可能原因是经过 Nginx 反向代理，开启了 buffer，则 Nginx 会尝试从后端缓冲一定大小的数据再发送给浏览器。请尝试在反代参数后添加 `proxy_buffering off;`，然后重载 Nginx。其他 web server 配置同理。\n\n## 参与贡献\n\n贡献之前请先阅读 [贡献指南](.\u002FCONTRIBUTING.md)\n\n感谢所有做过贡献的人!\n\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fchatgpt-web-dev\u002Fchatgpt-web\u002Fgraphs\u002Fcontributors\">\n  \u003Cimg alt=\"Contributors Image\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fchatgpt-web-dev_chatgpt-web_readme_60d55bfa5e2c.png\" width=\"550\" \u002F>\n\u003C\u002Fa>\n\n## Star 历史\n\n\u003Cpicture>\n  \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fchatgpt-web-dev_chatgpt-web_readme_10844f01ce8a.png&theme=dark\" \u002F>\n  \u003Csource media=\"(prefers-color-scheme: light)\" srcset=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fchatgpt-web-dev_chatgpt-web_readme_10844f01ce8a.png\" \u002F>\n  \u003Cimg alt=\"Star History Chart\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fchatgpt-web-dev_chatgpt-web_readme_10844f01ce8a.png\" width=\"550\" \u002F>\n\u003C\u002Fpicture>\n\n## 赞助\n如果你觉得这个项目对你有帮助，请给我点个Star。并且情况允许的话，可以给我一点点支持，总之非常感谢支持～\n\n\u003Cdiv style=\"display: flex; gap: 20px;\">\n\t\u003Cdiv style=\"text-align: center\">\n\t\t\u003Cimg style=\"width: 200px\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fchatgpt-web-dev_chatgpt-web_readme_0f35aae4afb3.png\" alt=\"微信\" \u002F>\n\t\t\u003Cp>WeChat Pay\u003C\u002Fp>\n\t\u003C\u002Fdiv>\n\t\u003Cdiv style=\"text-align: center\">\n\t\t\u003Cimg style=\"width: 200px\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fchatgpt-web-dev_chatgpt-web_readme_4d04470f4aa3.png\" alt=\"支付宝\" \u002F>\n\t\t\u003Cp>Alipay\u003C\u002Fp>\n\t\u003C\u002Fdiv>\n\u003C\u002Fdiv>\n\n---\n\n感谢 [DigitalOcean](https:\u002F\u002Fwww.digitalocean.com\u002F) 赞助提供开源积分用于运行基础设施服务器\n\n\u003Cp>\n  \u003Ca href=\"https:\u002F\u002Fwww.digitalocean.com\u002F\">\n    \u003Cimg src=\"https:\u002F\u002Fopensource.nyc3.cdn.digitaloceanspaces.com\u002Fattribution\u002Fassets\u002FSVG\u002FDO_Logo_horizontal_blue.svg\" width=\"201px\" alt=\"digitalocean\">\n  \u003C\u002Fa>\n\u003C\u002Fp>\n\n## License\n[MIT © github.com\u002Fchatgpt-web-dev Contributors](.\u002FLICENSE)\n","# ChatGPT Web\n\n[中文](.\u002FREADME.md) | [English](.\u002FREADME.en.md)\n\n\n## 说明\n\n> [!IMPORTANT]\n> **此项目 Fork 自 [Chanzhaoyu\u002Fchatgpt-web](https:\u002F\u002Fgithub.com\u002FChanzhaoyu\u002Fchatgpt-web)**\n>\n> 由于原项目作者不愿意引入对数据库的依赖 故制作该永久分叉独立开发 [详见讨论](https:\u002F\u002Fgithub.com\u002FChanzhaoyu\u002Fchatgpt-web\u002Fpull\u002F589#issuecomment-1469207694)\n>\n> 再次感谢 [Chanzhaoyu](https:\u002F\u002Fgithub.com\u002FChanzhaoyu) 大佬对开源的贡献 🙏\n\n新增了部分特色功能:\n\n[✓] 注册 & 登录 & 重置密码 & 2FA (双重身份验证)\n\n[✓] 同步历史会话\n\n[✓] 前端页面设置 apikey (API 密钥)\n\n[✓] 自定义敏感词\n\n[✓] 每个会话设置独有 Prompt (提示词)\n\n[✓] 用户管理\n\n[✓] 多 Key 随机\n\n[✓] 对话数量限制 & 设置不同用户对话数量 & 兑换数量\n\n[✓] 通过 auth proxy (认证代理) 功能实现 sso (单点登录) 登录 (配合第三方身份验证反向代理 可实现支持 LDAP\u002FOIDC\u002FSAML 等协议登录)\n\n[✓] Web Search 网络搜索功能 (基于 Tavily API 实现实时网络搜索)\n\n[✓] VLLM API 模型支持 & 可选关闭深度思考模式\n\n[✓] 上下文窗口控制\n\n\n> [!CAUTION]\n> 声明：此项目只发布于 Github，基于 MIT 协议，免费且作为开源学习使用。并且不会有任何形式的卖号、付费服务、讨论群、讨论组等行为。谨防受骗。\n\n## 截图\n\n![cover3](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fchatgpt-web-dev_chatgpt-web_readme_db5fc6230b3f.jpg)\n![cover](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fchatgpt-web-dev_chatgpt-web_readme_d372613f839a.png)\n![cover2](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fchatgpt-web-dev_chatgpt-web_readme_925632e60416.png)\n![cover3](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fchatgpt-web-dev_chatgpt-web_readme_a49d9f6404a6.jpg)\n![cover3](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fchatgpt-web-dev_chatgpt-web_readme_8acd7c3172e7.jpg)\n![cover3](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fchatgpt-web-dev_chatgpt-web_readme_0b696fcc0f55.jpg)\n![cover3](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fchatgpt-web-dev_chatgpt-web_readme_d47ecbdcbb45.jpg)\n![userlimit](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fchatgpt-web-dev_chatgpt-web_readme_1ae71cf7b118.png)\n![setmanuallimit](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fchatgpt-web-dev_chatgpt-web_readme_c0e4f2ded93b.png)\n![giftcarddb](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fchatgpt-web-dev_chatgpt-web_readme_7508f2ec5da1.png)\n\n- [ChatGPT Web](#chatgpt-web)\n\t- [介绍](#介绍)\n\t- [待实现路线](#待实现路线)\n\t- [前置要求](#前置要求)\n\t\t- [Node](#node)\n\t\t- [PNPM](#pnpm)\n\t\t- [填写密钥](#填写密钥)\n\t- [安装依赖](#安装依赖)\n\t\t- [后端](#后端)\n\t\t- [前端](#前端)\n\t- [测试环境运行](#测试环境运行)\n\t\t- [后端服务](#后端服务)\n\t\t- [前端网页](#前端网页)\n\t- [环境变量](#环境变量)\n\t- [打包](#打包)\n\t\t- [使用 Docker](#使用-docker)\n\t\t\t- [Docker 参数示例](#docker-参数示例)\n\t\t\t- [Docker build & Run](#docker-build--run)\n\t\t\t- [Docker compose](#docker-compose)\n\t\t\t- [防止爬虫抓取](#防止爬虫抓取)\n\t\t- [使用 Railway 部署](#使用-railway-部署)\n\t\t\t- [Railway 环境变量](#railway-环境变量)\n\t\t- [手动打包](#手动打包)\n\t\t\t- [后端服务](#后端服务-1)\n\t\t\t- [前端网页](#前端网页-1)\n\t- [Auth Proxy Mode](#auth-proxy-mode)\n\t- [Web Search 网络搜索功能](#web-search-网络搜索功能)\n\t\t- [功能特性](#功能特性)\n\t\t- [配置方式](#配置方式)\n\t\t- [使用方式](#使用方式)\n\t\t- [技术实现](#技术实现)\n\t\t- [注意事项](#注意事项)\n\t- [常见问题](#常见问题)\n\t- [参与贡献](#参与贡献)\n\t- [赞助](#赞助)\n\t- [License](#license)\n## 介绍\n\n使用官方 `OpenAI API` (应用程序接口) 访问 `ChatGPT`：\n\n`ChatGPTAPI` 使用 `gpt-4.1` 通过 `OpenAI` 官方 `API` 调用 `ChatGPT`（需要 API 密钥）。\n\n警告：\n1. 使用 `API` 时，如果网络不通，那是国内被墙了，你需要自建代理，绝对不要使用别人的公开代理，那是危险的。\n2. 把项目发布到公共网络时，你应该设置 `AUTH_SECRET_KEY` 变量添加你的密码访问权限，你也应该修改 `index.html` 中的 `title`，防止被关键词搜索到。\n\n设置方式：\n1. 进入 `service\u002F.env.example` 文件，复制内容到 `service\u002F.env` 文件\n2. 填写 `OPENAI_API_KEY` 字段 [(获取 apiKey)](https:\u002F\u002Fplatform.openai.com\u002Foverview)\n\n环境变量：\n\n全部参数变量请查看或 [这里](#环境变量)\n\n```\n\u002Fservice\u002F.env.example\n```\n\n## 待实现路线\n[✓] 双模型\n\n[✓] 多会话储存和上下文逻辑\n\n[✓] 对代码等消息类型的格式化美化处理\n\n[✓] 支持用户登录注册\n\n[✓] 前端页面设置 apikey 等信息\n\n[✓] 数据导入、导出\n\n[✓] 保存消息到本地图片\n\n[✓] 界面多语言\n\n[✓] 界面主题\n\n[✓] VLLM API 模型支持\n\n[✓] 深度思考模式开关\n\n[✗] More...\n\n## 前置要求\n\n### Node\n\n`node` 需要 `^20 || ^22 || ^24` 版本，使用 [nvm](https:\u002F\u002Fgithub.com\u002Fnvm-sh\u002Fnvm) 可管理本地多个 `node` 版本\n\n```shell\nnode -v\n```\n\n### PNPM\n如果你没有安装过 `pnpm`\n```shell\nnpm install pnpm -g\n```\n\n### 填写 API 密钥\n获取 `OpenAI API Key` 并填写本地环境变量 [跳转](#介绍)\n\n```\n# service\u002F.env 文件\n\n# OpenAI API Key - https:\u002F\u002Fplatform.openai.com\u002Foverview\nOPENAI_API_KEY=\n```\n\n## 安装依赖\n\n> 为了简便 `后端开发人员` 的了解负担，所以并没有采用前端 `workspace` 模式，而是分文件夹存放。如果只需要前端页面做二次开发，删除 `service` 文件夹即可。\n\n### 后端\n\n进入文件夹 `\u002Fservice` 运行以下命令\n\n```shell\npnpm install\n```\n\n### 前端\n根目录下运行以下命令\n```shell\npnpm bootstrap\n```\n\n## 测试环境运行\n### 后端服务\n\n进入文件夹 `\u002Fservice` 运行以下命令\n\n```shell\npnpm start\n```\n\n### 前端网页\n根目录下运行以下命令\n```shell\npnpm dev\n```\n\n## 环境变量\n\n`API` 可用：\n\n- `OPENAI_API_KEY` 必填\n- `OPENAI_API_BASE_URL` 设置接口地址，可选，默认：`https:\u002F\u002Fapi.openai.com`\n- `OPENAI_API_DISABLE_DEBUG` 设置接口关闭 debug 日志，可选，默认：empty 不关闭\n\n通用：\n\n- `AUTH_SECRET_KEY` 访问权限密钥，可选\n- `MAX_REQUEST_PER_HOUR` 每小时最大请求次数，可选，默认无限\n- `TIMEOUT_MS` 超时，单位毫秒，可选\n- `SOCKS_PROXY_HOST` 和 `SOCKS_PROXY_PORT` 一起时生效，可选\n- `SOCKS_PROXY_PORT` 和 `SOCKS_PROXY_HOST` 一起时生效，可选\n- `HTTPS_PROXY` 支持 `http`，`https`, `socks5`，可选\n\n## 打包\n\n### 使用 Docker\n\n#### Docker 参数示例\n\n- `OPENAI_API_KEY` 必填\n- `OPENAI_API_BASE_URL` 可选，设置接口地址，默认：`https:\u002F\u002Fapi.openai.com`\n- `OPENAI_API_MODEL` 可选，指定使用的模型\n- `AUTH_SECRET_KEY` 访问密码，可选\n- `TIMEOUT_MS` 超时，单位毫秒，可选\n- `SOCKS_PROXY_HOST` 可选，与 SOCKS_PROXY_PORT 一起使用\n- `SOCKS_PROXY_PORT` 可选，与 SOCKS_PROXY_HOST 一起使用\n- `SOCKS_PROXY_USERNAME` 可选，与 SOCKS_PROXY_HOST 和 SOCKS_PROXY_PORT 一起使用\n- `SOCKS_PROXY_PASSWORD` 可选，与 SOCKS_PROXY_HOST 和 SOCKS_PROXY_PORT 一起使用\n- `HTTPS_PROXY` 可选，支持 http，https, socks5\n\n![docker](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fchatgpt-web-dev_chatgpt-web_readme_17e14c2ebe69.png)\n\n#### Docker build & Run\n\n```bash\nGIT_COMMIT_HASH=`git rev-parse HEAD`\nRELEASE_VERSION=`git branch --show-current`\ndocker build --build-arg GIT_COMMIT_HASH=${GIT_COMMIT_HASH} --build-arg RELEASE_VERSION=${RELEASE_VERSION} -t chatgpt-web .\n\n# 前台运行\n# 如果在宿主机运行 mongodb 则使用 MONGODB_URL=mongodb:\u002F\u002Fhost.docker.internal:27017\u002Fchatgpt\ndocker run --name chatgpt-web --rm -it -p 3002:3002 --env OPENAI_API_KEY=your_api_key --env MONGODB_URL=your_mongodb_url chatgpt-web\n\n# 后台运行\ndocker run --name chatgpt-web -d -p 127.0.0.1:3002:3002 --env OPENAI_API_KEY=your_api_key --env MONGODB_URL=your_mongodb_url chatgpt-web\n\n# 运行地址\nhttp:\u002F\u002Flocalhost:3002\u002F\n```\n\n#### Docker compose\n\n[Hub 地址](https:\u002F\u002Fhub.docker.com\u002Fr\u002Fchatgptweb\u002Fchatgpt-web)\n\n```yml\nversion: '3'\n\nservices:\n  app:\n    image: chatgptweb\u002Fchatgpt-web # 总是使用 latest,更新时重新 pull 该 tag 镜像即可\n    container_name: chatgptweb\n    restart: unless-stopped\n    ports:\n      - 3002:3002\n    depends_on:\n      - database\n    environment:\n      TZ: Asia\u002FShanghai\n      # 每小时最大请求次数，可选，默认无限\n      MAX_REQUEST_PER_HOUR: 0\n      # 访问 jwt 加密参数，可选 不为空则允许登录 同时需要设置 MONGODB_URL\n      AUTH_SECRET_KEY: xxx\n      # 网站名称\n      SITE_TITLE: ChatGpt Web\n      # mongodb 的连接字符串\n      MONGODB_URL: 'mongodb:\u002F\u002Fchatgpt:xxxx@database:27017'\n      # 开启注册之后 密码加密的盐\n      PASSWORD_MD5_SALT: xxx\n      # 开启注册之后 超级管理邮箱\n      ROOT_USER: me@example.com\n      # 网站是否开启注册 必须开启，否则管理员都没法注册，可后续关闭\n      REGISTER_ENABLED: true\n      # 更多配置，在运行后，注册管理员，在管理员页面中设置\n    links:\n      - database\n\n  database:\n    image: mongo\n    container_name: chatgptweb-database\n    restart: unless-stopped\n    ports:\n      - '27017:27017'\n    expose:\n      - '27017'\n    volumes:\n      - mongodb:\u002Fdata\u002Fdb\n    environment:\n      MONGO_INITDB_ROOT_USERNAME: chatgpt\n      MONGO_INITDB_ROOT_PASSWORD: xxxx\n      MONGO_INITDB_DATABASE: chatgpt\n\nvolumes:\n  mongodb: {}\n```\n- `OPENAI_API_BASE_URL`  可选，设置 `OPENAI_API_KEY` 时可用\n\n#### 防止爬虫抓取\n\n**nginx**\n\n将下面配置填入 nginx 配置文件中，可以参考 `docker-compose\u002Fnginx\u002Fnginx.conf` 文件中添加反爬虫的方法\n\n```\n    # 防止爬虫抓取\n    if ($http_user_agent ~* \"360Spider|JikeSpider|Spider|spider|bot|Bot|2345Explorer|curl|wget|webZIP|qihoobot|Baiduspider|Googlebot|Googlebot-Mobile|Googlebot-Image|Mediapartners-Google|Adsbot-Google|Feedfetcher-Google|Yahoo! Slurp|Yahoo! Slurp China|YoudaoBot|Sosospider|Sogou spider|Sogou web spider|MSNBot|ia_archiver|Tomato Bot|NSPlayer|bingbot\"){\n      return 403;\n    }\n```\n\n###  使用 Railway 部署\n\n[![Deploy on Railway](https:\u002F\u002Frailway.app\u002Fbutton.svg)](https:\u002F\u002Frailway.app\u002Fnew\u002Ftemplate\u002Fyytmgc)\n\n> 参考这个 issue 详细教程  https:\u002F\u002Fgithub.com\u002FKerwin1202\u002Fchatgpt-web\u002Fissues\u002F266\n\n> 注意：`Railway` 修改环境变量会重新 `Deploy`\n\n### 手动打包\n#### 后端服务\n> 如果你不需要本项目的 `node` 接口，可以省略如下操作\n\n复制 `service` 文件夹到你有 `node` 服务环境的服务器上。\n\n```shell\n# 安装\npnpm install\n\n# 打包\npnpm build\n```\n\n# 运行\npnpm prod\n```\n\n注：不进行打包，直接在服务器上运行 `pnpm start` 也可\n\n#### 前端网页\n\n1、修改根目录下 `.env` 文件中的 `VITE_GLOB_API_URL` 为你的实际后端接口地址\n\n2、根目录下运行以下命令，然后将 `dist` 文件夹内的文件复制到你网站服务的根目录下\n\n[参考信息](https:\u002F\u002Fcn.vitejs.dev\u002Fguide\u002Fstatic-deploy.html#building-the-app)\n\n```shell\npnpm build\n```\n\n## 认证代理模式 (Auth Proxy Mode)\n\n> [!WARNING]\n> 该功能仅适用于有相关经验的运维人员在集成企业内部账号管理系统时部署 配置不当可能会导致安全风险\n\n设置环境变量 `AUTH_PROXY_ENABLED=true` 即可开启认证代理 (Auth Proxy) 模式\n\n在开启该功能后 需确保 chatgpt-web 只能通过反向代理访问\n\n由反向代理进行进行身份验证 并再转发请求时携带请求头标识用户身份\n默认请求头为 `X-Email` 并可以通过设置环境变量 `AUTH_PROXY_HEADER_NAME` 自定义配置\n\n推荐当前身份提供商 (Idp) 使用 LDAP (轻量级目录访问协议) 协议的 可以选择使用 [authelia](https:\u002F\u002Fwww.authelia.com)\n\n当前身份提供商 (Idp) 使用 OIDC (开放身份连接协议) 协议的 可以选择使用 [oauth2-proxy](https:\u002F\u002Foauth2-proxy.github.io\u002Foauth2-proxy)\n\n## 网络搜索功能 (Web Search)\n\n> [!TIP]\n> Web Search 功能基于 [Tavily API](https:\u002F\u002Ftavily.com\u002F) 实现，可以让 ChatGPT 获取最新的网络信息来回答问题。\n\n### 功能特性\n\n- **实时网络搜索**: 基于 Tavily API 获取最新的网络信息\n- **智能查询提取**: 自动从用户问题中提取最相关的搜索关键词\n- **搜索结果整合**: 将搜索结果无缝整合到 AI 对话中\n- **按会话控制**: 每个对话可以独立开启或关闭搜索功能\n- **搜索历史记录**: 保存搜索查询和结果到数据库\n- **可配置系统消息**: 支持自定义搜索相关的系统提示消息\n\n### 配置方式\n\n#### 1. 获取 Tavily API 密钥 (API Key)\n\n1. 访问 [Tavily 官网](https:\u002F\u002Ftavily.com\u002F) 注册账号\n2. 获取 API 密钥 (API Key)\n\n#### 2. 管理员配置\n\n1. 以管理员身份登录系统\n2. 进入系统设置页面\n3. 找到 \"Web Search 配置\" 选项\n4. 填写以下配置：\n   - **启用状态**: 开启\u002F关闭全局搜索功能\n   - **API 密钥 (API Key)**: 填入 Tavily API 密钥\n   - **最大搜索结果数**: 设置每次搜索返回的最大结果数量（1-20，默认 10）\n   - **搜索查询系统消息**: 用于提取搜索关键词的提示模板\n   - **搜索结果系统消息**: 用于处理搜索结果的提示模板\n\n#### 3. 系统消息模板\n\n**搜索查询提取模板** (用于从用户问题中提取搜索关键词):\n```\nYou are a search query extraction assistant. Extract the most relevant search query from user's question and wrap it with \u003Csearch_query>\u003C\u002Fsearch_query> tags.\nCurrent time: {current_time}\n```\n\n**搜索结果处理模板** (用于处理包含搜索结果的对话):\n```\nYou are a helpful assistant with access to real-time web search results. Use the provided search information to give accurate and up-to-date responses.\nCurrent time: {current_time}\n```\n\n### 使用方式\n\n#### 用户端操作\n\n1. **开启搜索功能**:\n   - 在对话界面中，找到搜索开关按钮\n   - 点击开启当前会话的网络搜索功能\n\n2. **提问获取实时信息**:\n   - 开启搜索后，直接向 ChatGPT 提问需要实时信息的问题\n   - 系统会自动搜索相关信息并整合到回答中\n\n3. **查看搜索历史**:\n   - 搜索查询和结果会保存在数据库中\n   - 可以通过数据库查看具体的搜索记录\n\n#### 工作流程\n\n1. **用户提问**: 用户在开启搜索的会话中提问\n2. **查询提取**: 系统使用 AI 从问题中提取搜索关键词\n3. **网络搜索**: 调用 Tavily API 进行实时搜索\n4. **结果整合**: 将搜索结果作为上下文提供给 AI\n5. **生成回答**: AI 基于搜索结果生成更准确的回答\n\n### 技术实现\n\n- **搜索引擎**: Tavily API\n- **查询提取**: 使用 OpenAI API 智能提取关键词\n- **结果格式**: JSON 格式存储完整搜索结果\n- **数据存储**: MongoDB 存储搜索查询和结果\n- **超时设置**: 搜索请求超时时间为 300 秒\n- **结果数量控制**: 支持配置每次搜索返回的最大结果数量（1-20）\n\n### 注意事项\n\n- Web Search 功能需要额外的 Tavily API 费用\n- 搜索功能会增加响应时间\n- 建议根据实际需求选择性开启\n- 管理员可以控制全局搜索功能的开启状态\n- 每个会话可以独立控制是否使用搜索功能\n- 最大搜索结果数设置会影响搜索的详细程度和 API 费用\n\n\n## 上下文窗口控制\n\n> [!TIP]\n> 上下文窗口控制功能可以让用户灵活管理 AI 对话中的上下文信息，优化模型性能和对话效果。\n\n### 功能特性\n\n- **上下文管理**: 控制模型可以参考的聊天记录数量\n- **按对话控制**: 每个对话可以独立开启或关闭上下文窗口\n- **实时切换**: 在对话过程中可以随时切换上下文模式\n- **记忆管理**: 灵活控制 AI 的记忆范围和连续性\n- **可配置数量**: 管理员可设置上下文消息的最大数量\n\n### 工作原理\n\n上下文窗口决定了在生成过程中，模型可以参考的当前会话下聊天记录的量：\n\n- **合理的上下文窗口大小**有助于模型生成连贯且相关的文本\n- **避免因为参考过多的上下文**而导致混乱或不相关的输出\n- **关闭上下文窗口**会导致会话失去记忆，每次提问之间将完全独立\n\n### 使用方式\n\n#### 1. 启用\u002F关闭上下文窗口\n\n1. **进入对话界面**: 在任何对话会话中都可以使用此功能\n2. **找到控制开关**: 在对话界面中找到\"上下文窗口\"开关按钮\n3. **切换模式**:\n   - **开启**: 模型会参考之前的聊天记录，保持对话连贯性\n   - **关闭**: 模型不会参考历史记录，每个问题独立处理\n\n#### 2. 使用场景\n\n**建议开启上下文窗口的情况：**\n- 需要连续对话和上下文关联\n- 复杂主题的深入讨论\n- 多轮问答和逐步解决问题\n- 需要 AI 记住之前提到的信息\n\n**建议关闭上下文窗口的情况：**\n- 独立的简单问题\n- 避免历史信息干扰新问题\n- 处理不相关的多个主题\n- 需要\"重新开始\"的场景\n\n#### 3. 管理员配置\n\n管理员可以在系统设置中配置：\n- **最大上下文数量**: 设置会话中包含的上下文消息数量\n- **默认状态**: 设置新对话的默认上下文窗口状态\n\n### 技术实现\n\n- **上下文截取**: 自动截取指定数量的历史消息\n- **状态持久化**: 每个对话独立保存上下文窗口开关状态\n- **实时生效**: 切换后立即对下一条消息生效\n- **内存优化**: 合理控制上下文长度，避免超出模型限制\n\n### 注意事项\n\n- **对话连贯性**: 关闭上下文窗口会影响对话的连续性\n- **Token (令牌) 消耗**: 更多的上下文会增加 Token 使用量\n- **响应质量**: 适当的上下文有助于提高回答质量\n- **模型限制**: 需要考虑不同模型的上下文长度限制\n\n## VLLM API 深度思考模式控制\n\n> [!TIP]\n> 深度思考模式控制功能仅在后端配置为 VLLM API 时可用，可以让用户选择是否启用模型的深度思考功能。\n\n### 功能特性\n\n- **VLLM API 专属功能**: 仅在后端使用 VLLM API 时可用\n- **按对话控制**: 每个对话可以独立开启或关闭深度思考模式\n- **实时切换**: 在对话过程中可以随时切换深度思考模式\n- **性能优化**: 关闭深度思考可以提高响应速度，降低计算成本\n\n### 工作原理\n\n开启深度思考后，模型会用更多的计算资源以及消耗更长时间，模拟更复杂的思维链路进行逻辑推理：\n\n- **适合复杂任务或高要求场景**，比如数学题推导、项目规划\n- **日常简单查询无需开启**深度思考模式\n- **关闭深度思考**可以获得更快的响应速度\n\n### 使用前提\n\n**必须满足以下条件才能使用此功能：**\n\n1. **后端配置**: 后端必须配置为使用 VLLM API 接口\n2. **模型支持**: 使用的模型必须支持深度思考功能\n3. **API 兼容**: VLLM API 版本需要支持思考模式控制参数\n\n### 使用方式\n\n#### 1. 启用\u002F关闭深度思考模式\n\n1. **进入对话界面**: 在支持 VLLM API 的对话会话中\n2. **找到控制开关**: 在对话界面中找到\"深度思考\"开关按钮\n3. **切换模式**: \n   - 开启：模型将进行深度思考，提供更详细和深入的回答\n   - 关闭：模型将直接回答，响应更快但可能较为简洁\n\n#### 2. 使用场景\n\n**建议开启深度思考的情况：**\n- 复杂问题需要深入分析\n- 需要逻辑推理和多步骤思考\n- 对回答质量要求较高的场景\n- 时间不敏感的情况\n\n**建议关闭深度思考的情况：**\n- 简单问题快速回答\n- 需要快速响应的场景\n- 降低计算成本的需求\n- 批量处理简单任务\n\n#### 3. 技术实现\n\n- **API 参数**: 通过 VLLM API 的 `disable_thinking` 参数控制\n- **状态保存**: 每个对话会话独立保存深度思考开关状态\n- **实时生效**: 切换后立即对下一条消息生效\n\n### 注意事项\n\n- **仅限 VLLM API**: 此功能仅在后端使用 VLLM API 时可用，其他 API（如 OpenAI API）不支持此功能\n- **模型依赖**: 不是所有模型都支持深度思考模式，请确认您使用的模型支持此功能\n- **响应差异**: 关闭深度思考可能会影响回答的详细程度和质量\n- **成本考虑**: 开启深度思考通常会增加计算成本和响应时间\n\n## 常见问题\n问：为什么 `Git` 提交总是报错？\n\n答：因为有提交信息验证，请遵循 [提交指南 (Commit Guidelines)](.\u002FCONTRIBUTING.md)\n\n问：如果只使用前端页面，在哪里改请求接口？\n\n答：根目录下 `.env` 文件中的 `VITE_GLOB_API_URL` 字段。\n\n问：文件保存时全部爆红？\n\n答：`VS Code` 请安装项目推荐插件，或手动安装 `ESLint` 插件。\n\n问：前端没有打字机效果？\n\n答：一种可能原因是经过 Nginx 反向代理，开启了 buffer，则 Nginx 会尝试从后端缓冲一定大小的数据再发送给浏览器。请尝试在反代参数后添加 `proxy_buffering off;`，然后重载 Nginx。其他 web server 配置同理。\n\n## 参与贡献\n\n贡献之前请先阅读 [贡献指南](.\u002FCONTRIBUTING.md)\n\n感谢所有做过贡献的人！\n\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fchatgpt-web-dev\u002Fchatgpt-web\u002Fgraphs\u002Fcontributors\">\n  \u003Cimg alt=\"贡献者图片\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fchatgpt-web-dev_chatgpt-web_readme_60d55bfa5e2c.png\" width=\"550\" \u002F>\n\u003C\u002Fa>\n\n## Star 历史\n\n\u003Cpicture>\n  \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fchatgpt-web-dev_chatgpt-web_readme_10844f01ce8a.png&theme=dark\" \u002F>\n  \u003Csource media=\"(prefers-color-scheme: light)\" srcset=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fchatgpt-web-dev_chatgpt-web_readme_10844f01ce8a.png\" \u002F>\n  \u003Cimg alt=\"Star 历史图表\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fchatgpt-web-dev_chatgpt-web_readme_10844f01ce8a.png\" width=\"550\" \u002F>\n\u003C\u002Fpicture>\n\n## 赞助\n如果你觉得这个项目对你有帮助，请给我点个 Star。并且情况允许的话，可以给我一点点支持，总之非常感谢支持～\n\n\u003Cdiv style=\"display: flex; gap: 20px;\">\n\t\u003Cdiv style=\"text-align: center\">\n\t\t\u003Cimg style=\"width: 200px\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fchatgpt-web-dev_chatgpt-web_readme_0f35aae4afb3.png\" alt=\"微信\" \u002F>\n\t\t\u003Cp>微信支付\u003C\u002Fp>\n\t\u003C\u002Fdiv>\n\t\u003Cdiv style=\"text-align: center\">\n\t\t\u003Cimg style=\"width: 200px\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fchatgpt-web-dev_chatgpt-web_readme_4d04470f4aa3.png\" alt=\"支付宝\" \u002F>\n\t\t\u003Cp>支付宝\u003C\u002Fp>\n\t\u003C\u002Fdiv>\n\u003C\u002Fdiv>\n\n---\n\n感谢 [DigitalOcean](https:\u002F\u002Fwww.digitalocean.com\u002F) 赞助提供开源积分用于运行基础设施服务器\n\n\u003Cp>\n  \u003Ca href=\"https:\u002F\u002Fwww.digitalocean.com\u002F\">\n    \u003Cimg src=\"https:\u002F\u002Fopensource.nyc3.cdn.digitaloceanspaces.com\u002Fattribution\u002Fassets\u002FSVG\u002FDO_Logo_horizontal_blue.svg\" width=\"201px\" alt=\"DigitalOcean\">\n  \u003C\u002Fa>\n\u003C\u002Fp>\n\n## 许可证 (License)\n[MIT © github.com\u002Fchatgpt-web-dev Contributors](.\u002FLICENSE)","# chatgpt-web 快速上手指南\n\n## 简介\nchatgpt-web 是一个基于 OpenAI API 的 ChatGPT 网页客户端。此版本为独立分叉版本，新增了数据库支持、用户登录注册、API Key 管理、Web 搜索及上下文控制等企业级功能。\n\n## 环境准备\n\n### 系统要求\n- **Node.js**: 版本 `^20 || ^22 || ^24`\n- **包管理器**: [PNPM](https:\u002F\u002Fpnpm.io\u002F)\n- **数据库**: MongoDB (Docker 部署可自动包含)\n\n### 前置密钥\n- **OpenAI API Key**: [获取地址](https:\u002F\u002Fplatform.openai.com\u002Foverview)\n- **Tavily API Key** (可选): 用于 Web 搜索功能，[获取地址](https:\u002F\u002Ftavily.com\u002F)\n\n### 安装 PNPM\n如未安装，请全局安装：\n```shell\nnpm install pnpm -g\n```\n\n## 安装步骤\n\n### 方式一：Docker Compose 部署（推荐）\n此方式包含应用与数据库，适合生产环境或完整体验。\n\n1. **创建配置文件**\n   新建 `docker-compose.yml`，内容参考如下（请修改密码和密钥）：\n   ```yml\n   version: '3'\n   services:\n     app:\n       image: chatgptweb\u002Fchatgpt-web\n       container_name: chatgptweb\n       restart: unless-stopped\n       ports:\n         - 3002:3002\n       depends_on:\n         - database\n       environment:\n         - TZ=Asia\u002FShanghai\n         - OPENAI_API_KEY=your_api_key\n         - MONGODB_URL=mongodb:\u002F\u002Fchatgpt:xxxx@database:27017\n         - AUTH_SECRET_KEY=your_secret_key\n         - REGISTER_ENABLED=true\n         - ROOT_USER=me@example.com\n         - PASSWORD_MD5_SALT=your_salt\n     database:\n       image: mongo\n       container_name: chatgptweb-database\n       restart: unless-stopped\n       volumes:\n         - mongodb:\u002Fdata\u002Fdb\n       environment:\n         - MONGO_INITDB_ROOT_USERNAME=chatgpt\n         - MONGO_INITDB_ROOT_PASSWORD=xxxx\n         - MONGO_INITDB_DATABASE=chatgpt\n   volumes:\n     mongodb: {}\n   ```\n\n2. **启动服务**\n   ```bash\n   docker compose up -d\n   ```\n\n3. **访问地址**\n   ```\n   http:\u002F\u002Flocalhost:3002\u002F\n   ```\n\n### 方式二：源码运行（开发环境）\n适合需要二次开发或调试的用户。\n\n1. **克隆项目**\n   ```shell\n   git clone \u003C项目地址>\n   cd chatgpt-web\n   ```\n\n2. **安装依赖**\n   ```shell\n   # 前端依赖\n   pnpm bootstrap\n\n   # 后端依赖\n   cd service\n   pnpm install\n   ```\n\n3. **配置环境变量**\n   复制 `service\u002F.env.example` 为 `service\u002F.env`，填写关键配置：\n   ```\n   OPENAI_API_KEY=your_api_key\n   MONGODB_URL=mongodb:\u002F\u002Flocalhost:27017\u002Fchatgpt\n   AUTH_SECRET_KEY=your_secret_key\n   ```\n\n4. **启动服务**\n   ```shell\n   # 终端 1：启动后端\n   cd service\n   pnpm start\n\n   # 终端 2：启动前端\n   cd ..\n   pnpm dev\n   ```\n\n## 基本使用\n\n1. **管理员注册**\n   - 访问首页，使用配置的 `ROOT_USER` 邮箱进行注册。\n   - 注册后登录即可获得管理员权限。\n\n2. **配置模型密钥**\n   - 登录后可在个人中心或管理员面板设置 `OpenAI API Key`。\n   - 如需使用网络搜索，需在系统设置中配置 `Tavily API Key`。\n\n3. **对话功能**\n   - **新建会话**：点击侧边栏新建对话。\n   - **上下文控制**：在对话界面可开关“上下文窗口”，控制模型记忆长度。\n   - **深度思考**：若后端配置了 VLLM API，可开关“深度思考模式”以增强推理能力。\n   - **网络搜索**：开启搜索开关后，模型将自动联网获取最新信息回答问题。\n\n4. **用户管理**\n   - 管理员可在后台管理用户、设置对话数量限制及生成兑换码。","某初创技术团队负责人需要为 5 名后端开发人员提供稳定的 AI 编程助手，旨在提升编码效率的同时，严格管控 API 成本与核心代码数据安全。\n\n### 没有 chatgpt-web 时\n- 团队成员共用单个 API Key，一旦泄露需全局重置，安全隐患大。\n- 无法统计个人使用量，月底账单超标也无法追溯具体责任人。\n- 对话记录分散在各自浏览器中，离职后关键代码思路随之丢失。\n- 缺乏权限管理，无法限制访问频率或禁止特定敏感话题查询。\n\n### 使用 chatgpt-web 后\n- 部署 chatgpt-web 私有化服务，每人独立账号登录，支持 2FA 双重验证。\n- 后台设置每人每日对话限额，配置多 Key 随机轮换，稳定且成本可控。\n- 会话历史云端同步，支持导出关键对话，团队知识库得以沉淀。\n- 通过用户管理一键禁用离职员工权限，自定义敏感词过滤保障合规。\n\nchatgpt-web 成功将分散且不可控的 AI 使用行为，转变为可管控、可审计的企业级协作流程，在保障安全的前提下显著提升团队研发效率。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fchatgpt-web-dev_chatgpt-web_1f7a9290.png","chatgpt-web-dev","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fchatgpt-web-dev_67802a2c.png","",null,"dev@chatgpt-web.dev","https:\u002F\u002Fchatgpt-web.dev","https:\u002F\u002Fgithub.com\u002Fchatgpt-web-dev",[84,88,92,96,100,104,108,112,115],{"name":85,"color":86,"percentage":87},"Vue","#41b883",52,{"name":89,"color":90,"percentage":91},"TypeScript","#3178c6",40.2,{"name":93,"color":94,"percentage":95},"Less","#1d365d",5,{"name":97,"color":98,"percentage":99},"HTML","#e34c26",2.1,{"name":101,"color":102,"percentage":103},"JavaScript","#f1e05a",0.3,{"name":105,"color":106,"percentage":107},"Dockerfile","#384d54",0.2,{"name":109,"color":110,"percentage":111},"CSS","#663399",0.1,{"name":113,"color":114,"percentage":111},"Shell","#89e051",{"name":116,"color":117,"percentage":118},"Batchfile","#C1F12E",0,1862,471,"2026-04-05T18:30:20","MIT","Linux, macOS, Windows","不需要 (本项目为 Web 应用，调用外部 API，非本地模型部署)","未说明",{"notes":127,"python":128,"dependencies":129},"需配置 OPENAI_API_KEY 或 VLLM API 地址；用户管理及历史会话功能需连接 MongoDB 数据库；支持 Docker 部署；Web Search 功能需额外配置 Tavily API Key；建议设置 AUTH_SECRET_KEY 以保护访问权限。","不需要 (基于 Node.js 环境)",[130,131,132],"Node.js ^20 || ^22 || ^24","PNPM","MongoDB",[53,13,26,15,14],[135,136,67,137,138,139,140,141,142,143,144,145,146,147],"ai","chatgpt","cloud-sync","expressjs","naive-ui","openai","vue","openai-api","openai-chatgpt","ldap","oidc","saml","sso","2026-03-27T02:49:30.150509","2026-04-06T11:31:09.844952",[151,156,161,166,171,176],{"id":152,"question_zh":153,"answer_zh":154,"source_url":155},540,"使用过程中偶尔提示“没有可用的配置。请再试一次”如何解决？","常见原因及解决：1. 网络\u002F代理问题：检查 Clash 等代理软件，尝试关闭或切换节点，部署没问题但回复慢大概率是网络问题；2. 服务状态：尝试重启 Docker 服务（执行 `docker compose down` 然后 `docker compose up -d`）；3. 操作问题：避免点击停止响应后立即发送，服务器仍在调用中。","https:\u002F\u002Fgithub.com\u002Fchatgpt-web-dev\u002Fchatgpt-web\u002Fissues\u002F204",{"id":157,"question_zh":158,"answer_zh":159,"source_url":160},541,"更新最新版本后出现 502 错误或页面显示异常？","通常是浏览器缓存或 Cloudflare 缓存导致重定向问题。解决方法：按 Ctrl+F5 强制刷新页面，清除浏览器缓存，或更换未访问过旧版本的浏览器（如 Edge\u002FChrome 无痕模式）尝试。","https:\u002F\u002Fgithub.com\u002Fchatgpt-web-dev\u002Fchatgpt-web\u002Fissues\u002F170",{"id":162,"question_zh":163,"answer_zh":164,"source_url":165},542,"配置代理时，API Key 和 Access Token 的地址有什么区别？","两者接口路径不同。Access Token 模式代理地址通常为 `...\u002Fconversation` (例：`http:\u002F\u002F127.0.0.1:8080\u002Fchatgpt\u002Fconversation`)；API Key 模式代理地址通常为 `...\u002Fplatform` (例：`http:\u002F\u002F127.0.0.1:8080\u002Fplatform`)。请根据选择的认证方式填写对应地址。","https:\u002F\u002Fgithub.com\u002Fchatgpt-web-dev\u002Fchatgpt-web\u002Fissues\u002F158",{"id":167,"question_zh":168,"answer_zh":169,"source_url":170},543,"为什么有很多聊天记录但使用统计显示不出来？","目前统计功能对 API Key 支持较好。Access Token 模式由于上下文维护方式不同，统计计算尚未完全优化。建议切换为 API Key 模式以查看准确的使用情况统计。","https:\u002F\u002Fgithub.com\u002Fchatgpt-web-dev\u002Fchatgpt-web\u002Fissues\u002F156",{"id":172,"question_zh":173,"answer_zh":174,"source_url":175},544,"多人同时使用时经常报错，是否有并发限制？","是的。如果 3 秒内未回复完成且并发人数超过 Key 限制会报错。目前限制为一次只能一人使用一个 Key。多人使用建议增加 Key 数量或避免同时发送请求。","https:\u002F\u002Fgithub.com\u002Fchatgpt-web-dev\u002Fchatgpt-web\u002Fissues\u002F169",{"id":177,"question_zh":178,"answer_zh":179,"source_url":180},545,"提示“好像出错了，请稍后再试”或代理异常怎么办？","可能是默认代理服务商（如 fakeopen）暂时不可用。可尝试更换代理地址，例如使用 `https:\u002F\u002Fai.fakeopen.com\u002Fapi\u002Fconversation`，或检查自建的 go-chatgpt-api 服务状态。","https:\u002F\u002Fgithub.com\u002Fchatgpt-web-dev\u002Fchatgpt-web\u002Fissues\u002F352",[182,187,192,197,202,207,212,217,222,227,232,237,242,247,252,257,262,267,272,277],{"id":183,"version":184,"summary_zh":185,"released_at":186},109824,"v3.13.0","## What's Changed\r\n* feat: tighten layout and settings modal by @BobDu in https:\u002F\u002Fgithub.com\u002Fchatgpt-web-dev\u002Fchatgpt-web\u002Fpull\u002F687\r\n* feat: remove advanced system prompt by @BobDu in https:\u002F\u002Fgithub.com\u002Fchatgpt-web-dev\u002Fchatgpt-web\u002Fpull\u002F688\r\n* feat: refine settings tables ui by @BobDu in https:\u002F\u002Fgithub.com\u002Fchatgpt-web-dev\u002Fchatgpt-web\u002Fpull\u002F689\r\n* feat: refresh default avatars  by @BobDu in https:\u002F\u002Fgithub.com\u002Fchatgpt-web-dev\u002Fchatgpt-web\u002Fpull\u002F690\r\n* feat(service): support reasoning compatibility updates by @BobDu in https:\u002F\u002Fgithub.com\u002Fchatgpt-web-dev\u002Fchatgpt-web\u002Fpull\u002F692\r\n* fix(chat): sync stale model mapping for image upload by @BobDu in https:\u002F\u002Fgithub.com\u002Fchatgpt-web-dev\u002Fchatgpt-web\u002Fpull\u002F693\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fchatgpt-web-dev\u002Fchatgpt-web\u002Fcompare\u002Fv3.12.3...v3.13.0","2026-03-04T07:12:58",{"id":188,"version":189,"summary_zh":190,"released_at":191},109825,"v3.12.3","## What's Changed\r\n* feat: refine mobile context toggles by @BobDu in https:\u002F\u002Fgithub.com\u002Fchatgpt-web-dev\u002Fchatgpt-web\u002Fpull\u002F686\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fchatgpt-web-dev\u002Fchatgpt-web\u002Fcompare\u002Fv3.12.2...v3.12.3","2026-01-16T04:08:00",{"id":193,"version":194,"summary_zh":195,"released_at":196},109826,"v3.12.2","## What's Changed\r\n* feat: simplify prompt store layout  by @BobDu in https:\u002F\u002Fgithub.com\u002Fchatgpt-web-dev\u002Fchatgpt-web\u002Fpull\u002F682\r\n* docs: clarify branch confirmation before commit by @BobDu in https:\u002F\u002Fgithub.com\u002Fchatgpt-web-dev\u002Fchatgpt-web\u002Fpull\u002F683\r\n* fix: include uploadFileKeys on regenerate by @BobDu in https:\u002F\u002Fgithub.com\u002Fchatgpt-web-dev\u002Fchatgpt-web\u002Fpull\u002F684\r\n* fix: cap tavily search query length by @BobDu in https:\u002F\u002Fgithub.com\u002Fchatgpt-web-dev\u002Fchatgpt-web\u002Fpull\u002F685\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fchatgpt-web-dev\u002Fchatgpt-web\u002Fcompare\u002Fv3.12.1...v3.12.2","2026-01-14T09:27:27",{"id":198,"version":199,"summary_zh":200,"released_at":201},109827,"v3.12.1","## What's Changed\r\n* feat: auto-import icon components by @BobDu in https:\u002F\u002Fgithub.com\u002Fchatgpt-web-dev\u002Fchatgpt-web\u002Fpull\u002F681\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fchatgpt-web-dev\u002Fchatgpt-web\u002Fcompare\u002Fv3.12.0...v3.12.1","2026-01-14T03:15:43",{"id":203,"version":204,"summary_zh":205,"released_at":206},109828,"v3.12.0","## What's Changed\r\n* feat: model defaults and room creation by @BobDu in https:\u002F\u002Fgithub.com\u002Fchatgpt-web-dev\u002Fchatgpt-web\u002Fpull\u002F680\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fchatgpt-web-dev\u002Fchatgpt-web\u002Fcompare\u002Fv3.11.0...v3.12.0","2026-01-13T03:47:18",{"id":208,"version":209,"summary_zh":210,"released_at":211},109829,"v3.11.0","## What's Changed\r\n* fix: align i18n locale strings  by @BobDu in https:\u002F\u002Fgithub.com\u002Fchatgpt-web-dev\u002Fchatgpt-web\u002Fpull\u002F678\r\n* feat: add admin built-in prompt settings & prompt ordering by @BobDu in https:\u002F\u002Fgithub.com\u002Fchatgpt-web-dev\u002Fchatgpt-web\u002Fpull\u002F679\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fchatgpt-web-dev\u002Fchatgpt-web\u002Fcompare\u002Fv3.10.1...v3.11.0","2026-01-09T07:26:24",{"id":213,"version":214,"summary_zh":215,"released_at":216},109830,"v3.10.1","## What's Changed\r\n* docs: add AGENTS.md for LLM agents by @BobDu in https:\u002F\u002Fgithub.com\u002Fchatgpt-web-dev\u002Fchatgpt-web\u002Fpull\u002F676\r\n* feat: remove temperature\u002Ftop_p settings as models now discourage them by @BobDu in https:\u002F\u002Fgithub.com\u002Fchatgpt-web-dev\u002Fchatgpt-web\u002Fpull\u002F677\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fchatgpt-web-dev\u002Fchatgpt-web\u002Fcompare\u002Fv3.10.0...v3.10.1","2026-01-06T08:12:50",{"id":218,"version":219,"summary_zh":220,"released_at":221},109831,"v3.10.0","## What's Changed\r\n* feat: add image token by @xiaokaiwangdragonplus in https:\u002F\u002Fgithub.com\u002Fchatgpt-web-dev\u002Fchatgpt-web\u002Fpull\u002F675\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fchatgpt-web-dev\u002Fchatgpt-web\u002Fcompare\u002Fv3.9.4...v3.10.0","2025-12-29T10:46:24",{"id":223,"version":224,"summary_zh":225,"released_at":226},109832,"v3.9.4","## What's Changed\r\n* feat: add model isolation for tool calling by @xiaokaiwangdragonplus in https:\u002F\u002Fgithub.com\u002Fchatgpt-web-dev\u002Fchatgpt-web\u002Fpull\u002F672\r\n* feat: add external chat sites feature by @BobDu in https:\u002F\u002Fgithub.com\u002Fchatgpt-web-dev\u002Fchatgpt-web\u002Fpull\u002F673\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fchatgpt-web-dev\u002Fchatgpt-web\u002Fcompare\u002Fv3.9.3...v3.9.4","2025-12-25T11:23:07",{"id":228,"version":229,"summary_zh":230,"released_at":231},109833,"v3.9.3","## What's Changed\r\n* fix: network timeout error by @xiaokaiwangdragonplus in https:\u002F\u002Fgithub.com\u002Fchatgpt-web-dev\u002Fchatgpt-web\u002Fpull\u002F671\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fchatgpt-web-dev\u002Fchatgpt-web\u002Fcompare\u002Fv3.9.2...v3.9.3","2025-12-24T11:16:47",{"id":233,"version":234,"summary_zh":235,"released_at":236},109834,"v3.9.2","## What's Changed\r\n* fix: history date display by @xiaokaiwangdragonplus in https:\u002F\u002Fgithub.com\u002Fchatgpt-web-dev\u002Fchatgpt-web\u002Fpull\u002F670\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fchatgpt-web-dev\u002Fchatgpt-web\u002Fcompare\u002Fv3.9.1...v3.9.2","2025-12-24T08:18:42",{"id":238,"version":239,"summary_zh":240,"released_at":241},109835,"v3.9.1","## What's Changed\r\n* fix: init user chatmodel by @xiaokaiwangdragonplus in https:\u002F\u002Fgithub.com\u002Fchatgpt-web-dev\u002Fchatgpt-web\u002Fpull\u002F669\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fchatgpt-web-dev\u002Fchatgpt-web\u002Fcompare\u002Fv3.9.0...v3.9.1","2025-12-23T12:52:39",{"id":243,"version":244,"summary_zh":245,"released_at":246},109836,"v3.9.0","## What's Changed\r\n* feat： add image generation & editing via responseAPI, and upload button configuration by @xiaokaiwangdragonplus in https:\u002F\u002Fgithub.com\u002Fchatgpt-web-dev\u002Fchatgpt-web\u002Fpull\u002F668\r\n\r\n## New Contributors\r\n* @xiaokaiwangdragonplus made their first contribution in https:\u002F\u002Fgithub.com\u002Fchatgpt-web-dev\u002Fchatgpt-web\u002Fpull\u002F668\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fchatgpt-web-dev\u002Fchatgpt-web\u002Fcompare\u002Fv3.8.1...v3.9.0","2025-12-23T10:25:02",{"id":248,"version":249,"summary_zh":250,"released_at":251},109837,"v3.8.1","# Get docker image from DockerHub\r\n\r\nhttps:\u002F\u002Fhub.docker.com\u002Fr\u002Fchatgptweb\u002Fchatgpt-web\u002Ftags?name=v3.8.1\r\n\r\n```\r\ndocker pull chatgptweb\u002Fchatgpt-web:v3.8.1\r\n```\r\n\r\n## What's Changed\r\n* chore: remove dotenv promotion log by @BobDu in https:\u002F\u002Fgithub.com\u002Fchatgpt-web-dev\u002Fchatgpt-web\u002Fpull\u002F665\r\n* fix: mongoDB client initialization by @BobDu in https:\u002F\u002Fgithub.com\u002Fchatgpt-web-dev\u002Fchatgpt-web\u002Fpull\u002F666\r\n* feat: support gpt-5.2-chat-latest model by @BobDu in https:\u002F\u002Fgithub.com\u002Fchatgpt-web-dev\u002Fchatgpt-web\u002Fpull\u002F667\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fchatgpt-web-dev\u002Fchatgpt-web\u002Fcompare\u002Fv3.8.0...v3.8.1","2025-12-15T07:38:48",{"id":253,"version":254,"summary_zh":255,"released_at":256},109838,"v3.8.0","# Get docker image from DockerHub\r\n\r\nhttps:\u002F\u002Fhub.docker.com\u002Fr\u002Fchatgptweb\u002Fchatgpt-web\u002Ftags?name=v3.8.0\r\n\r\n```\r\ndocker pull chatgptweb\u002Fchatgpt-web:v3.8.0\r\n```\r\n\r\n## What's Changed\r\n* chore: bump dependencies version by @BobDu in https:\u002F\u002Fgithub.com\u002Fchatgpt-web-dev\u002Fchatgpt-web\u002Fpull\u002F651\r\n* fix: rate-limit when max is 0 by @BobDu in https:\u002F\u002Fgithub.com\u002Fchatgpt-web-dev\u002Fchatgpt-web\u002Fpull\u002F652\r\n* fix: scope search prose whitespace overrides by @BobDu in https:\u002F\u002Fgithub.com\u002Fchatgpt-web-dev\u002Fchatgpt-web\u002Fpull\u002F653\r\n* feat: add searching state management to chat process by @BobDu in https:\u002F\u002Fgithub.com\u002Fchatgpt-web-dev\u002Fchatgpt-web\u002Fpull\u002F654\r\n* feat: add generating state management to chat process by @BobDu in https:\u002F\u002Fgithub.com\u002Fchatgpt-web-dev\u002Fchatgpt-web\u002Fpull\u002F655\r\n* fix: reasoning whitespace css overrides by @BobDu in https:\u002F\u002Fgithub.com\u002Fchatgpt-web-dev\u002Fchatgpt-web\u002Fpull\u002F656\r\n* fix: model gpt-5.1 reasoning effort for Responses API by @BobDu in https:\u002F\u002Fgithub.com\u002Fchatgpt-web-dev\u002Fchatgpt-web\u002Fpull\u002F657\r\n* feat: user setting add search functionality by @BobDu in https:\u002F\u002Fgithub.com\u002Fchatgpt-web-dev\u002Fchatgpt-web\u002Fpull\u002F658\r\n* refactor: add spinner svg component by @BobDu in https:\u002F\u002Fgithub.com\u002Fchatgpt-web-dev\u002Fchatgpt-web\u002Fpull\u002F659\r\n* feat: initialize MongoDB necessary indexes on startup by @BobDu in https:\u002F\u002Fgithub.com\u002Fchatgpt-web-dev\u002Fchatgpt-web\u002Fpull\u002F660\r\n* feat: add admin view of chat history switch by @BobDu in https:\u002F\u002Fgithub.com\u002Fchatgpt-web-dev\u002Fchatgpt-web\u002Fpull\u002F661\r\n* feat: support gpt-5.1-chat-latest model by @BobDu in https:\u002F\u002Fgithub.com\u002Fchatgpt-web-dev\u002Fchatgpt-web\u002Fpull\u002F662\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fchatgpt-web-dev\u002Fchatgpt-web\u002Fcompare\u002Fv3.7.0...v3.8.0","2025-12-05T13:34:31",{"id":258,"version":259,"summary_zh":260,"released_at":261},109839,"v3.7.0","# Get docker image from DockerHub\r\n\r\nhttps:\u002F\u002Fhub.docker.com\u002Fr\u002Fchatgptweb\u002Fchatgpt-web\u002Ftags?name=v3.7.0\r\n\r\n```\r\ndocker pull chatgptweb\u002Fchatgpt-web:v3.7.0\r\n```\r\n\r\n> [!IMPORTANT]\r\n> Support gpt-5 model use openai responses api\r\n\r\n## What's Changed\r\n* chore: bump pnpm version by @BobDu in https:\u002F\u002Fgithub.com\u002Fchatgpt-web-dev\u002Fchatgpt-web\u002Fpull\u002F645\r\n* feat: support gpt-5 use openai responses api by @BobDu in https:\u002F\u002Fgithub.com\u002Fchatgpt-web-dev\u002Fchatgpt-web\u002Fpull\u002F646\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fchatgpt-web-dev\u002Fchatgpt-web\u002Fcompare\u002Fv3.6.1...v3.7.0","2025-09-06T12:27:03",{"id":263,"version":264,"summary_zh":265,"released_at":266},109840,"v3.6.1","# Get docker image from DockerHub\r\n\r\nhttps:\u002F\u002Fhub.docker.com\u002Fr\u002Fchatgptweb\u002Fchatgpt-web\u002Ftags?name=v3.6.1\r\n\r\n```\r\ndocker pull chatgptweb\u002Fchatgpt-web:v3.6.1\r\n```\r\n\r\n## What's Changed\r\n* feat: 增加fetch请求，优化axios对流式数据处理的不友好 by @King5-12 in https:\u002F\u002Fgithub.com\u002Fchatgpt-web-dev\u002Fchatgpt-web\u002Fpull\u002F640\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fchatgpt-web-dev\u002Fchatgpt-web\u002Fcompare\u002Fv3.6.0...v3.6.1","2025-07-11T08:18:06",{"id":268,"version":269,"summary_zh":270,"released_at":271},109841,"v3.6.0","# Get docker image from DockerHub\r\n\r\nhttps:\u002F\u002Fhub.docker.com\u002Fr\u002Fchatgptweb\u002Fchatgpt-web\u002Ftags?name=v3.6.0\r\n\r\n```\r\ndocker pull chatgptweb\u002Fchatgpt-web:v3.6.0\r\n```\r\n\r\n## What's Changed\r\n* feat: use sse for chat process api  by @King5-12 in https:\u002F\u002Fgithub.com\u002Fchatgpt-web-dev\u002Fchatgpt-web\u002Fpull\u002F638\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fchatgpt-web-dev\u002Fchatgpt-web\u002Fcompare\u002Fv3.5.1...v3.6.0","2025-07-11T03:51:49",{"id":273,"version":274,"summary_zh":275,"released_at":276},109842,"v3.5.1","# Get docker image from DockerHub\r\n\r\nhttps:\u002F\u002Fhub.docker.com\u002Fr\u002Fchatgptweb\u002Fchatgpt-web\u002Ftags?name=v3.5.1\r\n\r\n```\r\ndocker pull chatgptweb\u002Fchatgpt-web:v3.5.1\r\n```\r\n\r\n## What's Changed\r\n* 修改推理过程过长时被截断的问题 by @King5-12 in https:\u002F\u002Fgithub.com\u002Fchatgpt-web-dev\u002Fchatgpt-web\u002Fpull\u002F637\r\n\r\n## New Contributors\r\n* @King5-12 made their first contribution in https:\u002F\u002Fgithub.com\u002Fchatgpt-web-dev\u002Fchatgpt-web\u002Fpull\u002F637\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fchatgpt-web-dev\u002Fchatgpt-web\u002Fcompare\u002Fv3.5.0...v3.5.1","2025-07-03T07:12:38",{"id":278,"version":279,"summary_zh":280,"released_at":281},109843,"v3.5.0","# Get docker image from DockerHub\r\n\r\nhttps:\u002F\u002Fhub.docker.com\u002Fr\u002Fchatgptweb\u002Fchatgpt-web\u002Ftags?name=v3.5.0\r\n\r\n```\r\ndocker pull chatgptweb\u002Fchatgpt-web:v3.5.0\r\n```\r\n\r\n> [!IMPORTANT]\r\n> Support fastdeploy model api (for ERNIE 4.5 model)\r\n\r\n## What's Changed\r\n* ci: build multi-platform images natively using Github ARM runners  by @BobDu in https:\u002F\u002Fgithub.com\u002Fchatgpt-web-dev\u002Fchatgpt-web\u002Fpull\u002F633\r\n* fix: miss checkout in ci workflow by @BobDu in https:\u002F\u002Fgithub.com\u002Fchatgpt-web-dev\u002Fchatgpt-web\u002Fpull\u002F634\r\n* feat: add include raw content option for search settings by @BobDu in https:\u002F\u002Fgithub.com\u002Fchatgpt-web-dev\u002Fchatgpt-web\u002Fpull\u002F635\r\n* feat: support fastdeploy model api by @BobDu in https:\u002F\u002Fgithub.com\u002Fchatgpt-web-dev\u002Fchatgpt-web\u002Fpull\u002F636\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fchatgpt-web-dev\u002Fchatgpt-web\u002Fcompare\u002Fv3.4.1...v3.5.0","2025-07-01T16:35:55"]