bb9f55e93c5f6916583c52ff03e421429485eb20
并发模型从「每worker并发1 + 多worker并行」改为全局串行:同一时间 只处理1个请求,其余排队;多 worker 仅作热备(主 worker 坏了才用备机)。 接口4(face/features) 走豆包、不占 GPU,不纳入串行。 - pool: asyncio.Semaphore(max_global_concurrency=1) + acquire/release_global_slot (依赖单进程 uvicorn 部署,已在注释中标注) - forward: proxy_request 最外层 acquire 全局槽、try/finally 全路径释放; 入参 multipart 解析挂 request.state;原重试/故障转移逻辑抽到 _dispatch_with_retries - reqlog(新): 标量入参保留;图片(file/base64)存盘转URL,绝不内嵌base64; 出参递归摘要截断(landmarks/长串/大数组) - logging_middleware: RequestLogEntry 加 request_params/response_data, jsonl 全量记录;_load_from_logfile 同步映射防重启丢字段;get_stats recent 暴露 - /gateway-health 暴露 global_max/global_busy/global_waiting - config: dispatch 新增 max_global_concurrency / max_queue_wait_seconds - tests: test_reqlog + test_gateway_serialization(9 用例) 顺带提交此前未提交的网关统计(daily stats 接口)与耗时看板(api_timing_dashboard.html)。 Co-Authored-By: Claude <noreply@anthropic.com>
文档索引
旷视五接口(四庭七眼测量 / C端生发 / B端生发 / 用户特征 / 发际线PNG)。系统拆成 外网网关 + 高性能 worker(GPU) 两台机器、一个仓库。
| 文档 | 作用 |
|---|---|
| 实现说明.md | 实现总览:架构、五个接口怎么实现、base64→URL 映射、错误码、部署/环境要点。先读这份。 |
| 接口文档.md | 对外 API 契约(字段 / 错误码)。字段命名的唯一权威。 |
| 旷视具体需求.md | 原始需求。 |
| ../OFFLINE_ASSETS.md | worker 离线模型权重/字体清单(内网部署)。 |
原先分散的「各接口技术方案 / 开发任务书 / 系统架构 / 网关任务书」已合并进
实现说明.md(细节可查 git 历史)。
Languages
Python
63.7%
HTML
34.8%
Shell
1.3%
JavaScript
0.2%