docs: expand lint scope batch4 (3 files)
This commit is contained in:
@@ -16,7 +16,7 @@
|
|||||||
### 2. **Neo4j** 📊
|
### 2. **Neo4j** 📊
|
||||||
- **Статус**: ✅ Працює (ports 7474, 7687)
|
- **Статус**: ✅ Працює (ports 7474, 7687)
|
||||||
- **Що робити**: Підключити до Router для knowledge graphs
|
- **Що робити**: Підключити до Router для knowledge graphs
|
||||||
- **UI**: http://144.76.224.179:7474
|
- **UI**: [http://144.76.224.179:7474](http://144.76.224.179:7474)
|
||||||
- **Час**: 45 хв
|
- **Час**: 45 хв
|
||||||
- **Пріоритет**: 🟡 СЕРЕДНІЙ
|
- **Пріоритет**: 🟡 СЕРЕДНІЙ
|
||||||
|
|
||||||
@@ -263,17 +263,17 @@ receivers:
|
|||||||
|
|
||||||
## 📊 Пріоритизований Timeline
|
## 📊 Пріоритизований Timeline
|
||||||
|
|
||||||
### Сьогодні (3-4 год):
|
### Сьогодні (3-4 год)
|
||||||
1. ✅ Дослідити Dify (1 год) - може має все що треба!
|
1. ✅ Дослідити Dify (1 год) - може має все що треба!
|
||||||
2. ✅ Інтегрувати CrewAI (30 хв) - web search для агентів
|
2. ✅ Інтегрувати CrewAI (30 хв) - web search для агентів
|
||||||
3. ✅ Vision через Dify або OpenAI (30 хв) - описи зображень
|
3. ✅ Vision через Dify або OpenAI (30 хв) - описи зображень
|
||||||
|
|
||||||
### Завтра (2-3 год):
|
### Завтра (2-3 год)
|
||||||
4. ✅ Підключити Neo4j (45 хв) - knowledge graphs
|
4. ✅ Підключити Neo4j (45 хв) - knowledge graphs
|
||||||
5. ✅ Streaming TTS (1 год) - якісний голос
|
5. ✅ Streaming TTS (1 год) - якісний голос
|
||||||
6. ✅ Grafana Alerts (30 хв) - моніторинг
|
6. ✅ Grafana Alerts (30 хв) - моніторинг
|
||||||
|
|
||||||
### Опційно (якщо потрібно):
|
### Опційно (якщо потрібно)
|
||||||
7. ⚠️ Виправити RAG Service (2 год) - АБО використовувати Dify RAG
|
7. ⚠️ Виправити RAG Service (2 год) - АБО використовувати Dify RAG
|
||||||
8. ⚠️ Виправити Memory Service (1 год) - АБО використовувати Neo4j
|
8. ⚠️ Виправити Memory Service (1 год) - АБО використовувати Neo4j
|
||||||
9. ⚠️ Запустити Milvus (15 хв) - тільки якщо Qdrant недостатньо
|
9. ⚠️ Запустити Milvus (15 хв) - тільки якщо Qdrant недостатньо
|
||||||
@@ -282,19 +282,19 @@ receivers:
|
|||||||
|
|
||||||
## 💡 Ключові висновки
|
## 💡 Ключові висновки
|
||||||
|
|
||||||
### Що маємо:
|
### Що маємо
|
||||||
- ✅ **35 Docker контейнерів** - величезна інфраструктура!
|
- ✅ **35 Docker контейнерів** - величезна інфраструктура!
|
||||||
- ✅ **Dify AI Platform** - може замінити багато сервісів
|
- ✅ **Dify AI Platform** - може замінити багато сервісів
|
||||||
- ✅ **CrewAI** - готовий до використання
|
- ✅ **CrewAI** - готовий до використання
|
||||||
- ✅ **Neo4j** - готовий до використання
|
- ✅ **Neo4j** - готовий до використання
|
||||||
- ✅ **3 Vector DBs** - Qdrant, Weaviate, (Milvus)
|
- ✅ **3 Vector DBs** - Qdrant, Weaviate, (Milvus)
|
||||||
|
|
||||||
### Що можна зробити швидко:
|
### Що можна зробити швидко
|
||||||
1. **Dify exploration** - може вже все є!
|
1. **Dify exploration** - може вже все є!
|
||||||
2. **CrewAI integration** - web search для агентів
|
2. **CrewAI integration** - web search для агентів
|
||||||
3. **Neo4j integration** - knowledge graphs
|
3. **Neo4j integration** - knowledge graphs
|
||||||
|
|
||||||
### Що не критично:
|
### Що не критично
|
||||||
- Memory Service (є альтернативи)
|
- Memory Service (є альтернативи)
|
||||||
- RAG Service (є Dify RAG)
|
- RAG Service (є Dify RAG)
|
||||||
- Milvus (є Qdrant і Weaviate)
|
- Milvus (є Qdrant і Weaviate)
|
||||||
@@ -316,4 +316,3 @@ receivers:
|
|||||||
|
|
||||||
*Створено: 2025-11-18*
|
*Створено: 2025-11-18*
|
||||||
*Базується на: SERVER_AUDIT_REPORT.md*
|
*Базується на: SERVER_AUDIT_REPORT.md*
|
||||||
|
|
||||||
|
|||||||
@@ -133,7 +133,7 @@ INSERT INTO city_rooms (id, slug, name, ...) VALUES (...)
|
|||||||
ON CONFLICT (id) DO NOTHING;
|
ON CONFLICT (id) DO NOTHING;
|
||||||
```
|
```
|
||||||
|
|
||||||
### Re-apply конкретної міграції:
|
### Re-apply конкретної міграції
|
||||||
```bash
|
```bash
|
||||||
# Якщо потрібно перезастосувати (тільки якщо idempotent!)
|
# Якщо потрібно перезастосувати (тільки якщо idempotent!)
|
||||||
docker compose -f docker-compose.all.yml exec -T postgres \
|
docker compose -f docker-compose.all.yml exec -T postgres \
|
||||||
@@ -204,14 +204,14 @@ chmod +x scripts/migrate.sh
|
|||||||
|
|
||||||
## 🔙 Rollback Strategy
|
## 🔙 Rollback Strategy
|
||||||
|
|
||||||
### Створення rollback файлів (для майбутнього):
|
### Створення rollback файлів (для майбутнього)
|
||||||
```text
|
```text
|
||||||
migrations/
|
migrations/
|
||||||
├── 010_create_city_backend.sql
|
├── 010_create_city_backend.sql
|
||||||
└── 010_create_city_backend_rollback.sql
|
└── 010_create_city_backend_rollback.sql
|
||||||
```
|
```
|
||||||
|
|
||||||
### Приклад rollback:
|
### Приклад rollback
|
||||||
```sql
|
```sql
|
||||||
-- 010_create_city_backend_rollback.sql
|
-- 010_create_city_backend_rollback.sql
|
||||||
DROP TABLE IF EXISTS secondme_messages CASCADE;
|
DROP TABLE IF EXISTS secondme_messages CASCADE;
|
||||||
@@ -231,7 +231,7 @@ docker compose -f docker-compose.all.yml exec -T postgres \
|
|||||||
|
|
||||||
## 🧪 Testing міграцій
|
## 🧪 Testing міграцій
|
||||||
|
|
||||||
### Pre-deployment testing (на dev environment):
|
### Pre-deployment testing (на dev environment)
|
||||||
```bash
|
```bash
|
||||||
# 1. Backup поточної БД
|
# 1. Backup поточної БД
|
||||||
docker compose -f docker-compose.all.yml exec postgres \
|
docker compose -f docker-compose.all.yml exec postgres \
|
||||||
@@ -349,4 +349,3 @@ docker compose -f docker-compose.all.yml exec postgres \
|
|||||||
**Статус:** ✅ Migrations Guide Complete
|
**Статус:** ✅ Migrations Guide Complete
|
||||||
**Версія:** 1.0.0
|
**Версія:** 1.0.0
|
||||||
**Дата:** 24 листопада 2025
|
**Дата:** 24 листопада 2025
|
||||||
|
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ GUARDIAN_INTERVAL=60
|
|||||||
|
|
||||||
### 2. Запуск Node Guardian
|
### 2. Запуск Node Guardian
|
||||||
|
|
||||||
#### Як фонове завдання (рекомендовано):
|
#### Як фонове завдання (рекомендовано)
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Створити systemd service
|
# Створити systemd service
|
||||||
@@ -67,7 +67,7 @@ sudo systemctl start node-guardian
|
|||||||
sudo systemctl status node-guardian
|
sudo systemctl status node-guardian
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Або вручну:
|
#### Або вручну
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd /path/to/microdao-daarion
|
cd /path/to/microdao-daarion
|
||||||
@@ -76,7 +76,7 @@ python3 scripts/node-guardian-loop.py
|
|||||||
|
|
||||||
### 3. Перевірка роботи
|
### 3. Перевірка роботи
|
||||||
|
|
||||||
#### Перевірити логи:
|
#### Перевірити логи
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Якщо systemd service
|
# Якщо systemd service
|
||||||
@@ -85,7 +85,7 @@ sudo journalctl -u node-guardian -f
|
|||||||
# Або якщо запущено вручну - дивитись stdout
|
# Або якщо запущено вручну - дивитись stdout
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Перевірити в БД:
|
#### Перевірити в БД
|
||||||
|
|
||||||
```sql
|
```sql
|
||||||
-- Перевірити чи оновлюються метрики для НОДА2
|
-- Перевірити чи оновлюються метрики для НОДА2
|
||||||
@@ -104,7 +104,7 @@ ORDER BY updated_at DESC
|
|||||||
LIMIT 1;
|
LIMIT 1;
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Перевірити Swapper State:
|
#### Перевірити Swapper State
|
||||||
|
|
||||||
```sql
|
```sql
|
||||||
SELECT
|
SELECT
|
||||||
@@ -167,7 +167,7 @@ WHERE node_id = 'node-2-macbook-m4max'
|
|||||||
|
|
||||||
На НОДА1 guardian зазвичай запускається автоматично через docker-compose або systemd.
|
На НОДА1 guardian зазвичай запускається автоматично через docker-compose або systemd.
|
||||||
|
|
||||||
### ENV змінні для НОДА1:
|
### ENV змінні для НОДА1
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
NODE_ID=node-1-hetzner-gex44
|
NODE_ID=node-1-hetzner-gex44
|
||||||
@@ -182,7 +182,7 @@ CITY_SERVICE_URL=https://daarion.space/api/city
|
|||||||
|
|
||||||
## Архітектура
|
## Архітектура
|
||||||
|
|
||||||
```
|
```text
|
||||||
┌─────────────────┐
|
┌─────────────────┐
|
||||||
│ Node Guardian │ (на кожній ноді)
|
│ Node Guardian │ (на кожній ноді)
|
||||||
│ (loop script) │
|
│ (loop script) │
|
||||||
@@ -214,9 +214,14 @@ CITY_SERVICE_URL=https://daarion.space/api/city
|
|||||||
|
|
||||||
## Важливі моменти
|
## Важливі моменти
|
||||||
|
|
||||||
1. **Один Router/Swapper для всіх нод у проді**: На НОДА1 є один DAGI Router та один Swapper Service, які обслуговують всі ноди. Guardian на кожній ноді просто збирає метрики та пушить їх в БД з правильним `node_id`.
|
1. **Один Router/Swapper для всіх нод у проді**:
|
||||||
|
На НОДА1 є один DAGI Router та один Swapper Service, які обслуговують всі ноди.
|
||||||
|
Guardian на кожній ноді просто збирає метрики та пушить їх в БД
|
||||||
|
з правильним `node_id`.
|
||||||
|
|
||||||
2. **ENV змінні мають пріоритет**: Guardian використовує `NODE_SWAPPER_URL` та `NODE_ROUTER_URL` з ENV, якщо вони встановлені. Це дозволяє для НОДА2 використовувати `localhost`, а для НОДА1 - Docker service names.
|
2. **ENV змінні мають пріоритет**:
|
||||||
|
Guardian використовує `NODE_SWAPPER_URL` та `NODE_ROUTER_URL` з ENV,
|
||||||
|
якщо вони встановлені. Це дозволяє для НОДА2 використовувати `localhost`,
|
||||||
|
а для НОДА1 - Docker service names.
|
||||||
|
|
||||||
3. **Heartbeat оновлює node_cache**: Кожен heartbeat оновлює метрики в `node_cache` для конкретного `node_id`, тому дані не перетираються між нодами.
|
3. **Heartbeat оновлює node_cache**: Кожен heartbeat оновлює метрики в `node_cache` для конкретного `node_id`, тому дані не перетираються між нодами.
|
||||||
|
|
||||||
|
|||||||
@@ -30,6 +30,9 @@ docs/AGENTS_SYNC_AND_DASHBOARD_REPORT.md
|
|||||||
docs/STRATEGY_MODELS.md
|
docs/STRATEGY_MODELS.md
|
||||||
docs/DAARWIZZ.md
|
docs/DAARWIZZ.md
|
||||||
docs/DEPLOYMENT_OVERVIEW.md
|
docs/DEPLOYMENT_OVERVIEW.md
|
||||||
|
docs/DEPLOY_MIGRATIONS.md
|
||||||
|
docs/ACTION_PLAN.md
|
||||||
|
docs/NODE2_GUARDIAN_SETUP.md
|
||||||
docs/consolidation/README.md
|
docs/consolidation/README.md
|
||||||
docs/consolidation/SOURCES.md
|
docs/consolidation/SOURCES.md
|
||||||
docs/runbooks/DOCS_SERVICES_AUTOMATION_RUNBOOK.md
|
docs/runbooks/DOCS_SERVICES_AUTOMATION_RUNBOOK.md
|
||||||
|
|||||||
Reference in New Issue
Block a user