反向代理¶
所属位置: 第四篇·工程实现 — OpenAI 兼容代理的完整实现 前置要求: 先读通讯协议篇和运行原理篇 阅读目标: 理解 TypeScript 代理如何将 MonkeyCode 暴露为标准 API
代理请求全流程¶
flowchart TB
Req["OpenAI 格式请求"]
Router["api-routes.ts<br/>路由分发"]
Auth["auth.ts<br/>Cookie 管理"]
Pool["account-pool.ts<br/>账号轮转"]
Model["models.ts<br/>6 层解析"]
Task["task-runner.ts<br/>创建任务"]
WS["WebSocket<br/>ACP 事件"]
SSE["SSE 流<br/>→ 客户端"]
Req --> Router
Router --> Auth
Auth --> Pool
Pool --> Model
Model --> Task
Task --> WS
WS --> SSE
文件清单¶
| # | 文件 | 行数 | 说明 |
|---|---|---|---|
| 1 | 代理架构 | 277L | 10 模块依赖、5 种设计模式 |
| 2 | 账号池 | 394L | 状态机、双模式获取、健康检查 |
| 3 | 多轮对话 | 292L | ConversationManager、mode=attach |
| 4 | ACP→OpenAI 映射 | 299L | Chat + Responses 双模式 |
| 5 | OAuth 自动化(Playwright) | 257L | 6 步 OAuth、Playwright |
| 6 | 浏览器指纹 | 248L | 4 域名请求头生成器 |
| 7 | OAuth HTTP 自动化 | 294L | 纯 HTTP 6 步协议 |
| 8 | 部署与中间件 | 278L | CORS、SSE、Nginx |
| 9 | 服务器启动 | 343L | 7 步启动、12 管理端点 |
| 10 | 错误处理深度 | 441L | 5 种错误码、4 级隔离 |
| 11 | OAuth HTTP 深度 | 483L | admin-login.ts 416 行完整分析 |