feat: додано Node Registry, GreenFood, Monitoring та Utils

This commit is contained in:
Apple
2025-11-21 00:35:41 -08:00
parent 31f3602047
commit e018b9ab68
74 changed files with 13948 additions and 0 deletions

245
docs/STRATEGY_MODELS.md Normal file
View File

@@ -0,0 +1,245 @@
# 🎯 Стратегія вибору моделей: API vs Локальні
**Дата**: 2025-11-18
**Питання**: Використовувати Dify/API чи завантажувати важкі моделі?
---
## 📊 Поточна ситуація
### Що вже є на сервері:
#### 1. **Локальні моделі (Ollama)** ✅
- **qwen3:8b** - вже завантажена (5.2 GB)
- **Використання**: DAGI Router використовує для DAARWIZZ, Helion, GREENFOOD
- **Переваги**:
- ✅ Безкоштовно
- ✅ Приватно (дані не йдуть в OpenAI)
- ✅ Працює офлайн
- **Недоліки**:
- ⚠️ Обмежені можливості (немає Vision, слабший RAG)
- ⚠️ Повільніше ніж API
- ⚠️ Потребує GPU для швидкості
#### 2. **Dify Platform** ✅
- **Статус**: Працює, але потребує API ключі
- **OPENAI_API_BASE**: https://api.openai.com/v1
- **API Key**: Потрібен (не знайдено в env)
- **Використання**: Може використовувати GPT-4V, Claude Vision через API
#### 3. **Vision Encoder** ✅
- **Статус**: Працює (embeddings)
- **Обмеження**: Тільки векторизація, не опис зображень
---
## 🤔 Варіанти стратегії
### **Варіант A: API моделі (OpenAI/Anthropic)** 💰
**Що потрібно**:
- OpenAI API key (для GPT-4V)
- АБО Anthropic API key (для Claude Vision)
**Переваги**:
-**GPT-4V** - найкращий Vision AI
-**Claude 3 Vision** - теж дуже хороший
- ✅ Швидко (API)
-Не потребує завантаження моделей
- ✅ Оновлення автоматично
**Недоліки**:
-**Коштує грошей** ($0.01-0.03 за image)
- ❌ Дані йдуть в OpenAI/Anthropic
- ❌ Залежність від інтернету
**Вартість** (приблизно):
- GPT-4V: ~$0.01-0.03 за зображення
- Claude Vision: ~$0.01-0.015 за зображення
- При 100 фото/день = $1-3/день = $30-90/місяць
---
### **Варіант B: Локальні Vision моделі** 🖥️
**Що потрібно завантажити**:
- **LLaVA** (Large Language and Vision Assistant) - ~7-13 GB
- АБО **BLIP-2** - ~1-2 GB
- АБО **InstructBLIP** - ~1-2 GB
**Переваги**:
- ✅ Безкоштовно
- ✅ Приватно
- ✅ Працює офлайн
**Недоліки**:
-**Потребує GPU** для швидкості (CPU дуже повільно)
- ❌ Великі файли (7-13 GB)
- ❌ Гірша якість ніж GPT-4V
- ❌ Потребує багато RAM (16GB+)
**Час обробки** (на CPU):
- LLaVA: ~30-60 секунд на зображення
- BLIP-2: ~10-20 секунд
**Час обробки** (на GPU):
- LLaVA: ~2-5 секунд
- BLIP-2: ~1-2 секунди
---
### **Варіант C: Гібридний підхід** 🎯 (РЕКОМЕНДОВАНО)
**Що робити**:
1. **Для базових агентів** (DAARWIZZ, Helion, GREENFOOD):
- ✅ Використовувати **локальний qwen3:8b** (вже є)
- ✅ Безкоштовно, приватно
2. **Для Vision** (опис зображень):
- **Варіант C1**: API (якщо є бюджет)
- GPT-4V через OpenAI API
- АБО Claude Vision через Anthropic API
- **Варіант C2**: Локальний (якщо немає бюджету)
- LLaVA через Ollama (якщо є GPU)
- АБО BLIP-2 (легший варіант)
3. **Для RAG**:
- ✅ Використовувати **Qdrant** (вже працює)
- ✅ Використовувати **Weaviate** (вже працює, частина Dify)
-НЕ використовувати Dify RAG (потребує API)
4. **Для Web Search**:
- ✅ Використовувати **CrewAI** (вже працює)
- ✅ CrewAI може використовувати локальні моделі
---
## 💡 Моя рекомендація
### **НЕ раджу завантажувати важкі Vision моделі ЯКЩО:**
- ❌ Немає GPU (CPU буде дуже повільно)
- ❌ Немає багато RAM (16GB+)
- ❌ Немає місця на диску (7-13 GB)
### **Раджу завантажити ЛОКАЛЬНІ Vision моделі ЯКЩО:**
- ✅ Є GPU (NVIDIA з 8GB+ VRAM)
- ✅ Є багато RAM (32GB+)
- ✅ Немає бюджету на API
- ✅ Потрібна максимальна приватність
### **Раджу використовувати API ЯКЩО:**
- ✅ Є бюджет ($30-90/місяць)
- ✅ Потрібна найкраща якість
- ✅ Немає GPU
- ✅ Потрібна швидкість
---
## 🎯 Конкретний план для тебе
### **Сценарій 1: Є GPU + немає бюджету** 🖥️
```bash
# Завантажити LLaVA через Ollama
ollama pull llava:7b # ~7 GB
# АБО легший варіант
ollama pull llava:13b # ~13 GB, краща якість
```
**Інтеграція**:
```python
# router_handler.py
async def _analyze_photo_local(self, image_url: str):
"""Використати локальний LLaVA"""
response = await httpx.post(
"http://localhost:11434/api/generate",
json={
"model": "llava:7b",
"prompt": f"Опиши детально що на цьому зображенні: {image_url}",
"images": [image_url]
}
)
return response.json()["response"]
```
---
### **Сценарій 2: Немає GPU + є бюджет** 💰
```python
# router_handler.py
async def _analyze_photo_api(self, image_url: str):
"""Використати GPT-4V через API"""
import openai
openai.api_key = os.getenv("OPENAI_API_KEY")
response = openai.ChatCompletion.create(
model="gpt-4-vision-preview",
messages=[{
"role": "user",
"content": [
{"type": "text", "text": "Опиши детально що на цьому зображенні"},
{"type": "image_url", "image_url": {"url": image_url}}
]
}]
)
return response.choices[0].message.content
```
---
### **Сценарій 3: Немає GPU + немає бюджету** ⚠️
**Рекомендація**:
- ⚠️ **НЕ завантажувати важкі Vision моделі** (буде дуже повільно)
- ✅ Використовувати **BLIP-2** (легший, ~1-2 GB)
- АБО залишити заглушку поки не з'явиться GPU/бюджет
---
## 📊 Порівняння
| Критерій | Локальний (LLaVA) | API (GPT-4V) |
|----------|-------------------|--------------|
| **Вартість** | Безкоштовно | $0.01-0.03/зображення |
| **Швидкість (CPU)** | 30-60 сек | 2-5 сек |
| **Швидкість (GPU)** | 2-5 сек | 2-5 сек |
| **Якість** | 7/10 | 10/10 |
| **Приватність** | ✅ Повна | ❌ Дані в OpenAI |
| **Розмір** | 7-13 GB | 0 GB |
| **GPU потрібен** | ✅ Так | ❌ Ні |
---
## 🚀 Що робити зараз?
### **Крок 1: Перевірити чи є GPU**
```bash
ssh root@144.76.224.179 "nvidia-smi"
# АБО
ssh root@144.76.224.179 "lspci | grep -i nvidia"
```
### **Крок 2: Перевірити чи є OpenAI API key**
```bash
ssh root@144.76.224.179 "docker exec docker-api-1 env | grep OPENAI_API_KEY"
```
### **Крок 3: Вирішити стратегію**
- **Якщо є GPU** → Локальний LLaVA
- **Якщо є API key** → GPT-4V через API
- **Якщо нічого** → Заглушка поки
---
## 💬 Моя думка
**Я НЕ раджу завантажувати важкі моделі БЕЗ GPU** - буде дуже повільно і користувачі будуть невдоволені.
**Якщо є GPU** - тоді так, локальний LLaVA - чудовий вибір!
**Якщо немає GPU** - краще використати API (якщо є бюджет) або залишити заглушку.
**Що ти думаєш?** Є GPU? Є бюджет на API? 🎯
---
*Створено: 2025-11-18*