PyPI - Version

Introducción

La biblioteca cliente para Python ofrece una interfaz fácil de usar para interactuar con los servicios de Sunra.

Instalación

Para integrar el cliente en tu proyecto, instálalo usando pip:
pip install sunra-client

Características

Llamando a los Endpoints

Sunra gestiona las solicitudes de los endpoints a través de un sistema de colas, lo que garantiza la fiabilidad y la escalabilidad. Usa el método subscribe para enviar una solicitud y esperar el resultado. Ejemplo:
import sunra_client

result = sunra_client.subscribe(
    "black-forest-labs/flux-kontext-pro/text-to-image",
    arguments={
        "prompt": 'Un pueblo costero inspirado en Studio Ghibli con casas de colores, ropa tendida y gatos durmiendo en los alféizares de las ventanas.',
        "width": 1024,
        "height": 768,
        "output_format": 'jpeg'
    },
    with_logs=True,
    on_enqueue=print,
    on_queue_update=print,
)
print(result)

Gestión de la Cola

Gestiona tus solicitudes con estos métodos:
Enviando una Solicitud
Envía una solicitud y recupera el request_id para usarlo más tarde. Ejemplo:
import sunra_client

handler = sunra_client.submit(
    "black-forest-labs/flux-kontext-pro/text-to-image",
    arguments={
      "prompt": 'Un pueblo costero inspirado en Studio Ghibli con casas de colores, ropa tendida y gatos durmiendo en los alféizares de las ventanas.',
      "width": 1024,
      "height": 768,
      "output_format": 'jpeg'
    },
    webhook_url="https://optional.webhook.url/for/results",
)
request_id = handler.request_id
Comprobando el Estado de la Solicitud
Recupera el estado de una solicitud. Ejemplo:
import sunra_client
status = sunra_client.status(request_id, with_logs=True)
Recuperando los Resultados de la Solicitud
Obtén el resultado de una solicitud completada. Ejemplo:
import sunra_client
result = sunra_client.result(request_id)

Carga de Archivos

Sube archivos para obtener URLs para usar en solicitudes asíncronas. Esto es esencial para los modelos que procesan archivos, como los convertidores de imagen a video o de voz a texto.
Tamaño máximo de archivo: 100MB
Subiendo un Archivo Local
Puedes subir fácilmente un archivo desde tu sistema de archivos local. Esto es útil para scripts o aplicaciones que procesan datos locales.
import sunra_client

# Inicializa el cliente síncrono
client = sunra_client.SyncClient()

try:
  # Sube un archivo desde una ruta dada
  file_url = client.upload_file(path="path/to/your/image.png")
  print(f"Archivo subido con éxito: {file_url}")
  # Esta URL ahora se puede usar con un endpoint de modelo
except FileNotFoundError:
  print("Error: No se encontró el archivo en la ruta especificada.")
except Exception as e:
  print(f"Ocurrió un error: {e}")
Subiendo Datos en Memoria
También puedes subir datos que se encuentran en la memoria, como el contenido de una imagen creada con PIL (Pillow) o un archivo recibido en una solicitud web.
import sunra_client
from PIL import Image
import io

# Inicializa el cliente síncrono
client = sunra_client.SyncClient()

# Crea una imagen en memoria, por ejemplo con Pillow
image = Image.new("RGB", (600, 400), color = 'red')
byte_arr = io.BytesIO()
image.save(byte_arr, format='PNG')
image_bytes = byte_arr.getvalue()

# Sube los datos de la imagen en memoria usando el método `upload`
image_url = client.upload(
    data=image_bytes,
    content_type="image/png"
)
print(f"Imagen subida con éxito: {image_url}")

Soporte

Únete a nuestra comunidad para obtener ayuda o participar en debates: ¡Estamos aquí para ayudarte!