画像や動画生成など、一部の Model Studio のモデルは処理時間が長く、非同期呼び出しメカニズムを使用します。操作を完了するには、通常 2 つの API を呼び出します。まず、タスクを作成して ID を取得します。次に、その ID を使用して結果をクエリします。非同期タスクの管理を簡素化するために、Model Studio は一連の汎用的な非同期タスク API を提供しています。これらの API を使用すると、単一タスクの結果のクエリ、複数のタスクのステータスのバッチクエリ、およびキューに入れられているがまだ処理されていないタスクのキャンセルができます。
前提条件
非同期タスク API は HTTP 経由で呼び出すことができます。
API を呼び出す前に、API キーを取得して設定し、次にAPI キーを環境変数として設定します。
非同期タスクの結果のクエリ
API の説明: task_id に基づいてタスクのステータスと結果をクエリします。
レート制限: 20 クエリ/秒 (QPS)。各 Alibaba Cloud アカウント (RAM ユーザーを含む) は、1 秒あたり最大 20 件のリクエストを行うことができます。
現在の API キーを所有する Alibaba Cloud アカウントに属するすべてのタスクをクエリできます。これには、そのアカウントのいずれかの API キーで送信されたタスクが含まれます。他の Alibaba Cloud アカウントのタスクをクエリすることはできません。
完了した非同期タスクは通常 24 時間保持されます。正確な保持期間については、特定のタスクの API リファレンスをご参照ください。この期間が過ぎると、システムはタスクデータを自動的に削除します。
リクエストエンドポイント
GET https://dashscope.aliyuncs.com/api/v1/tasks/{task_id}リクエストパラメーター
パラメーターの渡し方 | フィールド | タイプ | 必須 | 説明 | 例 |
ヘッダー | Authorization | String | はい | API キー。例: Bearer sk-xxx | Bearer sk-xxx |
パス | task_id | String | はい | クエリするタスクの ID。 | a8532587-xxxx-xxxx-xxxx-0c46b17950d1 |
レスポンスパラメーター
フィールド | タイプ | 説明 | 例 |
request_id | String | このリクエストの一意な ID。 | 7574ee8f-xxxx-xxxx-xxxx-11c33ab46e51 |
output | Object |
| - |
output.task_id | String | クエリされたタスクの ID。 | a8532587-xxxx-xxxx-xxxx-0c46b17950d1 |
output.task_status | String | タスクのステータス。
| タスクのステータス:
|
output.submit_time | String | タスクが送信された時刻。 | 2023-12-20 21:36:31.896 |
output.scheduled_time | String | タスクがスケジュールされた時刻、つまり実行が開始された時刻。 | 2023-12-20 21:36:39.009 |
output.end_time | String | タスクが終了した時刻。 | 2023-12-20 21:36:45.913 |
output.code | String | エラーコード。タスクが失敗した場合にのみ返されます。 | - |
output.message | String | エラーメッセージ。タスクが失敗した場合にのみ返されます。 | - |
output.task_metrics | Object | タスクメトリック。サブタスクのステータスに関する統計が含まれます。 |
|
usage | Object | このリクエストの課金情報。課金情報はタスクによって異なります。 |
|
リクエスト例
curl -X GET 'https://dashscope.aliyuncs.com/api/v1/tasks/73205176-xxxx-xxxx-xxxx-16bd5d902219' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY"Model Studio API キーを環境変数として設定していない場合は、$DASHSCOPE_API_KEY を実際の API キーに置き換えてください。例: --header "Authorization: Bearer sk-xxx"。
レスポンス例
{
"request_id": "45ac7f13-xxxx-xxxx-xxxx-e03c35068d83",
"output": {
"task_id": "73205176-xxxx-xxxx-xxxx-16bd5d902219",
"task_status": "SUCCEEDED",
"submit_time": "2023-12-20 21:36:31.896",
"scheduled_time": "2023-12-20 21:36:39.009",
"end_time": "2023-12-20 21:36:45.913",
"results": [
{
"url": "https://dashscope-result-bj.oss-cn-beijing.aliyuncs.com/xxx1.png"
},
{
"url": "https://dashscope-result-bj.oss-cn-beijing.aliyuncs.com/xxx2.png"
},
{
"url": "https://dashscope-result-bj.oss-cn-beijing.aliyuncs.com/xxx3.png"
},
{
"code": "DataInspectionFailed",
"message": "出力データに不適切なコンテンツが含まれている可能性があります。",
}
],
"task_metrics": {
"TOTAL": 4,
"SUCCEEDED": 3,
"FAILED": 1
}
},
"usage": {
"image_count": 3
}
}複数の非同期タスクのステータスのクエリ
API の説明: クエリ条件の組み合わせを使用して、複数の非同期タスクの現在のステータスを一度に取得できます。この API を使用して、単一のリクエストで複数のタスクの実行進捗を確認できます。
レート制限: 20 QPS。各 Alibaba Cloud アカウント (RAM ユーザーを含む) は、1 秒あたり最大 20 件のリクエストを行うことができます。
現在の API キーを所有する Alibaba Cloud アカウントに属するすべてのタスクをクエリできます。これには、そのアカウントのいずれかの API キーで送信されたタスクが含まれます。他の Alibaba Cloud アカウントのタスクをクエリすることはできません。
完了したタスクの保持期間が終了すると、システムは自動的にそれを削除します。そのデータをクエリすることはできなくなります。
リクエストエンドポイント
GET https://dashscope.aliyuncs.com/api/v1/tasks/リクエストパラメーター
パラメーターの渡し方 | フィールド | タイプ | 必須 | 説明 | 例 |
ヘッダー | Authorization | String | はい | API キー。例: Bearer sk-xxx | Bearer sk-xxx |
パラメーター | task_id | String | いいえ | クエリするタスクの ID。 task_id を指定すると、API はそのタスクのステータスのみを返します。複数のタスクをクエリするには、このパラメーターを使用しないでください。 | a8532587-xxxx-xxxx-xxxx-0c46b17950d1 |
start_time | String | いいえ | クエリ範囲の開始時刻。フォーマットは
| 20230420193058 は 2023 年 4 月 20 日 19:30:58 を表します。 | |
end_time | String | いいえ | クエリ範囲の終了時刻。フォーマットは
| ||
model_name | String | いいえ | モデル名。 | wanx-v1 | |
status | String | いいえ | タスクのステータス:
| ||
page_no | Integer | いいえ | 返す結果のページ番号。デフォルト: 1。 | - | |
page_size | Integer | いいえ | 各ページで返すエントリ数。デフォルト: 10。 | - |
レスポンスパラメーター
フィールド | タイプ | 説明 | 例 |
request_id | String | このリクエストの一意な ID。 | 7574ee8f-xxxx-xxxx-xxxx-11c33ab46e51 |
data | Array | クエリ結果のリスト。 | |
data[].api_key_id | String | API キーの ID。 | |
data[].caller_parent_id | String | Alibaba Cloud アカウントの ID。 | |
data[].caller_uid | String | Alibaba Cloud アカウント ID。 | |
data[].gmt_create | Long | タスクが作成された時刻 (エポックからのミリ秒単位)。 | |
data[].start_time | Long | タスクが開始された時刻 (エポックからのミリ秒単位)。 | |
data[].end_time | Long | タスクが終了した時刻 (エポックからのミリ秒単位)。 | |
data[].region | String | リージョン。例: cn-hangzhou | |
data[].request_id | String | タスク送信のリクエスト ID。 | |
data[].status | String | タスクのステータス:
| |
data[].task_id | String | タスク ID。 | |
data[].user_api_unique_key | String | API の一意なキー。タスクの送信時にモデルの API パラメーターから作成された一意なインデックスです。 | |
data[].model_name | String | モデル名。 | |
page_no | Integer | 現在のページ番号。 |
|
page_size | Integer | ページあたりのエントリ数。 |
|
total_page | Integer | 総ページ数。 |
|
total | Integer | 総エントリ数。 |
|
code | String | 呼び出しが失敗したときに返されるエラーコード。 |
|
message | String | 呼び出しが失敗したときに返されるエラーメッセージ。 |
|
リクエスト例
curl -X GET 'https://dashscope.aliyuncs.com/api/v1/tasks/?start_time=xxx&end_time=xxx&status=xxx' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY"レスポンス例
{
"total": 2,
"data": [
{
"api_key_id": "15xxxx",
"caller_parent_id": "xxxxxxxxx",
"caller_uid": "xxxxxxxxx",
"gmt_create": 1745568428109,
"model_name": "wanx2.1-kf2v-plus",
"region": "cn-beijing",
"request_id": "1abfc3c8-dd25-98da-ad0b-xxxxxx",
"start_time": 1745568428138,
"status": "RUNNING",
"task_id": "50e2ccea-abc4-43d7-a0dc-xxxxxx",
"user_api_unique_key": "apikey:v1:aigc:image2video:video-synthesis:wanx2.1-kf2v-plus"
},
{
"api_key_id": "15xxxx",
"caller_parent_id": "xxxxxxxxx",
"caller_uid": "xxxxxxxxx",
"end_time": 1745568302481,
"gmt_create": 1745568293253,
"model_name": "wanx2.1-t2i-turbo",
"region": "cn-beijing",
"request_id": "f6bf34d9-bf87-9e8b-9ed4-xxxxxx",
"start_time": 1745568293273,
"status": "SUCCEEDED",
"task_id": "3c777dbc-8cc6-4d80-aa90-xxxxxx",
"user_api_unique_key": "apikey:v1:aigc:text2image:image-synthesis:wanx2.1-t2i-turbo"
}
],
"total_page": 1,
"page_no": 1,
"request_id": "f6756b7e-d0bb-9b74-813a-xxxxxx",
"page_size": 10
}非同期タスクのキャンセル
API の説明: 非同期タスクをキャンセルします。PENDING 状態のタスク、つまりキューに入れられているが処理が開始されていないタスクのみキャンセルできます。他の状態のタスクはキャンセルできません。
レート制限: 20 QPS。各 Alibaba Cloud アカウント (RAM ユーザーを含む) は、1 秒あたり最大 20 件のリクエストを行うことができます。
現在の API キーを所有する Alibaba Cloud アカウントに属するタスクはすべてキャンセルできます。これには、そのアカウントのいずれかの API キーで送信されたタスクが含まれます。他の Alibaba Cloud アカウントによって送信されたタスクはキャンセルできません。
リクエストエンドポイント
POST https://dashscope.aliyuncs.com/api/v1/tasks/{task_id}/cancelリクエストパラメーター
パラメーターの渡し方 | フィールド | タイプ | 必須 | 説明 | 例 |
ヘッダー | Authorization | String | はい | API キー。例: Bearer sk-xxx | Bearer sk-xxx |
パス | task_id | String | はい | キャンセルするタスクの ID。 | a8532587-xxxx-xxxx-xxxx-0c46b17950d1 |
レスポンスパラメーター
フィールド | タイプ | 説明 | 例 |
request_id | String | このリクエストの一意な ID。 | 7574ee8f-xxxx-xxxx-xxxx-11c33ab46e51 |
code | String | 呼び出しが失敗したときに返されるエラーコード。 |
|
message | String | 呼び出しが失敗したときに返されるエラーメッセージ。 |
|
リクエスト例
curl -X POST 'https://dashscope.aliyuncs.com/api/v1/tasks/73205176-xxxx-xxxx-xxxx-16bd5d902219/cancel' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY"レスポンス例
{
"request_id": "45ac7f13-xxxx-xxxx-xxxx-e03c35068d83"
}エラーコード
HTTP ステータスコード | エラーコード | エラーメッセージ | 説明 |
400 | UnsupportedOperation | タスクのキャンセルに失敗しました。タスクが PENDING 状態にあるか確認してください。 | タスクのキャンセルに失敗しました。タスクのステータスが PENDING 状態のタスクのみキャンセルできます。他の状態のタスクはキャンセルできません。 |