Metadata-Version: 2.4
Name: brsxcloud
Version: 0.4.0
Summary: BRSX-Cloud için resmi Python client — chat edilebilir modellere API key ile erişim
Author: BRSX Labs
License: MIT
Project-URL: Homepage, https://cloud.brsxlabs.com
Project-URL: Documentation, https://help.brsxlabs.com
Project-URL: Repository, https://brsxlabs.com
Keywords: brsx,brsx-cloud,ai,chat,api-client
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.8
Description-Content-Type: text/markdown

# brsxcloud

[BRSX-Cloud](https://cloud.brsxlabs.com) için resmi Python client. Chat edilebilir olarak paylaşılmış modellere kendi API key'inle, kod içinden erişmeni sağlar.

## Kurulum

```bash
pip install brsxcloud
```

## API Key Alma

1. [cloud.brsxlabs.com](https://cloud.brsxlabs.com) adresinde giriş yap.
2. Sol menüden **Kullanıcı Paneli**'ni aç.
3. **API Anahtarların** bölümünden **+ Yeni Key** ile bir key oluştur.
4. Key sadece o an gösterilir, hemen kopyala — bir daha görüntülenmez.

Her key için günlük istek limiti vardır (panelde görebilirsin).

## En Hızlı Başlangıç: `api.run()`

Hiç kod yazmadan, tek satırla bir modelle sohbete başla:

```python
from brsxcloud import api

api.run()
```

İlk çalıştırmada model ID'ni ve API key'ini sorar, cevapları çalışma dizinindeki `brsxcloud.json` dosyasına kaydeder. Sonraki her çalıştırmada (aynı klasörden) hiç soru sormadan o dosyadan okur ve doğrudan sohbete geçer. Cevaplar her zaman kelime kelime akar (streaming). Çıkmak için `q` yaz.

## Manuel Kullanım: `Client`

Kendi uygulamana entegre etmek istersen `Client` sınıfını doğrudan kullan:

```python
from brsxcloud import Client

client = Client("brsxk_...")  # kendi API key'in

reply = client.chat(model_id=1, message="Merhaba, nasılsın?")
print(reply)
```

`model_id`'yi, BRSX-Cloud'daki **Modeller** sekmesinde ya da **Kullanıcı Paneli**'ndeki model kartının üzerindeki ID etiketinden öğrenebilirsin (tıklayınca kopyalanır).

## Streaming: Kelime Kelime Akan Cevap

Cevabın tamamı üretilene kadar beklemek yerine, model ürettikçe parça parça almak için `chat_stream()` kullan:

```python
from brsxcloud import Client

client = Client("brsxk_...")

for chunk in client.chat_stream(model_id=1, message="Merhaba, nasılsın?"):
    print(chunk, end="", flush=True)
print()
```

`chat()` ile birebir aynı kota ve erişim kurallarına tabi, sadece cevabı bir generator olarak döner. Model sahibinin `chat.py`'sinde `yield` kullanıp kullanmamasına bağlı olarak gerçek token-token akış ya da tek parça halinde gelebilir — ikisinde de `chat_stream()` çalışır.

## Hata Yönetimi

```python
from brsxcloud import Client, BrsxCloudError

client = Client("brsxk_...")

try:
    reply = client.chat(model_id=1, message="Selam")
    print(reply)
except BrsxCloudError as e:
    print(f"Hata: {e.message} (durum kodu: {e.status_code})")
```

`chat_stream()` ile de aynı şekilde çalışır — hata akış sırasında da fırlatılabilir:

```python
try:
    for chunk in client.chat_stream(model_id=1, message="Selam"):
        print(chunk, end="", flush=True)
    print()
except BrsxCloudError as e:
    print(f"\nHata: {e.message} (durum kodu: {e.status_code})")
```

Olası hatalar: geçersiz/iptal edilmiş API key, günlük kota aşımı, model bulunamadı, model chat için paylaşılmamış, model çalıştırılırken hata.

## Lisans

MIT
