fix: increase LLM timeout 30s→60s, fix Gateway request format, add Ollama optimization guide
- Fixed Gateway: 'prompt' → 'message' field name - Increased LLM provider timeout from 30s to 60s - Added OLLAMA-OPTIMIZATION.md with performance tips - DAARWIZZ now responds (slowly but works)
This commit is contained in:
91
OLLAMA-OPTIMIZATION.md
Normal file
91
OLLAMA-OPTIMIZATION.md
Normal file
@@ -0,0 +1,91 @@
|
||||
# Ollama Performance Optimization
|
||||
|
||||
## Проблема
|
||||
Qwen3:8b генерує відповідь 25-30 секунд, що занадто повільно для чат-бота.
|
||||
|
||||
## Швидкі рішення
|
||||
|
||||
### 1. Збільшити timeout (✅ зроблено)
|
||||
```python
|
||||
# providers/llm_provider.py
|
||||
timeout_s: int = 60 # було 30
|
||||
```
|
||||
|
||||
### 2. Keep model loaded (рекомендовано)
|
||||
```bash
|
||||
# Встановити keep_alive щоб модель не вивантажувалась
|
||||
curl http://localhost:11434/api/generate -d '{
|
||||
"model": "qwen3:8b",
|
||||
"prompt": "warmup",
|
||||
"keep_alive": "24h"
|
||||
}'
|
||||
```
|
||||
|
||||
Або в systemd override:
|
||||
```ini
|
||||
[Service]
|
||||
Environment="OLLAMA_KEEP_ALIVE=24h"
|
||||
```
|
||||
|
||||
### 3. Використати легшу модель
|
||||
```bash
|
||||
# Завантажити qwen2.5:3b (швидша, але менш "розумна")
|
||||
ollama pull qwen2.5:3b
|
||||
```
|
||||
|
||||
Оновити `router-config.yml`:
|
||||
```yaml
|
||||
llm_profiles:
|
||||
- profile_id: "local_qwen_fast"
|
||||
provider_id: "llm_local_qwen"
|
||||
model: "qwen2.5:3b" # замість qwen3:8b
|
||||
```
|
||||
|
||||
### 4. GPU acceleration (якщо є GPU)
|
||||
Ollama автоматично використовує GPU якщо є CUDA/ROCm.
|
||||
|
||||
Перевірка:
|
||||
```bash
|
||||
ollama ps # покаже чи використовує GPU
|
||||
nvidia-smi # для NVIDIA GPU
|
||||
```
|
||||
|
||||
## Довгострокові рішення
|
||||
|
||||
### Option A: Віддалений LLM (швидко, але платно)
|
||||
```yaml
|
||||
llm_profiles:
|
||||
- profile_id: "production_fast"
|
||||
provider_id: "openai_remote"
|
||||
model: "gpt-4o-mini"
|
||||
base_url: "https://api.openai.com/v1"
|
||||
api_key_env: "OPENAI_API_KEY"
|
||||
```
|
||||
|
||||
### Option B: Більш потужний сервер
|
||||
- CPU: 8+ cores
|
||||
- RAM: 32GB+ (для 8B моделі)
|
||||
- GPU: RTX 3060+ (12GB VRAM)
|
||||
|
||||
## Моніторинг
|
||||
|
||||
```bash
|
||||
# Час генерації
|
||||
docker compose logs router | grep "Request timeout"
|
||||
|
||||
# Завантаженість Ollama
|
||||
curl http://localhost:11434/api/ps
|
||||
|
||||
# Системні ресурси
|
||||
htop
|
||||
```
|
||||
|
||||
## Рекомендації для DAARWIZZ
|
||||
|
||||
1. ✅ **Зараз**: timeout 60s, працює але повільно
|
||||
2. 🔄 **Наступний крок**: `OLLAMA_KEEP_ALIVE=24h` щоб модель не вивантажувалась
|
||||
3. 🚀 **Production**: віддалений LLM (OpenAI/Anthropic) або потужніший сервер з GPU
|
||||
|
||||
---
|
||||
|
||||
**Статус**: DAARWIZZ працює, але відповідає за ~30-40 секунд. Для комфорту потрібно <5 секунд.
|
||||
@@ -124,7 +124,7 @@ async def telegram_webhook(update: TelegramUpdate):
|
||||
|
||||
# Build request to Router with DAARWIZZ context
|
||||
router_request = {
|
||||
"prompt": text,
|
||||
"message": text,
|
||||
"mode": "chat",
|
||||
"agent": "daarwizz", # DAARWIZZ agent identifier
|
||||
"metadata": {
|
||||
@@ -197,7 +197,7 @@ async def discord_webhook(message: DiscordMessage):
|
||||
|
||||
# Build request to Router with DAARWIZZ context
|
||||
router_request = {
|
||||
"prompt": text,
|
||||
"message": text,
|
||||
"mode": "chat",
|
||||
"agent": "daarwizz",
|
||||
"metadata": {
|
||||
|
||||
@@ -25,7 +25,7 @@ class LLMProvider(Provider):
|
||||
base_url: str,
|
||||
model: str,
|
||||
api_key: Optional[str] = None,
|
||||
timeout_s: int = 30,
|
||||
timeout_s: int = 60,
|
||||
max_tokens: int = 1024,
|
||||
temperature: float = 0.2,
|
||||
provider_type: str = "openai", # "openai" or "ollama"
|
||||
|
||||
Reference in New Issue
Block a user