Skip to main content
Realtime

创建 Conversation

创建用于实时语音、文本交互和后台任务事件的 Conversation。

Realtime 目前为 Beta 功能,接口定义、事件结构和行为可能发生变化。请关注文档更新,并在生产环境使用前完成兼容性验证。
POST /api/v1/forward/realtime/conversations

请求头

Header是否必填说明
AuthorizationBearer <PAT 或 SAT>
Content-Typeapplication/json
Idempotency-Key应用生成的创建操作标识,1~256 字节,无首尾空白,推荐 UUID。同一操作重试复用原值和请求体。

请求体参数

参数类型是否必填说明
identity_idstring当前认证范围内可访问且已启用的 Identity ID,1~128 个字符,无首尾空白或控制字符。
template_idstring当前认证范围内可访问的 Template ID,1~128 个字符,无首尾空白或控制字符。
titlestring 或 null默认 null;去除首尾空白后为 1~256 个字符,不接受控制字符。
metadataobject 或 null默认 {}null{} 处理;规范化后的存储文本不超过 16 KiB,不接受 U+0000。
configobjectConversation 的 Realtime 配置。省略时由服务端解析默认配置;不接受 null
config.audioobject音频配置。
config.audio.outputobject输出音频配置。
config.audio.output.voicestring预置音色标识,只接受下表中的值。创建后固定,不支持修改。

预置音色

voice名称
longanqian默认
longanlingxin龙安灵心
longanlingxi龙安灵希
longanxiaoxin龙安小昕
longanlufeng龙安鲁风

示例请求

IDEMPOTENCY_KEY="$(uuidgen)"

curl --silent --show-error --fail-with-body -X POST \
  "https://api.qoder.com.cn/api/v1/forward/realtime/conversations" \
  -H "Authorization: Bearer $QODER_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $IDEMPOTENCY_KEY" \
  -d '{
    "identity_id": "idn_xxx",
    "template_id": "tmpl_xxx",
    "title": "项目分析",
    "metadata": {"source": "desktop"},
    "config": {
      "audio": {
        "output": {
          "voice": "longanlingxin"
        }
      }
    }
  }'

示例响应

HTTP 201 Created
{
  "id": "conv_xxx",
  "type": "voice.conversation",
  "status": "ready",
  "title": "项目分析",
  "metadata": {
    "source": "desktop"
  },
  "config": {
    "audio": {
      "output": {
        "voice": "longanlingxin"
      }
    }
  },
  "created_at": "2026-08-31T02:00:00Z",
  "updated_at": "2026-08-31T02:00:01Z"
}

响应字段

字段类型说明
idstringConversation ID。
typestring固定为 voice.conversation
statusstring创建成功时为 ready
titlestring 或 null会话标题。
metadataobject业务元数据。
configobject服务端解析并固化后的完整有效配置。
config.audio.output.voicestringConversation 固化的输出音色。
created_atstring创建时间,RFC 3339。
updated_atstring更新时间,RFC 3339。

幂等重试

  • 相同 Idempotency-Key 和相同请求体会重放首次创建结果。
  • 重放响应包含 Idempotency-Replayed: true
  • 相同 Idempotency-Key 对应不同请求体时返回 409 idempotency_conflict
  • 首次请求仍在处理时返回 409 idempotency_key_in_progress,重试间隔见 Retry-After

错误

HTTPCode触发条件
400invalid_requestinvalid_identity_idinvalid_template_idinvalid_titleinvalid_metadata请求参数无效。
400invalid_voiceconfig.audio.output.voice 不受支持。
400invalid_idempotency_key幂等 Header 缺失或无效。
401authentication_required、入口层 TOKEN_INVALIDPAT 或 SAT 无效、已过期,或直接使用了 Service Account Key。
403permission_erroridentity_mismatchSAT 未绑定可用的 Workspace,或 Identity 级 SAT 指定了其他 Identity。
404identity_not_found当前认证范围内未找到 Identity。
409idempotency_conflict同一 key 不能用于不同请求。
409idempotency_key_in_progress同一 key 的请求仍在处理,重试间隔见 Retry-After
409conversation_not_readyconversation_initialization_conflict会话未就绪或初始化冲突。
422identity_disabledIdentity 已禁用。
422conversation_initialization_failed会话初始化失败。
500conversation_persistence_errorconversation_state_invalidtemplate_config_read_failedinternal_error服务内部错误。
502forward_unavailableforward_protocol_error依赖服务异常。
503idempotency_unavailable服务暂不可用。

相关