5.0 KiB
image_make 隔离接入
边界
image_make 是独立服务。Memind 只通过 HTTP API 调用,下载结果并校验后写入 MindSpace;
image_make 不连接 Memind 数据库,也不能直接写 MindSpace。开关关闭或请求失败时,现有页面、
封面与缩略图流程保持不变。
后台开关
开关位于 memind_adm 的「资产能力」页面,按以下顺序生效:
- 资产能力总开关开启;
- 图片生成插件开启,Provider 选择
image_make; - 单独开启需要的用途:页面正文图片、页面头图、卡片封面、信息流与缩略图源图;
- Memind 运行环境同时配置
IMAGE_MAKE_BASE_URL与IMAGE_MAKE_TOKEN。
所有开关默认关闭。信息流缩略图仍由 MindSpace 从 feed_cover canonical 源资产派生,禁止为了
缩略图再次调用生图模型。
Provider、默认模型、超时和 ComfyUI 参数由 MemindAdm 的图片生成配置写入 Portal 数据库。 百炼密钥优先复用「统一模型中心」中已启用的 DashScope/Qwen 视觉 Provider;管理接口只返回 脱敏状态,不返回明文密钥。
独立 image_make 服务通过下列内部接口拉取运行配置:
GET /api/internal/image-make/runtime-config
Authorization: Bearer <IMAGE_MAKE_TOKEN>
该接口会把运行时所需的 Provider 配置返回给受信任的 image_make 服务,因此必须只在内网使用,
并保证 Portal 与 image_make 配置相同的 Token。
Memind API
登录用户可显式调用:
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:
- 创建并轮询 image_make 任务;
- 下载图片并校验 MIME、文件头、大小与 SHA-256;
- 通过现有
createChatAsset写入用户 MindSpace 公共候选资产; - 获得 canonical
publicUrl后 best-effort acknowledge image_make 临时结果。
开关关闭返回带 fallback: true 的 409;服务未配置或暂不可用返回带 fallback: true 的
503。调用方必须继续原有页面或默认缩略图流程。
本地配置
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
IMAGE_MAKE_SEMANTIC_REVIEW_ENABLED=1
IMAGE_MAKE_SEMANTIC_REVIEW_MIN_SCORE=70
IMAGE_MAKE_SEMANTIC_REVIEW_MAX_ATTEMPTS=3
Token 只进入 Memind 运行环境,不在 memind_adm 页面或数据库中保存、展示。
页面 Agent 通过 sandbox MCP 的 generate_image 工具调用 Portal 内部入口。需要额外配置
MINDSPACE_AGENT_API_BASE_URL;MCP 使用现有 MINDSPACE_INTERNAL_AGENT_SECRET 鉴权,成功结果
直接返回 MindSpace publicUrl 与 workspaceRelativePath。工具始终受同一后台总开关、Provider
开关和用途开关约束。容器部署时 base URL 应使用容器可访问的 Portal 地址,不能使用容器自身的
127.0.0.1。
image_make 服务还需配置:
AUTH_TOKEN_MEMIND=<与 Portal IMAGE_MAKE_TOKEN 相同的值>
IMAGE_MAKE_MEMIND_CONFIG_URL=http://<portal-host>:8081/api/internal/image-make/runtime-config
IMAGE_MAKE_MEMIND_CONFIG_TOKEN=<与 Portal IMAGE_MAKE_TOKEN 相同的值>
语义审核
生成结果写入 MindSpace 前默认调用统一模型中心配置的 Qwen VL/DashScope 视觉模型做图文一致性
审核。审核不可用、返回格式无效或相关度低于阈值时均 fail closed,不保存图片;语义不匹配最多
重试三次,并为每次重试使用新的幂等键。生产启用图片生成前必须同时验证生图 Provider 与视觉
审核 Provider,不能只验证 /health。
发布前置条件
Portal runtime 不包含独立 image_make 服务。正式启用前必须确保:
image_make来自独立、可追溯的 Git commit 和发布产物;- 服务已在目标环境启动,
/health与/ready均通过; - Portal 与服务端 Token 一致,运行配置接口可从服务侧访问;
- MemindAdm 中 Provider、用途开关和统一模型中心 DashScope Key 已配置;
- 使用真实图片请求完成生成、语义审核、MindSpace 落盘和页面引用的端到端验收。
若这些条件未完成,保持所有图片用途开关关闭;不得把 Portal 代码已上线等同于图片生成能力已 可用。
相关代码改动至少执行:
npm test
npm run build
npm run verify:mindspace-publish-guards:full
npm run verify:mindspace-page-sync-guards
npm run verify:h5-session-patches
回滚
在 memind_adm 关闭图片生成插件或资产能力总开关即可立即停止新调用。该回滚不删除已经入库
的 MindSpace 图片,不要求回滚数据库字段,也不改变既有页面内容。