Skip to content

文本引导动作生成

生成内容 API 允许您以编程方式提交动作生成提示词,并在结果就绪后获取它们——这与 MOASIS 网页聊天所使用的流程完全相同,现已开放供您集成到自己的应用中。刚接触该 API?可以先阅读 快速开始 了解一个最小化的端到端示例。

身份验证

每个请求都必须在 Authorization 请求头中携带具有 CHAT 作用域的 API 密钥:

Authorization: Bearer sk-<your-api-key>

请参阅 API 密钥管理 了解如何创建密钥。下文所有接口路径均相对于您 MOASIS 实例的基础 URL,例如 http://mohub-dev.vgentx.com/api/v1

概览

生成过程是异步的:

  1. 通过 POST /chat/generate 提交提示词。该接口会创建一个新对话并立即返回 conversationId——它不会等待生成完成。
  2. 智能体在后台处理您的提示词时会创建一个或多个 任务(task),处理完成后结束本轮 对话回合(turn)
  3. 通过以下任一方式获取结果:
    • 如果您已经知道任务 ID,使用 GET /chat/generate/tasks/:taskId
    • 或使用 GET /chat/generate/conversation/:conversationId/tasks 来发现创建了哪些任务,并一次性获取它们的结果。

提交提示词

POST /chat/generate

请求体

字段类型是否必填说明
messagestring您的生成提示词。
parametersobject生成参数(见下文)。完全省略时使用默认值。
parameters.modeMotion | Render生成模式,默认为 Motion
parameters.modelGlide | Rhythm生成模型,默认为 Glide

示例

bash
curl -X POST http://mohub-dev.vgentx.com/api/v1/chat/generate \
  -H "Authorization: Bearer sk-<your-api-key>" \
  -H "Content-Type: application/json" \
  -d '{"message": "Generate a relaxing lo-fi track", "parameters": {"mode": "Motion", "model": "Glide"}}'

响应

json
{
  "data": {
    "conversationId": "5f0b1e2a-..."
  }
}

请保存 conversationId——稍后查询结果时需要使用它。

查询单个任务

GET /chat/generate/tasks/:taskId

返回某个任务的当前状态。任务运行期间不会返回 contents 字段;当 status 变为 COMPLETED 后,contents 中会包含带预签名下载链接的内容。

示例

bash
curl http://mohub-dev.vgentx.com/api/v1/chat/generate/tasks/<taskId> \
  -H "Authorization: Bearer sk-<your-api-key>"

运行中的响应

json
{
  "data": {
    "id": "f3a9...",
    "status": "PROCESSING"
  }
}

完成后的响应

json
{
  "data": {
    "id": "f3a9...",
    "status": "COMPLETED",
    "contents": [
      {
        "id": "c1b2...",
        "title": "lo-fi-track-01",
        "fileSize": 2048391,
        "thumbnailUrl": "https://...",
        "metadata": { "duration": 32.5 },
        "presignedUrl": "https://..."
      }
    ]
  }
}

可能的 status 取值:PENDINGPROCESSINGUPLOADINGPOLISHINGCOMPLETEDFAILEDCANCELLED。当状态为 FAILED 时,请查看 errorMessage 获取详细信息。

获取对话中的任务列表

GET /chat/generate/conversation/:conversationId/tasks

返回某个对话 最近一次已完成回合 中创建的任务——这在刚调用完 POST /chat/generate、还不知道具体 taskId 时非常有用。每个任务条目的结构与上文单任务查询接口的响应相同。

示例

bash
curl http://mohub-dev.vgentx.com/api/v1/chat/generate/conversation/<conversationId>/tasks \
  -H "Authorization: Bearer sk-<your-api-key>"

智能体仍在处理您的请求时:

json
{
  "data": {
    "message": "The agent is still processing your request.",
    "tasks": []
  }
}

回合完成后:

json
{
  "data": {
    "tasks": [
      { "id": "f3a9...", "status": "COMPLETED", "contents": [ /* ... */ ] }
    ]
  }
}

请持续轮询该接口(例如每隔几秒一次),直到响应中不再包含 messagetasks 不为空,然后按照上文所述检查每个任务的 status