工作流编排对话型应用 API

标准请求 JSON 结构(/chat-messages)

{
  "inputs": {},                  // object,可选。应用/工作流中自定义输入字段的键值对
  "query": "",                   // string,必填。用户发送的对话消息内容
  "response_mode": "blocking",   // string,可选。返回模式:"blocking"(同步一次性返回)或 "streaming"(流式返回)
  "conversation_id": "",         // string,可选。会话 ID,传空表示新会话;传已有 ID 表示继续上下文
  "user": "",                    // string,必填。用户唯一标识符,用于区分不同用户会话
  "files": [                     // array,可选。要随消息发送的文件列表
    {
      "type": "",                 // string,必填。文件类型,例如 "image"、"audio"、"video"、"document"
      "transfer_method": "",      // string,必填。文件传输方式:"remote_url"(远程 URL)或 "local_file"(本地上传)
      "url": ""                   // string,可选。当 transfer_method 为 "remote_url" 时必填,文件的可访问 URL
      // 如果是 local_file 上传,则不使用 url 字段,而是通过 multipart/form-data 发送文件内容
    }
  ]
}

标准返回 JSON 结构(blocking 模式)

{
  "event": "message",           // string。固定值 "message",表示返回的是一条消息事件
  "conversation_id": "",        // string。会话 ID,下次请求可用来保持上下文
  "message_id": "",             // string。本条消息的唯一标识
  "answer": "",                 // string。AI 生成的完整回复内容
  "created_at": 0,              // integer。消息创建时间(Unix 时间戳,单位秒)
  "metadata": {                 // object。元数据
    "usage": {                  // object。Token 使用统计
      "total_tokens": 0,        // integer。本次对话总消耗的 token 数
      "prompt_tokens": 0,       // integer。提示词部分的 token 数
      "completion_tokens": 0    // integer。生成回复部分的 token 数
    }
  }
}

标准返回 JSON 结构(streaming 模式 - SSE 分片)

流式返回时,每条数据都以 data: 开头,内容是一个 JSON 片段,最后会有 data: [DONE] 表示结束。

// 单个 SSE 分片内容示例(结构与 blocking 相同,但 answer 字段是增量内容)
{
  "event": "message",           // string。事件类型
  "conversation_id": "",        // string。会话 ID
  "message_id": "",             // string。消息 ID
  "answer": "",                 // string。本次分片生成的部分文本(增量)
  "created_at": 0,              // integer。创建时间戳
  "metadata": {                 // object。元数据
    "usage": {                  // object。Token 使用统计(通常只在最后一个分片返回完整统计)
      "total_tokens": 0,        // integer。总 token 数
      "prompt_tokens": 0,       // integer。提示 token 数
      "completion_tokens": 0    // integer。生成 token 数
    }
  }
}

// 流结束标记
[DONE]