Siklus Hidup Pekerjaan Asinkron
Semua pekerjaan pembuatan AetherAI API diproses secara asinkron. Setelah membuat pekerjaan, Anda harus memeriksa statusnya melalui polling.
Membuat Pekerjaan
Saat mengirim permintaan POST, job_id akan segera dikembalikan. Pemrosesan gambar berlangsung di latar belakang.
Contoh Permintaan
curl -X POST "https://api.aetherforgeai.com/public/v1/generate/image" \
-H "Authorization: Bearer your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"prompt": "A beautiful sunset over mountains",
"ai_model": "GPT Image 1.5"
}'
Contoh Respons
{
"job_id": "550e8400-e29b-41d4-a716-446655440000"
}
Polling Status Pekerjaan
Kirim permintaan GET dengan job_id yang dikembalikan untuk memeriksa status pekerjaan.
curl -X GET "https://api.aetherforgeai.com/public/v1/job/{job_id}" \
-H "Authorization: Bearer your_api_key_here"
Nilai Status
| Status | Deskripsi |
|---|---|
Pending | Pekerjaan sedang menunggu atau diproses |
Succeed | Pekerjaan berhasil diselesaikan |
Failed | Terjadi kesalahan saat memproses pekerjaan |
Contoh Respons Berdasarkan Status
Pending
{
"job_id": "550e8400-e29b-41d4-a716-446655440000",
"status": "Pending",
"image_urls": []
}
Succeed
{
"job_id": "550e8400-e29b-41d4-a716-446655440000",
"status": "Succeed",
"image_urls": [
"https://cdn.aetherforgeai.com/images/abc123.png",
"https://cdn.aetherforgeai.com/images/abc123.gif"
]
}
Failed
{
"job_id": "550e8400-e29b-41d4-a716-446655440000",
"status": "Failed",
"image_urls": []
}
Strategi Polling
Kami merekomendasikan polling dengan interval berikut untuk memeriksa penyelesaian pekerjaan.
- Polling awal: 1 detik setelah pembuatan pekerjaan
- Interval berikutnya: 2-5 detik
- Waktu polling maksimum: 1 menit (tergantung pada jenis pekerjaan)
Contoh Python
import time
import requests
def poll_job_status(job_id, api_key, max_attempts=60):
headers = {"Authorization": f"Bearer {api_key}"}
for attempt in range(max_attempts):
response = requests.get(
f"https://api.aetherforgeai.com/public/v1/job/{job_id}",
headers=headers
)
data = response.json()
if data["status"] == "Succeed":
return data["image_urls"]
elif data["status"] == "Failed":
raise Exception(f"Job failed: {data.get('error_message', 'Unknown error')}")
time.sleep(2)
raise TimeoutError("Job polling timed out")
Dokumen Terkait
- Autentikasi - Cara mengatur kunci API
- Model Respons - Informasi detail skema respons
- POST /public/v1/generate/image - Endpoint pembuatan gambar
- POST /public/v1/generate/effect/v1 - Endpoint pembuatan efek
- POST /public/v1/generate/effect/v2 - Endpoint GPT pembuatan efek
- POST /public/v1/image-tune/upscale - Endpoint upskala gambar