fix: use customer token for assets and video
This commit is contained in:
22
README.md
22
README.md
@@ -14,7 +14,7 @@
|
||||
## 已串联的流程
|
||||
|
||||
1. 输入数字人正面、侧面、背面三张公网图片 URL。
|
||||
2. 逐张调用 `POST /v1/assets/upload`,以服务端素材库 Token 提交三张素材审核。
|
||||
2. 逐张调用 `POST /v1/assets/upload`,以客户输入的统一令牌提交三张素材审核。
|
||||
3. 对仍在审核的 `mat_*` 素材调用 `GET /v1/assets/{asset_id}`,直至三张全部 `ready` 或出现 `failed`。
|
||||
4. 从全部历史素材中选择多张图片,绑定成可复用的人物/形象;三视图只是常见组合,不再是固定的数据结构。
|
||||
5. 为本场角色选择人物素材,并补充场景、道具等非人物图片及参考视频,组织成官方 `content` 数组后调用 `POST /sd/api/v3/contents/generations/tasks`。
|
||||
@@ -33,11 +33,11 @@
|
||||
- 默认目录:`./logs/audit-YYYY-MM-DD-PID.jsonl`
|
||||
- 生产环境:用 `AUDIT_LOG_DIR` 指向持久化磁盘,并由技术配置日志保留/清理周期
|
||||
- 脱敏:不记录 API Key、Authorization、Cookie 和签名查询参数;提示词仅记录长度和哈希;URL 仅记录域名、路径与查询字段名
|
||||
- 关联排查:日志保留 `requestId`、浏览器 `clientId/sessionId`、客户视频 Key 的不可逆指纹与末四位、任务 ID、服务商 `trackId`、状态码和耗时;不保存完整 Key
|
||||
- 关联排查:日志保留 `requestId`、浏览器 `clientId/sessionId`、客户令牌的不可逆指纹与末四位、任务 ID、服务商 `trackId`、状态码和耗时;不保存完整令牌
|
||||
|
||||
## 10–20 人试用的部署边界
|
||||
|
||||
单实例 Node 服务可用于 10–20 人低频试用,但上线必须配置 HTTPS、限流、进程守护和持久日志目录。素材库 Token 由服务端统一配置;每位客户首次访问时输入自己的视频 Key,视频生成费用归属该 Key。`assetReviewTasks` 与视频任务 Key 映射当前仍在单进程内存中,因此暂时应保持单实例部署;如果要多实例扩容,需先将任务状态迁入 Redis/数据库。
|
||||
单实例 Node 服务可用于 10–20 人低频试用,但上线必须配置 HTTPS、限流、进程守护和持久日志目录。每位客户首次访问时输入自己的统一令牌,素材与视频请求均使用该令牌,视频生成费用也归属该令牌。`assetReviewTasks` 与视频任务令牌映射当前仍在单进程内存中,因此暂时应保持单实例部署;如果要多实例扩容,需先将任务状态迁入 Redis/数据库。
|
||||
|
||||
页面会分别展示正面、侧面、背面的审核状态与失败原因。异步审核任务 ID 会保存在浏览器本地,刷新或重新打开页面后会继续查询;本场角色尚未选齐人物素材时不会解锁视频生成。
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
|
||||
生产页支持文本、图片和视频三类输入。人物图片与场景、道具等其他参考图片共同占用单次最多 9 张图片额度;参考视频单独计数,当前 Demo 最多 3 条。最终请求按“文本 → 人物图片 → 其他参考图片 → 参考视频”的顺序写入 v3 `content` 数组,页面会同步生成图号和角色映射。
|
||||
|
||||
素材库 Token 只放在服务端环境变量中,不进入浏览器,也不会写入 Git。客户视频 Key 保存在客户当前浏览器的 `localStorage`,并随视频请求提交给本 Demo 服务端;服务端只在内存中建立任务与 Key 的临时映射,不写入日志或 Git。清理网站数据或更换浏览器后需重新输入。
|
||||
客户统一令牌保存在客户当前浏览器的 `localStorage`,并随素材与视频请求提交给本 Demo 服务端;服务端只在内存中建立任务与令牌的临时映射,不写入日志或 Git。清理网站数据或更换浏览器后需重新输入。
|
||||
|
||||
## 本地运行
|
||||
|
||||
@@ -58,10 +58,9 @@ npm start
|
||||
|
||||
请优先通过这个地址访问,不要把 `public/index.html` 当成普通文档直接打开。页面现已兼容直接打开时的样式加载,但接口交互仍依赖本地服务。
|
||||
|
||||
默认 `.env.example` 使用 Mock 模式,可以先完整评审交互。连接真实接口时设置服务端素材库 Token;视频 Key 由客户在页面首次访问时输入:
|
||||
默认 `.env.example` 使用 Mock 模式,可以先完整评审交互。连接真实接口时设置:
|
||||
|
||||
```bash
|
||||
KK_ASSET_TOKEN=素材库Token
|
||||
DEMO_MOCK=0
|
||||
```
|
||||
|
||||
@@ -78,26 +77,25 @@ npm start
|
||||
|
||||
上线前请完成以下配置:
|
||||
|
||||
1. 在服务端填写 `KK_ASSET_TOKEN`,并设置 `DEMO_MOCK=0`;不要把 `.env.local` 提交到 Git。视频 Key 不配置在服务器,由客户在页面输入。
|
||||
1. 设置 `DEMO_MOCK=0`;客户令牌不配置在服务器,由客户首次访问页面时输入。
|
||||
2. 设置 `HOST=0.0.0.0` 和实际监听端口,由 Nginx/网关反向代理并提供 HTTPS。
|
||||
3. 将 `AUDIT_LOG_DIR` 指向持久化磁盘,设置随机的 `AUDIT_HASH_SALT`,同时配置日志轮转与清理周期。
|
||||
4. 使用 systemd、PM2 或容器编排守护 Node 进程,异常退出后自动重启。
|
||||
5. 在入口层增加请求频率限制与并发生成限制;素材库 Token 仅保留在服务端。
|
||||
6. 发布后访问页面输入客户视频 Key,检查素材与视频能力均为可用,再分别跑一条素材审核和视频生成链路。
|
||||
5. 在入口层增加请求频率限制与并发生成限制。
|
||||
6. 发布后访问页面输入客户令牌,检查素材与视频能力均为可用,再分别跑一条素材审核和视频生成链路。
|
||||
|
||||
当前素材审核任务状态保存在单进程内存中,首次客户交付建议只运行一个应用实例。若需要多实例扩容,应先把任务状态迁移到 Redis 或数据库。
|
||||
|
||||
## 当前还缺的真实联调材料
|
||||
|
||||
- **快快素材库 Token**:由服务端统一配置,用于素材上传、审核与历史素材查询。
|
||||
- **客户视频 Key**:形如 `sk-...`,由客户首次打开页面时输入,用于视频提交和结果查询。
|
||||
- **客户统一令牌**:形如 `sk-...`,由客户首次打开页面时输入,同时用于素材上传/查询与视频提交/查询。
|
||||
- **数字人三视图的公网 URL**:正面、侧面、背面各一张;接口不支持直接上传本地文件或 Base64,URL 需带 `.png`、`.jpg` 等扩展名。
|
||||
- **客户希望验证的第一段分镜**:人物动作、台词、场景、时长、横竖屏及是否需要同步声音。Demo 已提供一段可替换示例。
|
||||
- **视频任务成功响应**:新版接口在 `content.video_url` 返回临时签名视频地址。
|
||||
|
||||
## 接口边界
|
||||
|
||||
- 素材审核与视频生成统一请求 `https://ai-api.kkidc.com`,但分别使用服务端素材库 Token 与客户视频 Key。
|
||||
- 素材审核与视频生成统一请求 `https://ai-api.kkidc.com`,并使用客户输入的同一个 Bearer 令牌。
|
||||
- 新版素材库只在列表中返回 `ready` 素材;`pending` / `failed` 通过单素材接口查询。
|
||||
- 视频生成应长期保存素材库返回的 `asset://...` 引用,不要依赖原始图片 URL。
|
||||
- 参考图/参考视频/首帧/首尾帧属于不同互斥调用方式;本 Demo 采用“多模态参考图”方式。
|
||||
|
||||
Reference in New Issue
Block a user