Saltar al contenido principal

Parámetros de ruta

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.If the task no longer exists or can no longer be resolved through the public async-task contract, LemonData returns async_task_not_found with the message Task not found or no longer available.

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/tasks/ldtask_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
  -H "Authorization: Bearer sk-your-api-key"
{
  "created": 1706000000,
  "id": "ldtask_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "task_id": "ldtask_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "poll_url": "/v1/tasks/ldtask_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "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/tasks/{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("ldtask_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "sk-your-api-key")
print(f"Generated image: {image_url}")