Ciclo de Vida de Trabajos Asíncronos
Todos los trabajos de generación en la API de AetherAI se procesan de forma asíncrona. Después de crear un trabajo, debes hacer polling para verificar su estado.
Creación del Trabajo
Cuando envías una solicitud POST, se devuelve inmediatamente un job_id. El procesamiento de imágenes continúa en segundo plano.
Ejemplo de Solicitud
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"
}'
Ejemplo de Respuesta
{
"job_id": "550e8400-e29b-41d4-a716-446655440000"
}
Polling de Estado del Trabajo
Envía una solicitud GET con el job_id devuelto para verificar el estado del trabajo.
curl -X GET "https://api.aetherforgeai.com/public/v1/job/{job_id}" \
-H "Authorization: Bearer your_api_key_here"
Valores de Estado
| Estado | Descripción |
|---|---|
Pending | El trabajo está en espera o siendo procesado |
Succeed | El trabajo se completó exitosamente |
Failed | Ocurrió un error durante el procesamiento del trabajo |
Ejemplos de Respuesta por Estado
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": []
}
Estrategia de Polling
Recomendamos hacer polling a los siguientes intervalos para verificar la finalización del trabajo:
- Polling inicial: 1 segundo después de la creación del trabajo
- Intervalos posteriores: 2-5 segundos
- Tiempo máximo de polling: 1 minuto (varía según el tipo de trabajo)
Ejemplo en 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', 'Error desconocido')}")
time.sleep(2)
raise TimeoutError("El polling del trabajo ha expirado")
Documentación Relacionada
- Autenticación - Cómo configurar las API keys
- Modelos de Respuesta - Información detallada del esquema de respuesta
- POST /public/v1/generate/image - Endpoint de generación de imágenes
- POST /public/v1/generate/effect/v1 - Endpoint de generación de efectos
- POST /public/v1/generate/effect/v2 - Endpoint GPT de generación de efectos
- POST /public/v1/image-tune/upscale - Endpoint de upscale de imágenes