docs: add multi-image image generation task
This commit is contained in:
+41
@@ -1950,3 +1950,44 @@
|
||||
- API 充值回调 / 下单状态分组:13 tests OK。
|
||||
- `apps.portal.tests` 全量:39 tests OK。
|
||||
- 结合此前 `GenerateApiTests` 整类 47 tests OK 与新增单测,当前 API 89 条测试均有通过证据;所有应用已通过拆分方式完成完整回归。完整单命令超时仍作为远程 MySQL / 执行器稳定性现象保留,不再构成测试覆盖缺口。
|
||||
|
||||
## 2026-07-16 生产启用:T-619 多张图片理解
|
||||
|
||||
- 目标:`185.216.248.75`,域名 `cm.833729.com`,发布版本 `707941a`。
|
||||
- 备份:
|
||||
- `/root/cmhub_deploy_backups/cmhub-before-t619-20260716174234.tar.gz`:排除 media/staticfiles 的代码与 `.env`,root-only。
|
||||
- `/root/cmhub_deploy_backups/cmhub-config-before-t619-20260716174234.tar.gz`:Nginx、systemd、MySQL 8.4 配置,root-only。
|
||||
- `/root/cmhub_deploy_backups/cmhub-db-before-t619-20260716174234.sql.gz`:MySQL 8.4 逻辑备份,已重新压缩并通过 `gzip -t`。
|
||||
- 部署:
|
||||
- 本地 `main` 推送到远程后,以 `git archive 707941a` 生成发布包;SHA256 为 `ccf111ae126cf3274dfdc060d5ad742a13f565fd19cd781736614840668a15b9`。
|
||||
- 服务器无 Git 工作副本,使用 staging + `rsync --delete` 同步跟踪文件;明确排除 `.env*`、media、staticfiles、`.secrets`、`.well-known` 与部署标记。
|
||||
- `manage.py check` 0 issues;生产已应用 `ai.0005`、`billing.0008`。仅保留 allauth 在 MySQL 条件唯一约束上的既有 `models.W036` 警告。
|
||||
- `.env` 显式配置 `VISION_MAX_IMAGES=8`、`VISION_MAX_IMAGE_BYTES=10485760`、`VISION_MAX_TOTAL_BYTES=33554432`。
|
||||
- Nginx HTTP / HTTPS server 均新增 `/api/v1/analyze/images` 精确路由,转发到 `127.0.0.1:8012`,连接超时 30 秒、发送/读取超时 900 秒;`client_max_body_size=168m` 保持不变。`nginx -t` 通过。
|
||||
- 依次 reload Nginx、重启 `cmhub-generate`、验证 8012,再重启 `cmhub-web`;66 个 `cmhub-image-worker@*.service` 未重启,避免打断排队生图任务。
|
||||
- 运营配置:
|
||||
- 复用 `AiModel(id=7, GPT-5.5 文本, api_type=chat)`,其 active capabilities 为 `text + vision`。
|
||||
- 新建 active 默认别名 `vision-standard`,并写 `AiConfigAuditLog`。
|
||||
- 新建 active 默认计费规则 `operation_type=vision + alias=vision-standard + resolution=""`,价格为 1 点/次。
|
||||
- 真实验收:
|
||||
- 使用临时生产验收 API Key 提交两张相同截图,调用 `POST https://cm.833729.com/api/v1/analyze/images`。
|
||||
- 返回 HTTP 200、`model_used=gpt-5.5`、`points_cost=1`、`call_id=6096` 和非空中文理解文字。
|
||||
- 余额 234→233;`CallRecord` 为 `vision/success`;consume 1 条、refund 0 条;结果摘要长度 258,不保存输入图片。
|
||||
- `cmhub-generate` access log 确认请求由长请求池处理;临时验收 Key 已吊销。
|
||||
- 收尾状态:`cmhub-web`、`cmhub-generate`、Nginx、MySQL 8.4 均 active,无 failed systemd unit;公网首页返回 200。
|
||||
|
||||
## 2026-07-17 文档登记:T-620 图生图支持单图 / 多图主图与参考图
|
||||
|
||||
- 状态:TODO(仅任务登记,未改代码、数据库或线上配置)。
|
||||
- 背景:当前 cmhub 图生图链路的请求模型、生成核心和 Provider 都只传递单张输入图;中转站 `/v1/images/edits` 已通过直连测试确认可以接收按顺序重复的 multipart `image` 字段并返回图片,但 cmhub 尚未把该能力暴露给调用方。业务需要约定第一张为主图,第二张及之后为参考图。
|
||||
- 文档变更:
|
||||
- `docs/06-tasks.md`:新增 T-620「图生图支持单图 / 多图主图与参考图」,状态为 TODO,并登记 M16。
|
||||
- `docs/00-ai-start-here.md`、`README.md`、`docs/current-state.md`:将 T-620 登记为下一项任务。
|
||||
- 方案口径:
|
||||
- 同步 `/api/v1/generate/image` 与异步 `/api/v1/generate/image/tasks` 增加有序 `images` 列表,同时保留旧单个 `image_url` / `image_base64` 字段;新旧输入不能混用。
|
||||
- cmhub 服务端固定注入主图 / 参考图规则,`images[0]` 为主图、`images[1:]` 为参考图;用户 prompt 仍先审核,固定规则随有效 prompt 发送给中转站。
|
||||
- Provider 按协议传递完整有序图片集合:Chat 多段图片、JSON `image_urls` / `images` 数组、`images_edits` 重复 `image` multipart 字段;不得只发第一张或拼接图片。
|
||||
- 异步任务新增有序输入文件存储,旧单输入任务保持读取兼容;一次请求只扣一次点,失败 / 重试 / 僵任务继续沿用现有幂等退点。
|
||||
- 输入数量、单图和总大小、SSRF、敏感词、无定价等校验均在预扣前完成;不保存 base64、输入图片内容或 provider raw。
|
||||
- 中转站直连验收证据:使用 `gpt-image-2`、两张本地图片调用 `/v1/images/edits`,HTTP 200,约 73 秒返回 `data[0].b64_json`,解码后图片约 2.04 MB;输出保存于工作区外的 `D:\chengma\cmhub-relay-tests\multi-images-edits-result.bin`。该结果确认重复 `image` 字段可被接受,但主图 / 参考图语义仍由 T-620 的服务端固定 prompt 和真实两张明显不同图片验收确认。
|
||||
- 验证:任务登记完成后执行文档 diff 检查;未运行代码测试,因为本轮未改实现。
|
||||
|
||||
Reference in New Issue
Block a user