PyPI - Versione

Introduzione

La libreria client per Python offre un’interfaccia facile da usare per interagire con i servizi di Sunra.

Installazione

Per integrare il client nel tuo progetto, installalo usando pip:
pip install sunra-client

Funzionalità

Chiamata degli endpoint

Sunra gestisce le richieste degli endpoint tramite un sistema di code, garantendo affidabilità e scalabilità. Usa il metodo subscribe per inviare una richiesta e attendere il risultato. Esempio:
import sunra_client

result = sunra_client.subscribe(
    "black-forest-labs/flux-kontext-pro/text-to-image",
    arguments={
    	"prompt": 'Una città di mare ispirata allo Studio Ghibli con case colorate, panni stesi e gatti che dormono sui davanzali.',
    	"width": 1024,
    	"height": 768,
    	"output_format": 'jpeg'
    },
    with_logs=True,
    on_enqueue=print,
    on_queue_update=print,
)
print(result)

Gestione delle code

Gestisci le tue richieste con questi metodi:
Invio di una richiesta
Invia una richiesta e recupera il request_id per un uso successivo. Esempio:
import sunra_client

handler = sunra_client.submit(
    "black-forest-labs/flux-kontext-pro/text-to-image",
    arguments={
      "prompt": 'Una città di mare ispirata allo Studio Ghibli con case colorate, panni stesi e gatti che dormono sui davanzali.',
      "width": 1024,
      "height": 768,
      "output_format": 'jpeg'
    },
    webhook_url="https://optional.webhook.url/for/results",
)
request_id = handler.request_id
Controllo dello stato della richiesta
Recupera lo stato di una richiesta. Esempio:
import sunra_client
status = sunra_client.status(request_id, with_logs=True)
Recupero dei risultati della richiesta
Recupera il risultato di una richiesta completata. Esempio:
import sunra_client
result = sunra_client.result(request_id)

Caricamento di file

Carica i file per ottenere URL da utilizzare nelle richieste asincrone. Ciò è essenziale per i modelli che elaborano file, come i convertitori da immagine a video o da parlato a testo.
Dimensione massima del file: 100 MB
Caricamento di un file locale
Puoi caricare facilmente un file dal tuo filesystem locale. Ciò è utile per script o applicazioni che elaborano dati locali.
import sunra_client

# Inizializza il client sincrono
client = sunra_client.SyncClient()

try:
  # Carica un file da un percorso specificato
  file_url = client.upload_file(path="percorso/della/tua/immagine.png")
  print(f"File caricato con successo: {file_url}")
  # Questo URL può ora essere utilizzato con un endpoint del modello
except FileNotFoundError:
  print("Errore: il file non è stato trovato nel percorso specificato.")
except Exception as e:
  print(f"Si è verificato un errore: {e}")
Caricamento di dati in memoria
Puoi anche caricare dati che si trovano in memoria, come il contenuto di un’immagine creata con PIL (Pillow) o un file ricevuto in una richiesta web.
import sunra_client
from PIL import Image
import io

# Inizializza il client sincrono
client = sunra_client.SyncClient()

# Crea un'immagine in memoria, ad esempio 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()

# Carica i dati dell'immagine in memoria utilizzando il metodo `upload`
image_url = client.upload(
    data=image_bytes,
    content_type="image/png"
)
print(f"Immagine caricata con successo: {image_url}")

Supporto

Unisciti alla nostra community per aiuto o discussioni: Siamo qui per aiutarti!