Chuyển đến nội dung chính
Thực hiện poll endpoint này để kiểm tra trạng thái của tác vụ tạo mô hình 3D của bạn.
Nếu phản hồi tạo bao gồm poll_url, hãy ưu tiên chính URL đó khi polling. idtask_id nên được coi là cùng một định danh của tác vụ bất đồng bộ.Nếu tác vụ không còn tồn tại hoặc không còn có thể được phân giải thông qua hợp đồng tác vụ bất đồng bộ công khai, TokenLab trả về async_task_not_found với thông điệp Task not found or no longer available.

Tham số đường dẫn

id
string
bắt buộc
ID của tác vụ tạo mô hình 3D.

Phản hồi

id
string
ID tác vụ.
task_id
string
Bí danh của mã tác vụ bất đồng bộ khi có sẵn.
status
string
Trạng thái tác vụ: pending, processing, completed, hoặc failed.
progress
integer
Giá trị tiến độ tùy chọn. Chỉ được trả về khi có giá trị tiến độ thực; hãy dùng status để xác định khi tác vụ hoàn tất.
model_url
string
URL để tải xuống tệp mô hình 3D (khi hoàn tất).
glb_url
string
URL để tải xuống mô hình định dạng GLB (khi có sẵn).
fbx_url
string
URL để tải xuống mô hình định dạng FBX (khi có sẵn).
error
string
Thông báo lỗi (khi thất bại).
curl "https://api.tokenlab.sh/v1/tasks/ldtask_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
  -H "Authorization: Bearer sk-your-api-key"
import requests
import time

task_id = "ldtask_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"

while True:
    response = requests.get(
        f"https://api.tokenlab.sh/v1/tasks/{task_id}",
        headers={"Authorization": "Bearer sk-your-api-key"}
    )
    result = response.json()

    if result["status"] == "completed":
        print(f"3D Model URL: {result['model_url']}")
        break
    elif result["status"] == "failed":
        print(f"Error: {result['error']}")
        break

    time.sleep(5)  # Poll every 5 seconds
const taskId = 'ldtask_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa';

async function pollFor3DModel() {
  while (true) {
    const response = await fetch(
      `https://api.tokenlab.sh/v1/tasks/${taskId}`,
      { headers: { 'Authorization': 'Bearer sk-your-api-key' } }
    );

    const result = await response.json();

    if (result.status === 'completed') {
      console.log(`3D Model URL: ${result.model_url}`);
      return result.model_url;
    } else if (result.status === 'failed') {
      throw new Error(result.error);
    }

    await new Promise(r => setTimeout(r, 5000));
  }
}
package main

import (
    "encoding/json"
    "fmt"
    "net/http"
    "time"
)

func main() {
    taskID := "ldtask_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"

    for {
        req, _ := http.NewRequest("GET",
            fmt.Sprintf("https://api.tokenlab.sh/v1/tasks/%s", taskID), nil)
        req.Header.Set("Authorization", "Bearer sk-your-api-key")

        client := &http.Client{}
        resp, _ := client.Do(req)

        var result map[string]interface{}
        json.NewDecoder(resp.Body).Decode(&result)
        resp.Body.Close()

        if result["status"] == "completed" {
            fmt.Printf("3D Model URL: %s\n", result["model_url"])
            break
        } else if result["status"] == "failed" {
            fmt.Printf("Error: %s\n", result["error"])
            break
        }

        time.Sleep(5 * time.Second)
    }
}
<?php
$taskId = 'ldtask_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa';

while (true) {
    $ch = curl_init("https://api.tokenlab.sh/v1/tasks/{$taskId}");

    curl_setopt_array($ch, [
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_HTTPHEADER => [
            'Authorization: Bearer sk-your-api-key'
        ]
    ]);

    $response = curl_exec($ch);
    curl_close($ch);

    $result = json_decode($response, true);

    if ($result['status'] === 'completed') {
        echo "3D Model URL: {$result['model_url']}\n";
        break;
    } elseif ($result['status'] === 'failed') {
        echo "Error: {$result['error']}\n";
        break;
    }

    sleep(5);
}
{
  "id": "ldtask_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "task_id": "ldtask_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "poll_url": "/v1/tasks/ldtask_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "status": "completed",
  "model_url": "https://cdn.tripo3d.ai/abc123.glb",
  "glb_url": "https://cdn.tripo3d.ai/abc123.glb",
  "fbx_url": "https://cdn.tripo3d.ai/abc123.fbx"
}