> ## 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 - Versi](https://img.shields.io/pypi/v/sunra_client)](https://pypi.org/project/sunra_client)

### Pendahuluan

Pustaka klien untuk Python menawarkan antarmuka yang mudah digunakan untuk berinteraksi dengan layanan Sunra.

### Instalasi

Untuk mengintegrasikan klien ke dalam proyek Anda, instal menggunakan pip:

```bash theme={null}
pip install sunra-client
```

### Fitur

#### Memanggil Titik Akhir

Sunra mengelola permintaan titik akhir melalui sistem antrian, memastikan keandalan dan skalabilitas. Gunakan metode `subscribe` untuk mengirim permintaan dan menunggu hasilnya.

**Contoh:**

```python theme={null}
import sunra_client

result = sunra_client.subscribe(
    "black-forest-labs/flux-kontext-pro/text-to-image",
    arguments={
    	"prompt": 'Kota tepi laut yang terinspirasi dari Studio Ghibli dengan rumah-rumah berwarna-warni, cucian berkibar, dan kucing tidur di ambang jendela.',
    	"width": 1024,
    	"height": 768,
    	"output_format": 'jpeg'
    },
    with_logs=True,
    on_enqueue=print,
    on_queue_update=print,
)
print(result)
```

#### Manajemen Antrian

Kelola permintaan Anda dengan metode ini:

##### Mengirim Permintaan

Kirim permintaan dan dapatkan `request_id` untuk penggunaan nanti.

**Contoh:**

```python theme={null}
import sunra_client

handler = sunra_client.submit(
    "black-forest-labs/flux-kontext-pro/text-to-image",
    arguments={
      "prompt": 'Kota tepi laut yang terinspirasi dari Studio Ghibli dengan rumah-rumah berwarna-warni, cucian berkibar, dan kucing tidur di ambang jendela.',
      "width": 1024,
      "height": 768,
      "output_format": 'jpeg'
    },
    webhook_url="https://optional.webhook.url/for/results",
)
request_id = handler.request_id
```

##### Memeriksa Status Permintaan

Ambil status permintaan.

**Contoh:**

```python theme={null}
import sunra_client
status = sunra_client.status(request_id, with_logs=True)
```

##### Mengambil Hasil Permintaan

Ambil hasil dari permintaan yang sudah selesai.

**Contoh:**

```python theme={null}
import sunra_client
result = sunra_client.result(request_id)
```

#### Unggahan File

Unggah file untuk mendapatkan URL untuk digunakan dalam permintaan asinkron. Ini penting untuk model yang memproses file, seperti konverter gambar-ke-video atau ucapan-ke-teks.

<Note>Ukuran file maksimum: 100MB</Note>

##### Mengunggah File Lokal

Anda dapat dengan mudah mengunggah file dari sistem file lokal Anda. Ini berguna untuk skrip atau aplikasi yang memproses data lokal.

```python theme={null}
import sunra_client

# Inisialisasi klien sinkron
client = sunra_client.SyncClient()

try:
  # Unggah file dari path yang diberikan
  file_url = client.upload_file(path="path/to/your/image.png")
  print(f"File berhasil diunggah: {file_url}")
  # URL ini sekarang dapat digunakan dengan titik akhir model
except FileNotFoundError:
  print("Error: File tidak ditemukan di path yang ditentukan.")
except Exception as e:
  print(f"Terjadi kesalahan: {e}")
```

##### Mengunggah Data Dalam Memori

Anda juga dapat mengunggah data yang ada di memori, seperti konten gambar yang dibuat dengan PIL (Pillow) atau file yang diterima dalam permintaan web.

<CodeGroup>
  ```python Gambar PIL theme={null}
  import sunra_client
  from PIL import Image
  import io

  # Inisialisasi klien sinkron
  client = sunra_client.SyncClient()

  # Buat gambar di memori, misalnya dengan Pillow
  image = Image.new("RGB", (600, 400), color = 'red')
  byte_arr = io.BytesIO()
  image.save(byte_arr, format='PNG')
  image_bytes = byte_arr.getvalue()

  # Unggah data gambar dalam memori menggunakan metode `upload`
  image_url = client.upload(
      data=image_bytes,
      content_type="image/png"
  )
  print(f"Gambar berhasil diunggah: {image_url}")
  ```

  ```python Byte Mentah theme={null}
  import sunra_client

  # Inisialisasi klien sinkron
  client = sunra_client.SyncClient()

  # Beberapa byte mentah yang mungkin Anda miliki dari membaca file atau permintaan web
  raw_data = b"beberapa konten file di sini"

  # Unggah byte mentah
  data_url = client.upload(
      data=raw_data,
      content_type="application/octet-stream"
  )
  print(f"Data berhasil diunggah: {data_url}")
  ```
</CodeGroup>

### Dukungan

Bergabunglah dengan komunitas kami untuk bantuan atau diskusi:

* **Komunitas Discord**: [Bergabunglah dengan kami](https://discord.gg/897qCzvCcU)
* **Repositori GitHub**: [Kunjungi di sini](https://github.com/sunra-ai/sunra-clients)

Kami di sini untuk membantu Anda!
