PyPI - Version

Introduction

La bibliothèque cliente pour Python offre une interface simple à utiliser pour interagir avec les services de Sunra.

Installation

Pour intégrer le client dans votre projet, installez-le en utilisant pip :
pip install sunra-client

Fonctionnalités

Appeler des points de terminaison

Sunra gère les requêtes de point de terminaison via un système de file d’attente, garantissant fiabilité et évolutivité. Utilisez la méthode subscribe pour soumettre une requête et attendre le résultat. Exemple :
import sunra_client

result = sunra_client.subscribe(
    "black-forest-labs/flux-kontext-pro/text-to-image",
    arguments={
        "prompt": 'Une ville balnéaire inspirée de Studio Ghibli avec des maisons colorées, du linge qui sèche au vent et des chats qui dorment sur les rebords de fenêtre.',
        "width": 1024,
        "height": 768,
        "output_format": 'jpeg'
    },
    with_logs=True,
    on_enqueue=print,
    on_queue_update=print,
)
print(result)

Gestion de la file d’attente

Gérez vos requêtes avec ces méthodes :
Soumettre une requête
Soumettez une requête et récupérez le request_id pour une utilisation ultérieure. Exemple :
import sunra_client

handler = sunra_client.submit(
    "black-forest-labs/flux-kontext-pro/text-to-image",
    arguments={
      "prompt": 'Une ville balnéaire inspirée de Studio Ghibli avec des maisons colorées, du linge qui sèche au vent et des chats qui dorment sur les rebords de fenêtre.',
      "width": 1024,
      "height": 768,
      "output_format": 'jpeg'
    },
    webhook_url="https://optional.webhook.url/for/results",
)
request_id = handler.request_id
Vérifier le statut de la requête
Récupérez le statut d’une requête. Exemple :
import sunra_client
status = sunra_client.status(request_id, with_logs=True)
Récupérer les résultats de la requête
Récupérez le résultat d’une requête terminée. Exemple :
import sunra_client
result = sunra_client.result(request_id)

Téléchargements de fichiers

Téléchargez des fichiers pour obtenir des URL à utiliser dans des requêtes asynchrones. Ceci est essentiel pour les modèles qui traitent des fichiers, tels que les convertisseurs d’image en vidéo ou de parole en texte.
Taille maximale du fichier : 100 Mo
Télécharger un fichier local
Vous pouvez facilement télécharger un fichier depuis votre système de fichiers local. Ceci est utile pour les scripts ou les applications qui traitent des données locales.
import sunra_client

# Initialiser le client synchrone
client = sunra_client.SyncClient()

try:
  # Télécharger un fichier depuis un chemin donné
  file_url = client.upload_file(path="path/to/your/image.png")
  print(f"Fichier téléchargé avec succès : {file_url}")
  # Cette URL peut maintenant être utilisée avec un point de terminaison de modèle
except FileNotFoundError:
  print("Erreur : Le fichier n'a pas été trouvé au chemin spécifié.")
except Exception as e:
  print(f"Une erreur est survenue : {e}")
Télécharger des données en mémoire
Vous pouvez également télécharger des données qui sont conservées en mémoire, telles que le contenu d’une image créée avec PIL (Pillow) ou un fichier reçu dans une requête web.
import sunra_client
from PIL import Image
import io

# Initialiser le client synchrone
client = sunra_client.SyncClient()

# Créer une image en mémoire, par exemple avec Pillow
image = Image.new("RGB", (600, 400), color = 'red')
byte_arr = io.BytesIO()
image.save(byte_arr, format='PNG')
image_bytes = byte_arr.getvalue()

# Télécharger les données de l'image en mémoire en utilisant la méthode `upload`
image_url = client.upload(
    data=image_bytes,
    content_type="image/png"
)
print(f"Image téléchargée avec succès : {image_url}")

Support

Rejoignez notre communauté pour obtenir de l’aide ou participer à des discussions : Nous sommes là pour vous aider !