Spaces:
Running
Running
title: AI Character Chat | |
emoji: 🔥 | |
colorFrom: green | |
colorTo: green | |
sdk: docker | |
pinned: false | |
# Character AI Chat - CPU Optimized Backend | |
🎭 **Advanced Character AI Chat System** dengan dukungan 11 model AI yang dioptimalkan untuk CPU, dilengkapi dengan sistem roleplay canggih, memori percakapan, dan kecerdasan emosional. | |
## ✨ Fitur Utama | |
### 🧠 Multi-Model AI Support | |
- **11 Model AI** yang dioptimalkan untuk CPU | |
- Mendukung berbagai jenis task: Text Generation, Classification, Text2Text | |
- Auto-loading dengan lazy initialization untuk performa optimal | |
### 🎭 Advanced Roleplay System | |
- **Conversation Memory** - Mengingat percakapan sebelumnya | |
- **Dynamic Personality** - Karakter yang berkembang seiring waktu | |
- **Emotional Intelligence** - Mendeteksi dan merespons emosi user | |
- **Character Development** - Belajar preferensi dan adaptasi gaya bicara | |
- **Roleplay Actions** - Aksi fisik dan emosional yang kontekstual | |
- **Relationship Tracking** - Level hubungan yang berkembang | |
### 🌟 Enhanced Features | |
- **Situational Context** - Respons disesuaikan dengan situasi dan lokasi | |
- **Indonesian Language Optimized** - Dioptimalkan untuk bahasa Indonesia | |
- **Session Management** - Multiple session dengan memori terpisah | |
- **Real-time Processing** - Response time tracking | |
- **Fallback System** - Sistem backup untuk handling error | |
## 🚀 Model yang Didukung | |
### ⚡ Priority 1 (Ultra Fast) | |
- **DistilGPT-2** - Text generation ringan dan cepat | |
- **GPT-2 Tinny** - Versi kompak GPT-2 | |
- **BERT Tinny** - Text classification ringan | |
- **DistilBERT** - Classification model yang efisien | |
### 🔥 Priority 2 (Balanced) | |
- **ALBERT Base** - Advanced text understanding | |
- **ELECTRA Small** - Efficient pre-training model | |
- **T5 Small** - Text-to-text generation | |
- **GPT-2 Standard** - Standard GPT-2 model | |
### 💪 Priority 3 (Advanced) | |
- **Tinny Llama** - Compact large language model | |
- **Pythia** - Research-grade model | |
- **GPT-Neo** - Open-source GPT alternative | |
## 📋 Persyaratan Sistem | |
### Software Requirements | |
``` | |
Python 3.8+ | |
FastAPI | |
Transformers | |
PyTorch (CPU version) | |
Uvicorn | |
``` | |
### Hardware Requirements | |
- **CPU**: Multi-core processor (minimum 4 cores recommended) | |
- **RAM**: 8GB minimum, 16GB recommended | |
- **Storage**: 10GB free space untuk model cache | |
- **Platform**: Windows, macOS, Linux | |
## 🛠️ Instalasi | |
### 1. Clone Repository | |
```bash | |
git clone <repository-url> | |
cd character-ai-chat | |
``` | |
### 2. Install Dependencies | |
```bash | |
pip install -r requirements.txt | |
``` | |
### 3. Setup Environment | |
```bash | |
# Optional: Set cache directory | |
export HF_HOME=/path/to/cache | |
export TRANSFORMERS_CACHE=/path/to/cache | |
``` | |
### 4. Prepare Assets | |
Pastikan file berikut ada di root directory: | |
- `index.html` - Frontend interface | |
- `avatar.png` - Character avatar (optional) | |
- `background.png` - Background image (optional) | |
### 5. Run Application | |
```bash | |
python app.py | |
``` | |
Aplikasi akan berjalan di: `http://localhost:7860` | |
## 🎮 Cara Penggunaan | |
### Basic Chat | |
```python | |
import requests | |
response = requests.post("http://localhost:7860/chat", json={ | |
"message": "Hai, apa kabar?", | |
"model": "distil-gpt-2", | |
"char_name": "Sayang", | |
"user_name": "Kamu", | |
"situation": "Santai", | |
"location": "Ruang tamu" | |
}) | |
print(response.json()["response"]) | |
``` | |
### Advanced Usage dengan Session | |
```python | |
# Chat dengan session tracking | |
response = requests.post("http://localhost:7860/chat", json={ | |
"message": "Aku sedang sedih hari ini", | |
"model": "gpt-2", | |
"char_name": "Luna", | |
"user_name": "Alex", | |
"situation": "Romantis", | |
"location": "Taman", | |
"session_id": "user_123" | |
}) | |
``` | |
### Cek Memory Session | |
```python | |
# Lihat conversation memory | |
memory = requests.get("http://localhost:7860/memory/user_123") | |
print(memory.json()) | |
# Lihat personality development | |
personality = requests.get("http://localhost:7860/personality/user_123") | |
print(personality.json()) | |
``` | |
## 🌐 API Endpoints | |
### Core Endpoints | |
- `POST /chat` - Main chat endpoint | |
- `GET /models` - List available models | |
- `GET /health` - Health check | |
- `GET /config` - Configuration info | |
### Enhanced Features | |
- `GET /memory/{session_id}` - Get conversation memory | |
- `GET /personality/{session_id}` - Get character personality | |
- `DELETE /session/{session_id}` - Reset session data | |
### Utility Endpoints | |
- `GET /verify-models` - Verify all models loading | |
- `POST /inference` - Alternative inference endpoint | |
- `GET /api` - API documentation | |
## 🎨 Kustomisasi Karakter | |
### Personality Traits | |
Karakter memiliki 5 trait utama yang dapat disesuaikan: | |
```python | |
personality.traits = { | |
"extraversion": 0.7, # Seberapa ekstrovert (0-1) | |
"agreeableness": 0.8, # Seberapa mudah setuju (0-1) | |
"conscientiousness": 0.6, # Seberapa teliti (0-1) | |
"neuroticism": 0.3, # Seberapa cemas (0-1) | |
"openness": 0.7 # Seberapa terbuka (0-1) | |
} | |
``` | |
### Speaking Styles | |
- `casual_friendly` - Santai dan ramah | |
- `romantic_caring` - Romantis dan perhatian | |
- `supportive_warm` - Supportif dan hangat | |
- `playful_teasing` - Main-main dan menggoda | |
### Situasi yang Didukung | |
- **Santai** - Obrolan santai sehari-hari | |
- **Romantis** - Suasana romantis dan intim | |
- **Sedih** - Memberikan dukungan emosional | |
- **Excited** - Berbagi kegembiraan | |
- **Study** - Membantu belajar | |
- **Gaming** - Ngobrol tentang games | |
## 🔧 Optimisasi CPU | |
### Memory Management | |
```python | |
# CPU thread optimization | |
torch.set_num_threads(2) | |
os.environ['OMP_NUM_THREADS'] = '2' | |
os.environ['MKL_NUM_THREADS'] = '2' | |
# Memory cleanup | |
gc.collect() | |
``` | |
### Model Loading Strategy | |
- **Lazy Loading** - Model dimuat saat pertama kali digunakan | |
- **Shared Pipelines** - Reuse pipeline untuk efisiensi | |
- **Cache Management** - Automatic cache cleanup | |
## 📊 Performance Monitoring | |
### Response Time Tracking | |
Setiap response dilengkapi dengan informasi performa: | |
```json | |
{ | |
"response": "Hai! Apa kabar?", | |
"processing_time": "450ms", | |
"model": "DistilGPT-2 ⚡", | |
"status": "success" | |
} | |
``` | |
### Memory Usage | |
```python | |
# Check memory usage | |
GET /health | |
{ | |
"loaded_models": 5, | |
"memory_usage": "2.1GB", | |
"optimization": "Character AI CPU-Tuned" | |
} | |
``` | |
## 🐛 Troubleshooting | |
### Common Issues | |
**Model Loading Error** | |
```bash | |
# Solution: Clear cache | |
rm -rf /tmp/.cache/huggingface | |
``` | |
**Out of Memory** | |
```python | |
# Reduce max_length | |
request.max_length = 100 | |
# Use lighter models | |
model = "distil-gpt-2" # instead of "gpt-neo" | |
``` | |
**Slow Response** | |
```python | |
# Use priority 1 models for faster response | |
recommended_models = ["distil-gpt-2", "gpt-2-tinny", "bert-tinny"] | |
``` | |
### Debug Mode | |
```bash | |
# Run with debug logging | |
PYTHONPATH=. python -m uvicorn app:app --reload --log-level debug | |
``` | |
## 🤝 Contributing | |
### Development Setup | |
```bash | |
# Install development dependencies | |
pip install -r requirements-dev.txt | |
# Run tests | |
python -m pytest tests/ | |
# Code formatting | |
black app.py | |
flake8 app.py | |
``` | |
### Adding New Models | |
1. Tambahkan model config di `MODELS` dictionary | |
2. Test dengan `/verify-models` endpoint | |
3. Update documentation | |
### Adding New Features | |
1. Extend appropriate class (`ConversationMemory`, `CharacterPersonality`, etc.) | |
2. Add endpoint if needed | |
3. Update API documentation | |
## 📄 License | |
MIT License - Lihat file LICENSE untuk detail lengkap. | |
## 🙏 Acknowledgments | |
- **Hugging Face Transformers** - Model implementation | |
- **FastAPI** - Web framework | |
- **PyTorch** - Deep learning backend | |
- **Community Contributors** - Bug reports and suggestions | |
## 📞 Support | |
- **Issues**: GitHub Issues | |
- **Discussions**: GitHub Discussions | |
- **Email**: [your-email@domain.com] | |
--- | |
### 📈 Stats | |
- **11 AI Models** supported | |
- **CPU Optimized** for affordable hosting | |
- **Advanced Roleplay** features | |
- **Indonesian Language** optimized | |
- **Real-time Processing** under 500ms average | |
**Happy Chatting! 🎭✨** |