# 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` 页面或数据库中保存、展示。 页面 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`。 ## 回滚 在 `memind_adm` 关闭图片生成插件或资产能力总开关即可立即停止新调用。该回滚不删除已经入库 的 MindSpace 图片,不要求回滚数据库字段,也不改变既有页面内容。