文本引导动作生成
生成内容 API 允许您以编程方式提交动作生成提示词,并在结果就绪后获取它们——这与 MOASIS 网页聊天所使用的流程完全相同,现已开放供您集成到自己的应用中。刚接触该 API?可以先阅读 快速开始 了解一个最小化的端到端示例。
身份验证
每个请求都必须在 Authorization 请求头中携带具有 CHAT 作用域的 API 密钥:
Authorization: Bearer sk-<your-api-key>请参阅 API 密钥管理 了解如何创建密钥。下文所有接口路径均相对于您 MOASIS 实例的基础 URL,例如 http://mohub-dev.vgentx.com/api/v1。
概览
生成过程是异步的:
- 通过
POST /chat/generate提交提示词。该接口会创建一个新对话并立即返回conversationId——它不会等待生成完成。 - 智能体在后台处理您的提示词时会创建一个或多个 任务(task),处理完成后结束本轮 对话回合(turn)。
- 通过以下任一方式获取结果:
- 如果您已经知道任务 ID,使用
GET /chat/generate/tasks/:taskId; - 或使用
GET /chat/generate/conversation/:conversationId/tasks来发现创建了哪些任务,并一次性获取它们的结果。
- 如果您已经知道任务 ID,使用
提交提示词
POST /chat/generate请求体
| 字段 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
message | string | 是 | 您的生成提示词。 |
parameters | object | 否 | 生成参数(见下文)。完全省略时使用默认值。 |
parameters.mode | Motion | Render | 否 | 生成模式,默认为 Motion。 |
parameters.model | Glide | 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 取值:PENDING、PROCESSING、UPLOADING、POLISHING、COMPLETED、FAILED、CANCELLED。当状态为 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": [ /* ... */ ] }
]
}
}请持续轮询该接口(例如每隔几秒一次),直到响应中不再包含 message 且 tasks 不为空,然后按照上文所述检查每个任务的 status。