curl --request GET \
--url https://api.aiid.edu.kg/api/v1/tasks/{task_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.aiid.edu.kg/api/v1/tasks/{task_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.aiid.edu.kg/api/v1/tasks/{task_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.aiid.edu.kg/api/v1/tasks/{task_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.aiid.edu.kg/api/v1/tasks/{task_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.aiid.edu.kg/api/v1/tasks/{task_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.aiid.edu.kg/api/v1/tasks/{task_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"output": {
"task_id": "<string>",
"task_status": "PENDING",
"submit_time": "<string>",
"scheduled_time": "<string>",
"end_time": "<string>",
"video_url": "<string>",
"code": "<string>",
"message": "<string>"
},
"usage": {
"duration": 123,
"SR": 123,
"video_count": 123
},
"request_id": "<string>"
}Запросить задачу (HappyHorse и Wan)
Эта серия поддерживает формат генерации видео OpenAI (подробности см. по ссылке совместимые форматы видео生成Sora ).
HappyHorse и интерфейс генерации видео Wan: публичные пути соответствуют официальному протоколу DashScope.
HappyHorse поддерживает happyhorse-1.0、happyhorse-1.0-i2v、happyhorse-1.0-t2v、happyhorse-1.0-r2v、happyhorse-1.0-video-edit; Wan поддерживает wan-3.0、wan-3.0-480p、wan-3.0-1080p. Среди них happyhorse-1.0 — агрегирующая модель, для различения t2v、i2v、r2v、video_edit требуется mode. Три модели Wan имеют фиксированные разрешения 720P, 480P и 1080P соответственно и поддерживают длительность 2–30 секунд, а также до 10 изображений, 5 видео и 5 аудиореференсов.
Публичный интерфейс сохраняет официальный формат endpoint; каналоспецифичный префикс используется только для внутреннего формирования при запросах шлюза к конкретному upstream-каналу. Клиенту не нужно явно передавать X-DashScope-Async — это обрабатывается шлюзом или адаптером официального канала.
Дополнены публичный шаблон запроса, структура запроса статуса задачи и рекомендуемый шаблон проверки для форматов генерации видео HappyHorse и Wan; публичные пути сохраняют официальный формат конечных точек DashScope.
Поддерживаемые модели: happyhorse-1.0, happyhorse-1.0-t2v, happyhorse-1.0-i2v, happyhorse-1.0-r2v, happyhorse-1.0-video-edit, wan-3.0, wan-3.0-480p, wan-3.0-1080p
Унифицированные поля запроса:
model(string, обязательное): внешнее имя модели HappyHorse или Wan. Wan поддерживаетwan-3.0、wan-3.0-480p、wan-3.0-1080p; агрегирующая модель HappyHorsehappyhorse-1.0должна использоваться вместе сmode.mode(string, необязательно): режим агрегированной модели; типичные значения:t2v、i2v、r2v、video_edit. Для фиксированной подмодели можно не передавать.input.prompt(string, обязательно): prompt для генерации или редактирования видео.input.media(array[object], необязательное): мультимедийный ввод. Поддерживаютсяfirst_frame、last_frame、reference_image、reference_video、reference_audio; Wan поддерживает не более 10 изображений, 5 видео и 5 аудио.parameters.duration(integer, необязательно): время генерации в секундах.parameters.resolution(string, необязательное): выходное разрешение. Три модели Wan имеют фиксированные720P、480P、1080Pсоответственно; типичные значения для HappyHorse —720P、1080P.parameters.ratio(string, необязательно): соотношение сторон вывода; часто используется для text-to-video и reference-to-video.parameters.watermark(boolean, необязательно): добавлять ли водяной знак.parameters.seed(integer, необязательно): случайное зерно.
Основные различия моделей/режимов:
HappyHorse 聚合模型: поддерживаемая модель happyhorse-1.0; в агрегированной модели конечная модель определяется через mode.HappyHorse 文生视频: поддерживаемая модель happyhorse-1.0-t2v; официальный формат text-to-video.HappyHorse 首帧图生视频: поддерживаемая модель happyhorse-1.0-i2v; официальный формат image-to-video по первому кадру.HappyHorse 参考生视频: поддерживаемая модель happyhorse-1.0-r2v; официальный формат multi-reference image-to-video.HappyHorse 视频编辑: поддерживаемая модель happyhorse-1.0-video-edit; официальный формат редактирования видео.Wan 3.0 720P: поддерживаемая модель wan-3.0; официальная форматная мультимодальная генерация видео по референсу для Wan 3.0.Wan 3.0 480P: поддерживаемая модель wan-3.0-480p; вызов в официальном формате Wan 3.0 с фиксированным 480P.Wan 3.0 1080P: поддерживаемая модель wan-3.0-1080p; вызов в официальном формате Wan 3.0 с фиксированным 1080P.
curl --request GET \
--url https://api.aiid.edu.kg/api/v1/tasks/{task_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.aiid.edu.kg/api/v1/tasks/{task_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.aiid.edu.kg/api/v1/tasks/{task_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.aiid.edu.kg/api/v1/tasks/{task_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.aiid.edu.kg/api/v1/tasks/{task_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.aiid.edu.kg/api/v1/tasks/{task_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.aiid.edu.kg/api/v1/tasks/{task_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"output": {
"task_id": "<string>",
"task_status": "PENDING",
"submit_time": "<string>",
"scheduled_time": "<string>",
"end_time": "<string>",
"video_url": "<string>",
"code": "<string>",
"message": "<string>"
},
"usage": {
"duration": 123,
"SR": 123,
"video_count": 123
},
"request_id": "<string>"
}Авторизации
Используйте проверку подлинности Bearer Token.
Формат: Authorization: Bearer sk-xxxxxx
Параметры пути
ID задачи, полученный из ответа на создание задачи id.
Ответ
Успешный запрос
Hide child attributes
Hide child attributes
ID задачи, возвращаемый при создании задачи, используется для ее запроса.
Статус задачи, распространенные значения PENDING、RUNNING、SUCCEEDED、FAILED。
PENDING, RUNNING, SUCCEEDED, FAILED, UNKNOWN URL созданного видео после успешного выполнения задачи.
