Algunos modelos de Model Studio (como los de generación de imágenes y videos) utilizan invocación asíncrona debido a sus largos tiempos de procesamiento. El flujo de trabajo típico consiste en crear una tarea para obtener un ID y luego consultar el resultado usando ese ID. Model Studio proporciona APIs de tareas de propósito general para consultar resultados individuales, verificar el estado de múltiples tareas en lote y cancelar tareas en cola.
Requisitos previos
Puede llamar a las API de tareas asíncronas mediante HTTP.
Antes de llamar a las API, obtenga y configure una clave API, y luego configure la clave API como variable de entorno.
Consultar el resultado de una tarea asíncrona
Descripción de la API: Consulta el estado y el resultado de una tarea basándose en su task_id.
Límite de tasa: 20 QPS por cuenta de Alibaba Cloud (incluye todos los usuarios RAM).
Endpoint de solicitud
Parámetros de solicitud
Parameter passing | Campo | Tipo | Obligatorio | Descripción | Ejemplo |
|---|---|---|---|---|---|
Header | Authorization | String | Sí | Clave API en formato | Bearer sk-xxx |
Ruta | task_id | String | Sí | El ID de la tarea a consultar. | a8532587-xxxx-xxxx-xxxx-0c46b17950d1 |
Parámetros de respuesta
Campo | Tipo | Descripción | Ejemplo |
|---|---|---|---|
request_id | String | El ID único para esta solicitud. | 7574ee8f-xxxx-xxxx-xxxx-11c33ab46e51 |
output | Object |
| - |
output.task_id | String | El ID de la tarea consultada. | a8532587-xxxx-xxxx-xxxx-0c46b17950d1 |
output.task_status | String | El estado de la tarea.
| Estado de la tarea:
|
output.submit_time | String | La hora en que se envió la tarea. | 2023-12-20 21:36:31.896 |
output.scheduled_time | String | La hora en que se programó la tarea (cuando comenzó a ejecutarse). | 2023-12-20 21:36:39.009 |
output.end_time | String | La hora en que finalizó la tarea. | 2023-12-20 21:36:45.913 |
output.code | String | El código de error (devuelto solo cuando falla la tarea). | - |
output.message | String | El mensaje de error (devuelto solo cuando falla la tarea). | - |
output.task_metrics | Object | Métricas de la tarea, incluidas estadísticas del estado de las subtareas. |
|
usage | Object | La información de facturación para esta solicitud (varía según la tarea). |
|
Ejemplo de solicitud
$DASHSCOPE_API_KEY no está configurada como variable de entorno, reemplácela con su clave API real (formato: Bearer sk-xxx).- SDK de Python
- CLI de dashscope
fetch, list y cancel pueden invocarse en cualquier recurso de tareas asíncronas (como client.images.jobs, client.videos.jobs, client.audio.asr.jobs, etc.). Todos solicitan /api/v1/tasks y pueden consultar cualquier tarea bajo la cuenta actual.Ejemplo de respuesta
Consultar el estado de múltiples tareas asíncronas
Descripción de la API: Consulta múltiples tareas asíncronas utilizando diversas condiciones. Verifique el estado de varias tareas en una sola solicitud.
Límite de tasa: 20 QPS por cuenta de Alibaba Cloud (incluye todos los usuarios RAM).
Endpoint de solicitud
Parámetros de solicitud
Parameter passing | Campo | Tipo | Obligatorio | Descripción | Ejemplo |
|---|---|---|---|---|---|
Header | Authorization | String | Sí | La clave API, en formato Bearer sk-xxx. | Bearer sk-xxx |
Params | task_id | String | No | El ID de la tarea a consultar. Especifique un task_id para devolver únicamente el estado de esa tarea, u omítalo para consultar múltiples tareas. | a8532587-xxxx-xxxx-xxxx-0c46b17950d1 |
start_time | String | No | Hora de inicio de la consulta en formato | 20230420193058 representa las 19:30:58 del 20 de abril de 2023. | |
end_time | String | No | Hora de finalización de la consulta en formato | ||
model_name | String | No | El nombre del modelo. | wanx-v1 | |
status | String | No | El estado de la tarea:
| ||
page_no | Integer | No | El número de página de los resultados a devolver. Valor predeterminado: 1. | - | |
page_size | Integer | No | El número de entradas por página. Valor predeterminado: 10. | - |
Parámetros de respuesta
| Campo | Tipo | Descripción | Ejemplo |
|---|---|---|---|
| request_id | String | El ID único para esta solicitud. | 7574ee8f-xxxx-xxxx-xxxx-11c33ab46e51 |
| data | Array | Una lista de resultados de consulta. | |
| data[].api_key_id | String | El ID de la clave API. | |
| data[].caller_parent_id | String | El ID de la cuenta de Alibaba Cloud. | |
| data[].caller_uid | String | El ID de la cuenta de Alibaba Cloud. | |
| data[].gmt_create | Long | La hora de creación de la tarea (milisegundos desde la época). | |
| data[].start_time | Long | La hora en que comenzó la tarea, en milisegundos desde la época. | |
| data[].end_time | Long | La hora en que finalizó la tarea, en milisegundos desde la época. | |
| data[].region | String | La región. Ejemplo: cn-hangzhou | |
| data[].request_id | String | El ID de solicitud para el envío de la tarea. | |
| data[].status | String | El estado de la tarea:
| |
| data[].task_id | String | El ID de la tarea. | |
| data[].user_api_unique_key | String | Una clave API única generada a partir de los parámetros API del modelo al enviar la tarea. | |
| data[].model_name | String | El nombre del modelo. | |
| page_no | Integer | El número de página actual. | "page_no": 1 |
| page_size | Integer | El número de entradas por página. | "page_size": 10 |
| total_page | Integer | El número total de páginas. | "total_page": 4 |
| total | Integer | El número total de entradas. | "total": 39 |
| code | String | El código de error devuelto cuando falla la llamada. | "code": "Throttling.RateQuota" |
| message | String | El mensaje de error devuelto cuando falla la llamada. | "message": "Requests rate limit exceeded, please try again later." |
Ejemplo de solicitud
- SDK de Python
- CLI de dashscope
list también admite filtrado por model_name, api_key_id, region, etc. Los parámetros se corresponden uno a uno con los parámetros de consulta de la API HTTP.fetch, list y cancel son compatibles tanto con dominios específicos del espacio de trabajo ({WorkspaceId}.{region}.maas.aliyuncs.com) como con el dominio general (dashscope.aliyuncs.com), y pueden invocarse entre regiones. La API Key debe coincidir con el espacio de trabajo correspondiente.Ejemplo de respuesta
Cancelar una tarea asíncrona
Descripción de la API: Cancela una tarea asíncrona. Solo se pueden cancelar las tareas en estado PENDING (en cola, no iniciadas).
Límite de tasa: 20 QPS por cuenta de Alibaba Cloud (incluye todos los usuarios RAM).
Endpoint de solicitud
Parámetros de solicitud
Parameter passing | Campo | Tipo | Obligatorio | Descripción | Ejemplo |
|---|---|---|---|---|---|
Header | Authorization | String | Sí | La clave API, en formato Bearer sk-xxx. | Bearer sk-xxx |
Ruta | task_id | String | Sí | El ID de la tarea a cancelar. | a8532587-xxxx-xxxx-xxxx-0c46b17950d1 |
Parámetros de respuesta
Una solicitud de cancelación exitosa devuelve el ID de solicitud como una cadena JSON simple en el cuerpo de la respuesta. No hay campos de objeto JSON en la respuesta exitosa.
Para respuestas de error, se devuelven los siguientes campos:
Campo | Tipo | Descripción | Ejemplo |
|---|---|---|---|
code | String | El código de error devuelto cuando falla la llamada. |
|
message | String | El mensaje de error devuelto cuando falla la llamada. |
|
Ejemplo de solicitud
- SDK de Python
- CLI de dashscope
PENDING; en otros estados, la llamada lanzará una DashScopeError (UnsupportedOperation).Ejemplo de respuesta
Códigos de error
Código de estado HTTP | Código de error | Mensaje de error | Descripción |
|---|---|---|---|
400 | UnsupportedOperation | Error al cancelar la tarea. Confirme que la tarea esté en estado PENDING. | Error en la cancelación de la tarea. Solo se pueden cancelar las tareas en estado |