feat: Add Alateya, Clan, Eonarch agents + fix gateway-router connection
## Agents Added - Alateya: R&D, biotech, innovations - Clan (Spirit): Community spirit agent - Eonarch: Consciousness evolution agent ## Changes - docker-compose.node1.yml: Added tokens for all 3 new agents - gateway-bot/http_api.py: Added configs and webhook endpoints - gateway-bot/clan_prompt.txt: New prompt file - gateway-bot/eonarch_prompt.txt: New prompt file ## Fixes - Fixed ROUTER_URL from :9102 to :8000 (internal container port) - All 9 Telegram agents now working ## Documentation - Created PROJECT-MASTER-INDEX.md - single entry point - Added various status documents and scripts Tokens configured: - Helion, NUTRA, Agromatrix (existing) - Alateya, Clan, Eonarch (new) - Druid, GreenFood, DAARWIZZ (configured)
This commit is contained in:
123
docs/hardcode_vs_config.md
Normal file
123
docs/hardcode_vs_config.md
Normal file
@@ -0,0 +1,123 @@
|
||||
# Хардкод vs Конфігурація
|
||||
|
||||
## 🔴 ХАРДКОД (Hardcode) - Що це?
|
||||
|
||||
**Хардкод** = значення, які "зашиті" прямо в коді і не можуть змінюватись без редагування коду.
|
||||
|
||||
### Приклад хардкоду:
|
||||
```python
|
||||
# ❌ ХАРДКОД - значення прямо в коді
|
||||
local_model = "qwen3-8b" # Якщо треба змінити модель, треба редагувати код!
|
||||
```
|
||||
|
||||
### Проблеми хардкоду:
|
||||
1. **Треба редагувати код** для зміни значення
|
||||
2. **Не можна змінити без перезапуску** сервісу
|
||||
3. **Важко тестувати** різні конфігурації
|
||||
4. **Не гнучко** - однаковий код для всіх середовищ (dev/prod)
|
||||
|
||||
---
|
||||
|
||||
## ✅ КОНФІГУРАЦІЯ (Config) - Що це?
|
||||
|
||||
**Конфігурація** = значення, які зберігаються окремо від коду (в файлах, змінних середовища, БД) і можуть змінюватись без редагування коду.
|
||||
|
||||
### Приклад конфігурації:
|
||||
```yaml
|
||||
# ✅ КОНФІГ - значення в окремому файлі router-config.yml
|
||||
llm_profiles:
|
||||
qwen3_science_8b:
|
||||
provider: ollama
|
||||
model: qwen3:8b
|
||||
max_tokens: 2048
|
||||
```
|
||||
|
||||
```python
|
||||
# ✅ КОД читає з конфігу
|
||||
llm_profile = router_config.get("llm_profiles", {}).get("qwen3_science_8b")
|
||||
model = llm_profile.get("model") # Беремо з конфігу, не хардкодимо!
|
||||
```
|
||||
|
||||
### Переваги конфігурації:
|
||||
1. **Зміна без редагування коду** - просто змінити YAML файл
|
||||
2. **Різні конфіги для різних середовищ** (dev/prod/staging)
|
||||
3. **Легко тестувати** - можна створити test-config.yml
|
||||
4. **Гнучко** - один код, багато конфігурацій
|
||||
|
||||
---
|
||||
|
||||
## 📊 ПОРІВНЯННЯ
|
||||
|
||||
| Аспект | Хардкод | Конфігурація |
|
||||
|--------|---------|--------------|
|
||||
| **Де зберігається?** | В коді | В окремих файлах |
|
||||
| **Як змінити?** | Редагувати код | Редагувати конфіг |
|
||||
| **Потрібен рестарт?** | Так (перекомпіляція) | Так (перезапуск) |
|
||||
| **Гнучкість** | Низька | Висока |
|
||||
| **Тестування** | Важко | Легко |
|
||||
|
||||
---
|
||||
|
||||
## 🔧 ЩО МИ ВИПРАВИЛИ?
|
||||
|
||||
### БУЛО (хардкод):
|
||||
```python
|
||||
# ❌ Хардкод - модель завжди "qwen3-8b"
|
||||
local_model = "qwen3-8b"
|
||||
```
|
||||
|
||||
### СТАЛО (з конфігу):
|
||||
```python
|
||||
# ✅ Читаємо з конфігу
|
||||
if llm_profile.get("provider") == "ollama":
|
||||
ollama_model = llm_profile.get("model", "qwen3:8b")
|
||||
local_model = ollama_model.replace(":", "-") # qwen3:8b → qwen3-8b
|
||||
```
|
||||
|
||||
### Результат:
|
||||
- ✅ Модель береться з `router-config.yml`
|
||||
- ✅ Якщо змінити конфіг → зміниться поведінка
|
||||
- ✅ Не треба редагувати код для зміни моделі
|
||||
- ✅ Різні агенти можуть мати різні локальні моделі
|
||||
|
||||
---
|
||||
|
||||
## 💡 КОЛИ ВИКОРИСТОВУВАТИ?
|
||||
|
||||
### Хардкод - тільки для:
|
||||
- Константи (π = 3.14, версія API)
|
||||
- Значення, які ніколи не зміняться
|
||||
- Технічні деталі (timeout = 5.0 сек)
|
||||
|
||||
### Конфігурація - для:
|
||||
- Моделі LLM
|
||||
- API ключі
|
||||
- URL сервісів
|
||||
- Параметри (temperature, max_tokens)
|
||||
- Налаштування агентів
|
||||
|
||||
---
|
||||
|
||||
## 📝 ПРИКЛАД З НАШОГО ПРОЄКТУ
|
||||
|
||||
### router-config.yml (конфігурація):
|
||||
```yaml
|
||||
agents:
|
||||
helion:
|
||||
default_llm: qwen3_science_8b # ← Можна змінити тут
|
||||
|
||||
llm_profiles:
|
||||
qwen3_science_8b:
|
||||
provider: ollama
|
||||
model: qwen3:8b # ← Можна змінити модель тут
|
||||
```
|
||||
|
||||
### main.py (код):
|
||||
```python
|
||||
# Читаємо з конфігу
|
||||
default_llm = agent_config.get("default_llm", "qwen3-8b")
|
||||
llm_profile = llm_profiles.get(default_llm, {})
|
||||
model = llm_profile.get("model") # ← Беремо з конфігу!
|
||||
```
|
||||
|
||||
**Тепер можна змінити модель просто редагуванням YAML файлу!** 🎉
|
||||
Reference in New Issue
Block a user