Saltar al contenido principal

Parámetros de ruta

task_id
string
requerido
El ID de la tarea devuelto por la solicitud inicial de generación de imágenes.
Si la respuesta de creación incluyó poll_url, prefiera llamar a esa URL exacta para el sondeo (polling). Algunas tareas de imagen pueden mostrar un poll_url bajo /v1/tasks/{id} en lugar de la ruta de estado específica de la imagen.

Respuesta

created
integer
Marca de tiempo Unix de creación.
task_id
string
El identificador de la tarea.
status
string
Estado de la tarea: pending, processing, completed o failed.
data
array
Matriz de imágenes generadas (se completa cuando el status es completed).Cada objeto contiene:
  • url (string): URL de la imagen generada
  • revised_prompt (string): El prompt utilizado para la generación
error
string
Mensaje de error (solo presente cuando el status es failed).
curl "https://api.lemondata.cc/v1/images/generations/img_abc123def456" \
  -H "Authorization: Bearer sk-your-api-key"
{
  "created": 1706000000,
  "task_id": "img_abc123def456",
  "status": "pending",
  "data": [
    {
      "url": "",
      "revised_prompt": "a beautiful sunset over mountains"
    }
  ]
}

Mejores prácticas de sondeo (Polling)

Intervalo de sondeo recomendado: 3-5 segundos. La mayoría de las tareas de generación de imágenes se completan en un plazo de 30 a 120 segundos, dependiendo del modelo y de la ruta del proveedor asignada.
import requests
import time

def poll_image_task(task_id, api_key, max_wait=300, interval=3):
    """Poll for image generation result with timeout."""
    url = f"https://api.lemondata.cc/v1/images/generations/{task_id}"
    headers = {"Authorization": f"Bearer {api_key}"}

    start_time = time.time()
    while time.time() - start_time < max_wait:
        response = requests.get(url, headers=headers)
        data = response.json()

        if data["status"] == "completed":
            return data["data"][0]["url"]
        elif data["status"] == "failed":
            raise Exception(data.get("error", "Generation failed"))

        time.sleep(interval)

    raise TimeoutError(f"Task {task_id} did not complete within {max_wait}s")

# Usage
image_url = poll_image_task("img_abc123def456", "sk-your-api-key")
print(f"Generated image: {image_url}")