> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sunra.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Python

[![PyPI - Version](https://img.shields.io/pypi/v/sunra_client)](https://pypi.org/project/sunra_client)

### 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 :

```bash theme={null}
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 :**

```python theme={null}
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 :**

```python theme={null}
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 :**

```python theme={null}
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 :**

```python theme={null}
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.

<Note>Taille maximale du fichier : 100 Mo</Note>

##### 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.

```python theme={null}
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.

<CodeGroup>
  ```python Image PIL theme={null}
  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}")
  ```

  ```python Octets bruts theme={null}
  import sunra_client

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

  # Quelques octets bruts que vous pourriez avoir en lisant un fichier ou une requête web
  raw_data = b"contenu du fichier ici"

  # Télécharger les octets bruts
  data_url = client.upload(
      data=raw_data,
      content_type="application/octet-stream"
  )
  print(f"Données téléchargées avec succès : {data_url}")
  ```
</CodeGroup>

### Support

Rejoignez notre communauté pour obtenir de l'aide ou participer à des discussions :

* **Communauté Discord** : [Rejoignez-nous](https://discord.gg/897qCzvCcU)
* **Dépôt GitHub** : [Visitez ici](https://github.com/sunra-ai/sunra-clients)

Nous sommes là pour vous aider !
