Responses API 提供 OpenAI 兼容接口,让您可以使用现有 OpenAI SDK 直接调用百炼应用(智能体、工作流),支持同步和异步两种调用模式。
适用范围
- 地域限制:仅适用于中国大陆版(北京地域)
- 应用类型:支持智能体应用和工作流应用
- API Key:需要已获取并配置 DashScope API Key
- 应用 ID:需要已创建百炼应用并获取应用 ID
前提条件
在开始使用 Responses API 之前,请确保满足以下条件:
- API Key:已获取 DashScope API Key
- 应用 ID:已在百炼平台创建智能体或工作流应用,并获取应用 ID
- SDK 版本:OpenAI Python SDK >= 1.0.0
- Python 版本:Python >= 3.7
快速开始
调用模式
同步调用
同步调用适用于需要即时响应的场景。API 会保持连接直到任务完成并返回结果。
适用场景:
- 实时对话交互
- 简单查询任务
- 响应时间可预期的操作
- 请求阻塞,直到获得完整响应
- 支持流式输出
- 适合短时任务(建议 < 30秒)
异步调用
异步调用适用于耗时较长的任务。API 立即返回任务 ID,通过轮询获取最终结果。
适用场景:
- 生成长文档或报告
- 多步骤工具调用
- 批量数据处理
- 可能超时的复杂任务
- 立即返回,不阻塞
- 通过任务 ID 查询状态
- 支持取消正在执行的任务
- 不支持流式输出
同步调用应用
同步调用适用于需要即时获取结果的实时交互场景,API 保持连接直到任务完成。
流程概述
- 初始化客户端并配置应用 ID
- 构建输入内容(文本、图像或文件)
- 发起同步请求
- 处理响应结果
发送文本消息
input:可以是简单字符串,SDK 会自动转换为标准格式
发送多轮对话
input:消息数组,包含完整的对话历史- 目前需要在每次请求时传递完整对话历史,基于
pre_response_id的上下文功能将在后续支持
发送图像
前置条件:
- 智能体应用:需选用通义千问 VL 系列模型,文件处理方式选择"自定义处理",并重新发布应用
- 工作流应用:需选用通义千问 VL 系列模型,模型节点的模型入参变量填为
imageList,并重新发布应用
发送文件(仅智能体应用)
前置条件:
- 仅智能体应用支持
- 应用内的文件处理方式需选择"全文引用"或"切片检索"
启用流式输出
前置条件:
- 工作流应用:需在结束节点或流程输出节点中启用"流式输出"开关,并重新发布应用
stream=True:开启流式输出,以 Server-Sent Events (SSE) 格式返回事件流- 主要事件类型:
response.output_text.delta(文本增量)、response.completed(响应完成)
异步调用应用
异步调用适用于耗时较长的任务(如生成报告、多步骤工具调用),通过"先提交、后查询"的方式避免请求超时。
流程概述
- 创建异步任务(设置
background=True),获取任务 ID - 轮询查询任务状态
- 任务完成后获取结果
- (可选)取消或删除任务
创建异步任务
background=True:开启异步模式,API 立即返回任务 ID- 异步任务暂不支持流式输出(
stream=true)
查询任务状态
queued:任务已创建,正在队列中等待调度running:任务正在执行中completed:任务成功完成,可在output字段获取结果failed:任务执行失败,可在output字段查看错误信息cancelled:任务被用户取消
取消任务
- 只能取消处于
queued或running状态的任务 - 已处于终态(
completed、failed、cancelled)的任务无法取消
删除任务记录
- 只能删除已处于终态(
completed、failed、cancelled)的任务 - 此操作不可恢复
API 详解
请求格式
创建响应(同步/异步)
端点: POST /responses
请求参数:
| 参数名 | 类型 | 必选 | 默认值 | 说明 |
|---|---|---|---|---|
| input | string | array | 是 | - | 输入内容,支持字符串或消息数组 |
| background | boolean | 否 | false | 是否使用异步模式 |
| stream | boolean | 否 | false | 是否启用流式输出(仅同步模式) |
| conversation_id | string | 否 | - | 会话 ID(暂不支持) |
| pre_response_id | string | 否 | - | 上一轮响应 ID(暂不支持) |
响应格式
同步响应
异步响应(创建任务)
任务管理 API(异步模式)
查询任务状态
端点: GET /responses/{task_id}
取消任务
端点: POST /responses/{task_id}/cancel
queued 或 running 状态的任务
删除任务记录
端点: DELETE /responses/{task_id}
completed、failed、cancelled)的任务
任务状态说明
| 状态 | 说明 | 可执行操作 |
|---|---|---|
| queued | 任务已创建,等待执行 | 查询、取消 |
| running | 任务正在执行中 | 查询、取消 |
| completed | 任务成功完成 | 查询、删除 |
| failed | 任务执行失败 | 查询、删除 |
| cancelled | 任务被用户取消 | 查询、删除 |