本文介绍如何通过 OpenAI 兼容模式的 Responses API 异步调用 阿里云百炼应用( 智能体 、 工作流 )。对于 耗时较长 的任务,只需在请求中设置 background 为 true,API 便会立即返回一个任务 ID,用于后续的查询与管理。这种“先提交、后查询”的方式,可有效避免请求超时或长时间等待。
- 同步调用:对于需要即时获取结果的实时交互场景,请参阅同步调用 API 参考。
- DashScope API:如需获取更多功能,请参阅DashScope API。
前提条件
- 已获取 API Key并配置API Key到环境变量。如果通过OpenAI SDK进行调用,还需要安装SDK。
- 已创建阿里云百炼应用,并已获取应用ID:在应用管理页面的应用卡片上复制其ID。
快速开始
本节提供完整的 Python 和 Java 示例,演示如何发起一个异步任务,然后通过轮询方式持续检查任务状态,直到任务完成并获取最终结果。
这个示例覆盖了异步调用的核心流程:
- 创建任务:调用
create方法并设置background=True,获取任务 ID。 - 轮询状态:在一个循环中,定期调用
retrieve方法查询任务状态。 - 处理结果:当任务状态变为
completed、failed或cancelled时,退出循环并展示最终结果。
代码示例
代码示例
具体流程
以下章节详细介绍了创建、查询、取消和删除异步任务的 API 操作。
创建任务
将background参数设置为true来开启异步模式,创建异步任务,立即获取任务 ID。
Endpoint:POST https://dashscope.aliyuncs.com/api/v2/apps/agent/{APP_ID}/compatible-mode/v1/responses
请将 {APP_ID} 替换为实际的应用 ID。
请求示例
- 单轮对话
- 参数传递
请求字段说明
字段名 | 类型 | 必填 | 描述 |
|---|---|---|---|
| string/array | 是 | 请求的核心输入内容。可以是单个字符串,或是一个包含多轮对话历史的消息数组。 |
| boolean | 是 | 是否以异步方式执行任务。
|
extra_body | object | 否 | 额外参数字段。 |
extra_body.biz_params | object | 否 | 应用通过自定义变量、节点或插件传递参数时,使用该字段进行传递。 |
user_defined_params | object | 否 | 表示自定义插件参数信息。 一个应用内添加的插件不可重复,且上限 10 个。 |
user_defined_tokens | object | 否 | 表示自定义插件的用户级鉴权信息。 一个应用内添加的插件不可重复,且上限 10 个。 |
user_defined_tokens.user_token | string | 否 | 传递该插件需要的用户鉴权信息。 |
响应示例
响应字段说明
字段名 | 类型 | 描述 |
|---|---|---|
| string | 异步任务的唯一标识符,用于后续查询、取消或删除操作。 |
| string | 任务的初始状态,通常为 |
| integer | 任务创建时间的Unix时间戳(秒)。 |
| string | 对象类型,固定为 |
查询任务
获取指定任务的当前状态和执行结果。
Endpoint:GET https://dashscope.aliyuncs.com/api/v2/apps/agent/{APP_ID}/compatible-mode/v1/responses/{RESPONSE_ID}
请将{APP_ID}替换为实际的应用 ID,将{RESPONSE_ID}替换为创建任务时返回的任务ID。
请求示例
响应示例
响应字段说明
字段名 | 类型 | 描述 |
|---|---|---|
| string | 异步任务的唯一标识符。 |
| string | 任务的当前状态,详见任务生命周期。 |
| array | 任务的输出结果。当 |
取消任务
取消一个正在进行中的异步任务。此操作仅对状态为 queued 或 running 的任务有效。
Endpoint:POST https://dashscope.aliyuncs.com/api/v2/apps/agent/{APP_ID}/compatible-mode/v1/responses/{RESPONSE_ID}/cancel
请将{APP_ID}替换为实际的应用ID,将{RESPONSE_ID}替换为创建任务时返回的任务ID。
请求示例
响应示例
响应字段说明
字段名 | 类型 | 描述 |
|---|---|---|
| string | 被操作任务的唯一标识符。 |
| string |
|
| string | 对象类型,固定为 |
删除任务记录
删除一个已处于终态(completed, failed, cancelled)的任务记录。此操作不可恢复。
Endpoint:DELETE https://dashscope.aliyuncs.com/api/v2/apps/agent/{APP_ID}/compatible-mode/v1/responses/{RESPONSE_ID}
请将{APP_ID}替换为实际的应用ID,将{RESPONSE_ID}替换为创建任务时返回的任务ID。
请求示例
响应示例
响应字段说明
字段名 | 类型 | 描述 |
|---|---|---|
| string | 被删除任务的唯一标识符。 |
| boolean |
|
| string | 对象类型,固定为 |
任务生命周期
异步任务的生命周期包含以下状态:
状态值 | 描述 |
|---|---|
| 任务已成功创建,正在队列中等待系统调度。 |
| 任务正在执行中。 |
| 任务已成功完成。可在响应的 |
| 任务在执行完成前被用户主动取消。 |
| 任务执行失败。可在响应的 |