跳转到内容

托管生图网关

生图插件应支持两条路径:

  1. 通过 HaloForge Cloud 或 Enterprise Server 的托管网关。
  2. 用户在社区版配置自定义端点。

这样插件既能支持本地用户,也能在登录宿主后使用受管、可审计的网关。

SDK helper 名为 enterpriseGateway(),这是历史兼容命名。产品 UI 应把它当作宿主管理的生图网关。

Manifest:

{
"host_capabilities": ["enterprise_gateway"],
"permissions": [
{ "type": "host_enterprise_gateway_access" }
]
}

前端:

import { enterpriseGateway } from "@haloforge/plugin-sdk";
const gateway = enterpriseGateway();
const result = await gateway.generateImages({
model: "gpt-image-1",
prompt: "Create a polished HaloForge plugin icon.",
size: "1024x1024",
n: 1,
response_format: "url",
});

宿主会通过当前登录的 Cloud 或 Enterprise session 转发请求,插件不会拿到 Cloud session token。

社区版应提供这些设置:

  • 网关模式:auto、HaloForge Cloud、custom endpoint
  • custom base URL
  • optional API key
  • 默认模型和尺寸

OpenAI-compatible 端点如果涉及 CORS 或密钥处理,建议通过 Rust 后端请求,并声明 network_http

生图插件两条网关路径都应输出诊断日志:

  • 托管网关的前端调用使用 @haloforge/plugin-sdkcreatePluginLogger()
  • 自定义端点的 Rust 后端调用使用 ctx.log(...)
  • 记录 startedsucceededfailed 事件,并包含 request ID、网关类型、操作类型、模型、尺寸、数量、状态、耗时、输出数量和短错误摘要。

不要记录 Cloud session token、用户 API key、bearer token、完整 prompt、上传图片字节、mask 或 base64 payload。HaloForge 最终会写入 ~/.haloforge/logs/haloforge.log.YYYY-MM-DD