Lightweight local-first AI router with javaxFlash and DeepSeek.
Project description
javaxFlash
javaxFlash adalah library Python kecil untuk mengakses beberapa endpoint AI lewat satu client API yang sederhana.
Tujuan library ini:
- memberi satu entry point yang ringan:
FlashClient - memudahkan pindah antara provider
flashdandeepseek - mendukung auto routing atau provider manual
- mengembalikan format respons yang konsisten
Cocok untuk apa
- pertanyaan cepat dengan provider default
flash - prompt reasoning yang lebih berat dengan
deepseek - eksperimen lokal tanpa harus menulis wrapper request berulang-ulang
Install
Install package inti:
python -m pip install -r requirements.txt
python -m pip install -e .
Kalau ingin menjalankan contoh interaktif di folder examples, install juga rich:
python -m pip install rich
Quick Start
Contoh paling sederhana:
from javaxFlash import FlashClient
client = FlashClient()
response = client.flash("Jelaskan konsep Q-learning dengan sederhana")
print(response.text)
print(response.provider)
print(response.model_used)
Alias ask() juga tersedia:
response = client.ask("Apa itu Python?")
print(response.text)
Cara Kerja Singkat
Secara default, FlashClient akan:
- menerima prompt dari user
- memilih provider berdasarkan mode atau auto routing
- mengirim request ke endpoint provider
- mengembalikan hasil dalam bentuk
FlashResponse
Kalau provider utama gagal dan fallback aktif, client akan mencoba provider cadangan.
Memilih Provider
1. Auto routing
Auto routing cocok kalau kamu ingin library memilih provider secara otomatis.
response = client.flash("Bandingkan REST dan GraphQL untuk project kecil", auto_route=True)
2. Fast mode
Gunakan saat ingin jawaban cepat.
response = client.flash("Apa itu Python?", mode="fast")
3. Reasoning mode
Gunakan saat prompt butuh analisis lebih dalam.
response = client.flash("Kenapa algoritma ini gagal dan bagaimana cara debug-nya?", mode="reasoning")
4. Paksa provider tertentu
Kalau kamu sudah tahu provider mana yang ingin dipakai:
response = client.flash("Gunakan provider cepat", provider="flash")
response = client.flash("Analisis bug ini", provider="deepseek")
Konfigurasi Dasar
Kalau ingin mengubah perilaku default client:
from javaxFlash import FlashClient, FlashConfig
config = FlashConfig(
timeout=30.0,
auto_route=True,
fallback_enabled=True,
default_system_instruction="You are javaxFlash, a concise and practical AI assistant.",
)
client = FlashClient(config=config)
Field config yang paling sering dipakai:
timeout: timeout request HTTPauto_route: aktif/nonaktif routing otomatisfallback_enabled: coba provider cadangan saat request gagaldefault_system_instruction: system prompt defaultdefault_gemini_model: nama model untuk providerflashdeepseek_temperature: temperature default untuk DeepSeekdebug: tampilkan log sederhana saat developmentrequest_logging: aktifkan logging request
Custom System Instruction
Kamu bisa memberi system instruction per request:
response = client.flash(
"Bantu saya menyusun rencana automation",
system_instruction="You are an AI assistant focused on backend automation and practical implementation.",
)
Atau menjadikannya default lewat FlashConfig.
Response Object
Setiap request mengembalikan FlashResponse dengan struktur yang konsisten:
response.text
response.model_used
response.provider
response.raw
response.route_reason
response.error
Penjelasan singkat:
text: isi jawaban utamamodel_used: nama model yang dilaporkan providerprovider: provider yang benar-benar dipakairaw: payload JSON mentah dari endpointroute_reason: alasan routing yang dipilih clienterror: pesan error jika request gagal
Contoh:
response = client.flash("Jelaskan recursion")
if response.error:
print("Error:", response.error)
else:
print(response.text)
print("Provider:", response.provider)
print("Reason:", response.route_reason)
Parameter yang Bisa Dipakai Saat Request
API utama:
client.flash(
prompt,
mode=None,
provider=None,
auto_route=None,
system_instruction=None,
fallback_provider=None,
**kwargs,
)
Parameter penting:
prompt: isi permintaan usermode:fastataureasoningprovider: paksa provider tertentuauto_route: override perilaku routing defaultsystem_instruction: system instruction per requestfallback_provider: provider cadangan jika request utama gagal**kwargs: parameter tambahan yang diteruskan ke provider
Contoh kwargs:
response = client.flash(
"Jelaskan greedy algorithm",
provider="deepseek",
temperature=0.2,
)
Menjalankan Contoh Interaktif
Contoh interaktif ada di examples/basic_usage.py.
Jalankan dengan:
python examples/basic_usage.py
atau:
python -m examples.basic_usage
Struktur Project
File yang paling penting:
javaxFlash/client.py: entry point utama libraryjavaxFlash/config.py: konfigurasi clientjavaxFlash/router.py: logika pemilihan providerjavaxFlash/providers.py: implementasi request ke providerjavaxFlash/models.py: model respons
Catatan Penting
flashdi library ini adalah nama provider cepat yang dibacking oleh endpoint Gemini Lite.deepseekdipakai untuk prompt yang lebih berat atau mode reasoning.- Output akhir tetap bergantung pada endpoint upstream yang dipanggil library ini.
- Library ini sekarang stateless; tidak ada fitur memory atau penyimpanan percakapan lokal.
Minimal Example
Kalau ingin contoh paling ringkas untuk dipakai di project lain:
from javaxFlash import FlashClient
client = FlashClient()
response = client.flash("Buat ringkasan tentang REST API", mode="fast")
if response.error:
raise RuntimeError(response.error)
print(response.text)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file javaxflash-2.1.0.tar.gz.
File metadata
- Download URL: javaxflash-2.1.0.tar.gz
- Upload date:
- Size: 9.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
20cc9a03eff8af75678f185da4a1131b4a17cc91c463c39c04a94c46b2847e9b
|
|
| MD5 |
66adfa133c19d264421f256bcfc03c03
|
|
| BLAKE2b-256 |
5e8f70876a10c220ba4fbad1a52b9c8c71b65fa927e6ca10ebfd3ff0071d0562
|
File details
Details for the file javaxflash-2.1.0-py3-none-any.whl.
File metadata
- Download URL: javaxflash-2.1.0-py3-none-any.whl
- Upload date:
- Size: 8.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9234031416609c69c34d5de40d8e65bf43e0f4e71de6e6566d1492e99c330079
|
|
| MD5 |
bdcdbbc76768a5bddc078981f525edf5
|
|
| BLAKE2b-256 |
22d6bfab37b900f904c045daf5c34a94a4f524b3f41d6c0375841c48c984cb1e
|