[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-78046":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":15,"forks30d":15,"starsTrendScore":19,"compositeScore":20,"rankGlobal":9,"rankLanguage":9,"license":21,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":24,"hasPages":22,"topics":25,"createdAt":9,"pushedAt":9,"updatedAt":26,"readmeContent":27,"aiSummary":28,"trendingCount":15,"starSnapshotCount":15,"syncStatus":13,"lastSyncTime":29,"discoverSource":30},78046,"webchat2api","zqbxdev\u002Fwebchat2api","zqbxdev","OpenAI-compatible Web Chat API proxy with GPT, Grok, Gemini account management and Docker self-hosting",null,"Python",325,65,2,3,0,7,61,264,35,89.44,"MIT License",false,"main",true,[],"2026-06-12 04:01:23","\u003Ch1 align=\"center\">webchat2api\u003C\u002Fh1>\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"assets\u002Flogo.png\" alt=\"webchat2api logo\" width=\"180\" \u002F>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">webchat2api 是一个将 GPT\u002FChatGPT Web 与 Grok\u002FxAI Web 能力封装为标准 API 接口的代理服务项目，提供 FastAPI 后端、Next.js Web 管理端、OpenAI 风格 API、GPT\u002FGrok 账号池管理、文生文\u002F文生图试验页以及 Docker 自托管部署能力。\u003C\u002Fp>\n\n> [!WARNING]\n> 免责声明：本项目涉及对 GPT\u002FChatGPT Web 与 Grok\u002FxAI Web 能力的逆向研究与封装，仅供个人学习、技术研究与非商业性技术交流使用。严禁用于商业倒卖、批量滥用、违反服务条款或违法违规场景。使用者需自行承担账号受限、封禁及其他法律与合规风险。\n\n> [!IMPORTANT]\n> 默认登录密钥为 `admin`，仅适合本地测试。公网或生产环境部署后必须通过 `LOGIN_SECRET` 或 `WEBCHAT2API_AUTH_KEY` 修改为强随机密钥。\n\n## 功能概览\n\n- OpenAI 风格 API：将 GPT\u002FChatGPT Web 与 Grok\u002FxAI Web 能力包装为 `\u002Fv1\u002Fmodels`、`\u002Fv1\u002Fchat\u002Fcompletions`、`\u002Fv1\u002Fimages\u002Fgenerations`、`\u002Fv1\u002Fimages\u002Fedits`、`\u002Fv1\u002Fresponses`、`\u002Fv1\u002Fmessages` 等接口\n- GPT\u002FGrok 文本模型：`\u002Fv1\u002Fmodels` 优先通过 `provider=gpt` 账号动态拉取 GPT 模型，并合并静态 Grok 模型；`\u002Fv1\u002Fchat\u002Fcompletions` 按 `model` 自动分发到 GPT 或 Grok 服务商账号\n- Web 管理后台：账号池、用户 API Key、代理、日志、图片任务、图片文件和系统配置管理\n- 账号服务商：账号 `provider` 选择 `gpt` 或 `grok`，账号 `type` 仍表示套餐或订阅类型\n- 试验页：文生文聊天、文本模型批量可用性测试、文生图\u002F图生图切换、图片队列和图片历史\n- 文生文聊天历史：保存在浏览器本地，刷新页面后仍保留\n- 图片账号轮换：图片生成\u002F编辑遇到失效账号时，会跳过该账号并尝试下一个可用账号\n- 账号导出：仅导出 TXT，并按 GPT\u002FGrok 服务商分别下载为 `webchat2api-gpt.txt` \u002F `webchat2api_grok.txt`；文件内容每行一个 `access_token` 或 `sso` 凭据\n- 部署方式：Docker CLI、Docker Compose\n\n## 界面预览\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"assets\u002Fscreenshot-overview.png\" alt=\"webchat2api 界面预览 1\" width=\"780\" \u002F>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"assets\u002Fscreenshot-chat.png\" alt=\"webchat2api 界面预览 2\" width=\"780\" \u002F>\n\u003C\u002Fp>\n\n## 快速开始\n\n### Docker CLI 部署\n\n新用户可先克隆仓库并进入项目目录：\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fzqbxdev\u002Fwebchat2api\ncd webchat2api\n```\n\n构建本地镜像并运行：\n\n```bash\ndocker build -t webchat2api:latest .\n\ndocker run -d \\\n  --name webchat2api \\\n  --restart unless-stopped \\\n  -p 83:83 \\\n  -v $(pwd)\u002Fdata:\u002Fapp\u002Fdata \\\n  -e PORT=83 \\\n  -e HOST=0.0.0.0 \\\n  -e LOGIN_SECRET=admin \\\n  webchat2api:latest\n```\n\n如需容器访问宿主机代理：\n\n```bash\ndocker run -d \\\n  --name webchat2api \\\n  --restart unless-stopped \\\n  --add-host=host.docker.internal:host-gateway \\\n  -p 83:83 \\\n  -v $(pwd)\u002Fdata:\u002Fapp\u002Fdata \\\n  -e PORT=83 \\\n  -e HOST=0.0.0.0 \\\n  -e LOGIN_SECRET=admin \\\n  -e PROXY_URL=http:\u002F\u002Fhost.docker.internal:7890 \\\n  webchat2api:latest\n```\n\n部署后访问：\n\n- 服务地址：`http:\u002F\u002Flocalhost:83`\n- 管理后台：`http:\u002F\u002Flocalhost:83`\n- API Base URL：`http:\u002F\u002Flocalhost:83\u002Fv1`\n- 默认登录密钥：`admin`\n\n生产环境请立即修改默认密钥：\n\n```bash\ndocker run -d \\\n  --name webchat2api \\\n  --restart unless-stopped \\\n  -p 83:83 \\\n  -v $(pwd)\u002Fdata:\u002Fapp\u002Fdata \\\n  -e LOGIN_SECRET=your-strong-secret \\\n  webchat2api:latest\n```\n\n### Docker Compose 部署\n\n`docker-compose.yml` 使用本地镜像 `webchat2api:latest`。请先按上面的命令构建镜像，再启动服务：\n\n```bash\ndocker compose up -d\n```\n\n如需通过 Compose 构建并启动，可使用本地构建配置：\n\n```bash\ndocker compose -f docker-compose.local.yml up -d --build\n```\n\n常用命令：\n\n```bash\ndocker logs -f webchat2api\ndocker restart webchat2api\ndocker compose down\n```\n\n### 本地开发\n\n启动后端：\n\n```bash\nuv sync\nLOGIN_SECRET=admin uv run python main.py\n```\n\n启动前端开发服务：\n\n```bash\ncd web\nnpm install\nnpm run dev\n```\n\n## API 示例\n\n所有 AI 接口均使用 Bearer Token 鉴权：\n\n```http\nAuthorization: Bearer \u003CLOGIN_SECRET 或用户 API Key>\n```\n\n健康检查：\n\n```bash\ncurl http:\u002F\u002Flocalhost:83\u002Fhealth\n```\n\n返回：\n\n```json\n{\"status\":\"ok\"}\n```\n\n模型列表：\n\n```bash\ncurl http:\u002F\u002Flocalhost:83\u002Fv1\u002Fmodels \\\n  -H \"Authorization: Bearer admin\"\n```\n\n`\u002Fv1\u002Fmodels` 会优先使用已导入的 `provider=gpt` 账号动态拉取 GPT 模型；如果没有可用 GPT 账号或拉取失败，会回退到匿名\u002F内置 GPT 模型。Grok 当前使用内置模型列表，因为现有 Grok token\u002Fcookie 无法访问 `console.x.ai` 或 `api.x.ai` 的模型列表端点。Grok 示例模型包括 `grok-4.3`、`grok-4`、`grok-4.20`、`grok-4.20-reasoning`、`grok-4.20-non-reasoning`、`grok-4.20-multi-agent`。\n\n聊天接口：\n\n```bash\ncurl http:\u002F\u002Flocalhost:83\u002Fv1\u002Fchat\u002Fcompletions \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -H \"Authorization: Bearer admin\" \\\n  -d '{\n    \"model\": \"auto\",\n    \"messages\": [\n      {\"role\": \"user\", \"content\": \"你好\"}\n    ]\n  }'\n```\n\n也可直接选择 Grok 模型，接口会按模型分发到 `provider=grok` 的账号：\n\n```bash\ncurl http:\u002F\u002Flocalhost:83\u002Fv1\u002Fchat\u002Fcompletions \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -H \"Authorization: Bearer admin\" \\\n  -d '{\n    \"model\": \"grok-4.3\",\n    \"messages\": [\n      {\"role\": \"user\", \"content\": \"你好\"}\n    ]\n  }'\n```\n\n图片生成接口：\n\n```bash\ncurl http:\u002F\u002Flocalhost:83\u002Fv1\u002Fimages\u002Fgenerations \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -H \"Authorization: Bearer admin\" \\\n  -d '{\n    \"model\": \"gpt-image-2\",\n    \"prompt\": \"一只漂浮在太空里的猫\",\n    \"n\": 1,\n    \"response_format\": \"b64_json\"\n  }'\n```\n\nChatGPT 图片生成\u002F编辑仍只使用 GPT 服务商账号，不声明 Grok 图片能力。\n\n账号导入说明：\n\n导入 GPT 账号时使用 `provider=gpt` 或保持默认；导入 Grok 账号 token\u002Fcookie 时使用 `provider=grok`。`provider` 负责选择服务商，`type` 仍用于记录 plan、subscription 等套餐或订阅类型。\n\n账号导出接口：\n\n```bash\ncurl http:\u002F\u002Flocalhost:83\u002Fapi\u002Faccounts\u002Fexport \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -H \"Authorization: Bearer admin\" \\\n  -d '{\n    \"provider\": \"gpt\",\n    \"access_tokens\": []\n  }'\n```\n\n`provider` 可选 `gpt` 或 `grok`，用于分别导出 GPT\u002FGrok TXT 文件；GPT 下载文件名固定为 `webchat2api-gpt.txt`，Grok 下载文件名固定为 `webchat2api_grok.txt`。`access_tokens` 为空数组时导出该服务商全部账号；内容仅包含凭据本身，每个账号一行，优先使用清理后的 `access_token`，缺失 `access_token` 时使用清理后的 `sso`。\n\n## 配置\n\n核心配置见 `.env.example`、`config.example.json` 和 [技术指南](.\u002Fdocs\u002Ftechnical-guide.md)。如需本地覆盖配置，请复制示例文件：\n\n```bash\ncp config.example.json config.json\n```\n\n`config.json` 是本地运行配置，可能包含代理、备份密钥或其他敏感值，不应提交。后端会写入 `config.json` 保存 Web UI 设置，部署时如果把该文件只读挂载，管理后台的设置保存会失败。`data\u002F` 保存账号、用户密钥、日志、图片任务等运行数据，必须保持本地忽略，永远不要提交到代码仓库。\n\n| 配置项 | 默认值 | 说明 |\n| --- | --- | --- |\n| `PORT` | `83` | 服务监听端口 |\n| `HOST` | `0.0.0.0` | 服务监听地址 |\n| `LOGIN_SECRET` | `admin` | 管理后台默认登录密钥 |\n| `WEBCHAT2API_AUTH_KEY` | 空 | 兼容旧配置的登录密钥覆盖项 |\n| `WEBCHAT2API_BASE_URL` | 空 | 生成图片访问 URL 时使用的外部基础地址 |\n| `PROXY_URL` | 空 | 上游请求使用的 HTTP\u002FHTTPS\u002FSOCKS 代理 |\n| `STORAGE_BACKEND` | `json` | 存储后端：`json`、`sqlite`、`postgres`、`git` |\n| `DATABASE_URL` | 空 | SQLite\u002FPostgreSQL 连接字符串 |\n| `GIT_REPO_URL` | 空 | Git 存储后端仓库地址 |\n| `GIT_TOKEN` | 空 | Git 存储后端访问令牌 |\n\n## 文档\n\n完整技术指南见：[docs\u002Ftechnical-guide.md](.\u002Fdocs\u002Ftechnical-guide.md)。\n\n功能状态见：[docs\u002Ffeature-status.md](.\u002Fdocs\u002Ffeature-status.md)。\n\n上游 SSE 会话协议参考见：[docs\u002Fupstream-sse-conversation.md](.\u002Fdocs\u002Fupstream-sse-conversation.md)。\n\n## 社区支持\n\n欢迎在 [linux.do](https:\u002F\u002Flinux.do\u002F) 社区交流反馈。\n\n## 致谢\n\n感谢 https:\u002F\u002Fgithub.com\u002Fchenyme\u002Fgrok2api 和 https:\u002F\u002Fgithub.com\u002Fbasketikun\u002Fchatgpt2api。\n","webchat2api 是一个将 GPT\u002FChatGPT Web 与 Grok\u002FxAI Web 能力封装为标准 API 接口的代理服务项目。它提供了 FastAPI 后端、Next.js 管理界面以及 OpenAI 风格的 API，支持 GPT 和 Grok 账号管理、文生文和文生图功能，并且可以通过 Docker 进行自托管部署。该项目适合需要在本地或私有环境中集成 AI 对话能力的研究人员和技术爱好者使用，尤其适用于希望探索不同文本生成模型性能对比的场景。需要注意的是，此项目仅供学习和技术研究目的，禁止用于商业用途或其他违反服务条款的行为。","2026-06-11 03:56:23","CREATED_QUERY"]