feat: integrate image_make with MindSpace assets
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
# image_make 隔离接入
|
||||
|
||||
## 边界
|
||||
|
||||
`image_make` 是独立服务。Memind 只通过 HTTP API 调用,下载结果并校验后写入 MindSpace;
|
||||
`image_make` 不连接 Memind 数据库,也不能直接写 MindSpace。开关关闭或请求失败时,现有页面、
|
||||
封面与缩略图流程保持不变。
|
||||
|
||||
## 后台开关
|
||||
|
||||
开关位于 `memind_adm` 的「资产能力」页面,按以下顺序生效:
|
||||
|
||||
1. 资产能力总开关开启;
|
||||
2. 图片生成插件开启,Provider 选择 `image_make`;
|
||||
3. 单独开启需要的用途:页面正文图片、页面头图、卡片封面、信息流与缩略图源图;
|
||||
4. Memind 运行环境同时配置 `IMAGE_MAKE_BASE_URL` 与 `IMAGE_MAKE_TOKEN`。
|
||||
|
||||
所有开关默认关闭。信息流缩略图仍由 MindSpace 从 `feed_cover` canonical 源资产派生,禁止为了
|
||||
缩略图再次调用生图模型。
|
||||
|
||||
## Memind API
|
||||
|
||||
登录用户可显式调用:
|
||||
|
||||
```http
|
||||
POST /api/mindspace/v1/images/generate
|
||||
Idempotency-Key: imgreq_xxx
|
||||
Content-Type: application/json
|
||||
|
||||
{
|
||||
"purpose": "hero",
|
||||
"prompt": "无文字的安静未来阅读空间,暖色自然光"
|
||||
}
|
||||
```
|
||||
|
||||
`purpose` 可选值:`inline_image`、`hero`、`card_cover`、`feed_cover`。
|
||||
|
||||
成功时服务先完成以下步骤,再返回 `201`:
|
||||
|
||||
1. 创建并轮询 image_make 任务;
|
||||
2. 下载图片并校验 MIME、文件头、大小与 SHA-256;
|
||||
3. 通过现有 `createChatAsset` 写入用户 MindSpace 公共候选资产;
|
||||
4. 获得 canonical `publicUrl` 后 best-effort acknowledge image_make 临时结果。
|
||||
|
||||
开关关闭返回带 `fallback: true` 的 `409`;服务未配置或暂不可用返回带 `fallback: true` 的
|
||||
`503`。调用方必须继续原有页面或默认缩略图流程。
|
||||
|
||||
## 本地配置
|
||||
|
||||
```bash
|
||||
IMAGE_MAKE_BASE_URL=http://127.0.0.1:8080
|
||||
IMAGE_MAKE_TOKEN=dev-token
|
||||
IMAGE_MAKE_REQUEST_TIMEOUT_MS=15000
|
||||
IMAGE_MAKE_GENERATION_TIMEOUT_MS=600000
|
||||
IMAGE_MAKE_POLL_INTERVAL_MS=1000
|
||||
IMAGE_MAKE_MAX_RESULT_BYTES=20971520
|
||||
```
|
||||
|
||||
Token 只进入 Memind 运行环境,不在 `memind_adm` 页面或数据库中保存、展示。
|
||||
|
||||
## 回滚
|
||||
|
||||
在 `memind_adm` 关闭图片生成插件或资产能力总开关即可立即停止新调用。该回滚不删除已经入库
|
||||
的 MindSpace 图片,不要求回滚数据库字段,也不改变既有页面内容。
|
||||
Reference in New Issue
Block a user