Metadata-Version: 2.4
Name: kstudiochat
Version: 1.2.2
Summary: K-CHAT — Mesin Chatbot Universal. Anti-halusinasi bawaan. Cukup taruh folder data.
Author: K-CHAT Contributors
License: MIT
Keywords: chatbot,rag,anti-hallucination,nlp,ai,framework,universal
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Requires-Python: >=3.9
Description-Content-Type: text/markdown
Provides-Extra: openai
Requires-Dist: openai>=1.0.0; extra == "openai"
Provides-Extra: deepseek
Requires-Dist: openai>=1.0.0; extra == "deepseek"
Provides-Extra: all
Requires-Dist: openai>=1.0.0; extra == "all"
Provides-Extra: dev
Requires-Dist: pytest>=7.0; extra == "dev"
Requires-Dist: pytest-cov>=4.0; extra == "dev"
Requires-Dist: pytest-asyncio>=0.21; extra == "dev"

# K-CHAT — Mesin Chatbot Universal

**Anti-halusinasi bawaan. Cukup taruh folder data. Jadi chatbot. Tanpa ribet.**

```bash
pip install kstudiochat
kstudiochat init ./bot --template restaurant
kstudiochat chat --data ./bot
```

Tiga perintah. Bot siap. Tanpa perlu API Key (SimulatedLLM built-in).

---

## Mulai Cepat

```bash
# Install
pip install kstudiochat

# Buat bot dari template
kstudiochat init ./bot --template pemerintah

# Chat (pake SimulatedLLM — offline, tanpa API key)
kstudiochat chat --data ./bot

# Atau pake LLM sungguhan
pip install kstudiochat[openai]
# Edit bot/config.json → llm.provider: "openai" | "deepseek" | "mimo"
```

### Template

| Template | Deskripsi |
|----------|-----------|
| `government` | FAQ pelayanan publik, perizinan, pajak |
| `restaurant` | Menu, jam buka, reservasi |
| `healthcare` | Info kesehatan umum, FAQ klinik |

---

## Cara Kerja

Taruh folder. Dapat chatbot. Tidak perlu kode.

```
bot-ku/
├── config.json       # Identitas bot, LLM provider, dll
├── knowledge/        # Dokumen yang dijawab bot
│   ├── faq.md
│   └── harga.md
├── SOUL.md           # Kepribadian (opsional)
├── intents.json      # Kata kunci intent (opsional)
└── refusal.json      # Pesan fallback (opsional)
```

### Pipeline

```
User → Sanitasi → Etika → Intent → Kirim SEMUA data → LLM → Verifikasi → Respon
```

Tiga gate dalam satu prompt:
- **Gate 1** — Salam/terima kasih → LLM tanpa data (balas natural)
- **Gate 2** — Pertanyaan → LLM dengan semua data
- **Gate 3** — Di luar topik → Tolak sopan, arahkan ke topik relevan

### Anti-Halusinasi

- Prompt "jawab hanya dari DATA"
- Deteksi penolakan: tangkap "saya tidak tahu"
- Verifikasi: entity consistency + overlap check
- Etika: blokir konten berbahaya

---

## Provider LLM

| Provider | Model | Konfigurasi |
|----------|-------|-------------|
| **Simulated** (built-in, offline) | `simulated` | Default — tanpa setup |
| **OpenAI** | `gpt-4o-mini` | Set `OPENAI_API_KEY` |
| **DeepSeek** | `deepseek-v4-flash` | Set `DEEPSEEK_API_KEY` |
| **Xiaomi MiMo** | `mimo-v2-flash` | Set `MIMO_API_KEY` |

```json
"llm": {"provider": "mimo", "model": "mimo-v2-flash", "temperature": 0.3}
```

---

## Referensi CLI

| Perintah | Deskripsi |
|----------|-----------|
| `kstudiochat init <path>` | Buat pack baru |
| `kstudiochat init <path> --template <nama>` | Buat dari template |
| `kstudiochat templates` | Lihat template |
| `kstudiochat chat --data <path>` | Chat interaktif |
| `kstudiochat serve --data <path>` | REST API server |
| `kstudiochat validate --data <path>` | Validasi pack |
| `kstudiochat info --data <path>` | Lihat konfigurasi |

---

## API Multi-Tenant (untuk klien)

K-CHAT bisa jalan sebagai API multi-tenant — klien upload data, dapet endpoint chatbot.

### Endpoint

| Method | Path | Deskripsi |
|--------|------|-----------|
| `POST` | `/api/packs` | Upload zip → dapet API key |
| `POST` | `/api/chat` | Chat dengan bot |
| `DELETE` | `/api/packs/:id` | Hapus pack |
| `GET` | `/api/widget.js?key=xxx` | Script widget |

### Cara embed (hosting manapun)

```html
<div id="kchat-widget"></div>
<script src="https://url-api-anda/api/widget.js?key=kc_xxx"></script>
```

Contoh lengkap: lihat `example-widget.html`

### Langsung pake API

```bash
curl -X POST https://url-api-anda/api/chat \
  -H "Authorization: Bearer kc_xxx" \
  -H "Content-Type: application/json" \
  -d '{"message": "Berapa jam buka?"}'
```

---

## Ekstensi

Diaktifkan via `config.json`:

```json
"extensions": {
  "conversational_memory": {"enabled": true},
  "predictive": {"enabled": true}
}
```

| Ekstensi | Fungsi |
|----------|--------|
| `conversational_memory` | Catat preferensi user, mood |
| `multimodal` | Deteksi emosi lebih akurat |
| `predictive` | Deteksi interaksi berisiko |
| `live` | Data real-time (harga, antrian) |
| `adaptive` | Pantau efektivitas strategi |
| `rlhf` | Kumpulkan feedback |
| `voice` | STT → chat → TTS |

---

## Kenapa K-CHAT?

| Dibanding... | K-CHAT kasih lo |
|--------------|-----------------|
| LangChain | Cukup taruh folder, tanpa kode |
| Bikin dari nol | Anti-halusinasi siap pakai |
| SaaS chatbot ($30+/bln) | Sekali deploy, gratis seterusnya |
| Pipeline ML | Verifikasi deterministik, teraudit |

## Lisensi

MIT
