File size: 4,911 Bytes
519b145 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 |
# Hướng dẫn Switch LLM Provider
> **Mặc định kể từ bản cập nhật này, chatbot sẽ dùng local model Qwen/Qwen2.5-7B-Instruct (8-bit) nếu bạn không cấu hình `LLM_PROVIDER`.**
> Bạn có thể dùng script bên dưới để chuyển sang API/OpenAI/... bất kỳ lúc nào.
Script để thay đổi LLM provider linh hoạt giữa local model, API mode, và các providers khác.
## Cách sử dụng
### Method 1: Python Script (Chi tiết)
```bash
# Xem cấu hình hiện tại
python3 switch_llm_provider.py show
# Switch sang local model
python3 switch_llm_provider.py local
# Switch sang local với custom model
python3 switch_llm_provider.py local --model Qwen/Qwen2.5-14B-Instruct --device cuda --8bit
# Switch sang API mode
python3 switch_llm_provider.py api
# Switch sang API với custom URL
python3 switch_llm_provider.py api --url https://custom-api.hf.space/api
# Switch sang OpenAI
python3 switch_llm_provider.py openai
# Switch sang Anthropic
python3 switch_llm_provider.py anthropic
# Switch sang Ollama
python3 switch_llm_provider.py ollama
# Tắt LLM (chỉ dùng template)
python3 switch_llm_provider.py none
```
### Method 2: Shell Script (Nhanh)
```bash
# Xem cấu hình hiện tại
./llm_switch.sh
# Switch sang local
./llm_switch.sh local
# Switch sang API
./llm_switch.sh api
# Switch sang OpenAI
./llm_switch.sh openai
# Tắt LLM
./llm_switch.sh none
```
## Các Providers hỗ trợ
### 1. Local Model (`local`)
Sử dụng local Hugging Face model trên máy của bạn.
**Cấu hình:**
```bash
LLM_PROVIDER=local
LOCAL_MODEL_PATH=Qwen/Qwen2.5-7B-Instruct
LOCAL_MODEL_DEVICE=cuda # hoặc cpu, auto
LOCAL_MODEL_8BIT=true # hoặc false
LOCAL_MODEL_4BIT=false # hoặc true
```
**Ví dụ:**
```bash
# 7B model với 8-bit quantization
python3 switch_llm_provider.py local --model Qwen/Qwen2.5-7B-Instruct --device cuda --8bit
# 14B model với 4-bit quantization
python3 switch_llm_provider.py local --model Qwen/Qwen2.5-14B-Instruct --device cuda --4bit
```
### 2. API Mode (`api`)
Gọi API của Hugging Face Spaces.
**Cấu hình:**
```bash
LLM_PROVIDER=api
HF_API_BASE_URL=https://davidtran999-hue-portal-backend.hf.space/api
```
**Ví dụ:**
```bash
# Sử dụng default API URL
python3 switch_llm_provider.py api
# Sử dụng custom API URL
python3 switch_llm_provider.py api --url https://your-custom-api.hf.space/api
```
### 3. OpenAI (`openai`)
Sử dụng OpenAI API.
**Cấu hình:**
```bash
LLM_PROVIDER=openai
OPENAI_API_KEY=your-api-key-here
```
**Ví dụ:**
```bash
python3 switch_llm_provider.py openai
```
### 4. Anthropic (`anthropic`)
Sử dụng Anthropic Claude API.
**Cấu hình:**
```bash
LLM_PROVIDER=anthropic
ANTHROPIC_API_KEY=your-api-key-here
```
**Ví dụ:**
```bash
python3 switch_llm_provider.py anthropic
```
### 5. Ollama (`ollama`)
Sử dụng Ollama local server.
**Cấu hình:**
```bash
LLM_PROVIDER=ollama
OLLAMA_BASE_URL=http://localhost:11434
OLLAMA_MODEL=qwen2.5:7b
```
**Ví dụ:**
```bash
python3 switch_llm_provider.py ollama
```
### 6. None (`none`)
Tắt LLM, chỉ sử dụng template-based generation.
**Ví dụ:**
```bash
python3 switch_llm_provider.py none
```
## Lưu ý quan trọng
1. **Restart Server**: Sau khi thay đổi provider, cần restart Django server để áp dụng:
```bash
# Nếu dùng manage.py
python manage.py runserver
# Nếu dùng gunicorn
systemctl restart gunicorn
# hoặc
pkill -f gunicorn && gunicorn ...
```
2. **Local Model Requirements**:
- Cần GPU với đủ VRAM (7B 8-bit: ~7GB, 14B 4-bit: ~8GB)
- Cần cài đặt: `transformers`, `accelerate`, `bitsandbytes`
- Model sẽ được download tự động lần đầu
3. **API Mode**:
- Cần internet connection
- API endpoint phải đang hoạt động
- Có thể có rate limits
4. **Environment Variables**:
- Script sẽ tự động tạo/update file `.env` trong thư mục `backend/`
- Nếu không có file `.env`, script sẽ tạo mới
## Troubleshooting
### Local model không load được
- Kiểm tra GPU có đủ VRAM không
- Thử model nhỏ hơn: `Qwen/Qwen2.5-1.5B-Instruct`
- Thử dùng CPU: `--device cpu` (chậm hơn)
### API mode không hoạt động
- Kiểm tra internet connection
- Kiểm tra API URL có đúng không
- Kiểm tra API endpoint có đang chạy không
### Script không tìm thấy .env file
- Script sẽ tự động tạo file `.env` mới
- Hoặc tạo thủ công: `touch backend/.env`
## Examples
### Development: Dùng API mode (nhanh, không cần GPU)
```bash
./llm_switch.sh api
```
### Production: Dùng local model (tốt nhất, không tốn API cost)
```bash
./llm_switch.sh local --model Qwen/Qwen2.5-7B-Instruct --device cuda --8bit
```
### Testing: Tắt LLM (chỉ template)
```bash
./llm_switch.sh none
```
|