docs(platform): add policy configs, runbooks, ops scripts and platform documentation
Config policies (16 files): alert_routing, architecture_pressure, backlog, cost_weights, data_governance, incident_escalation, incident_intelligence, network_allowlist, nodes_registry, observability_sources, rbac_tools_matrix, release_gate, risk_attribution, risk_policy, slo_policy, tool_limits, tools_rollout Ops (22 files): Caddyfile, calendar compose, grafana voice dashboard, deployments/incidents logs, runbooks for alerts/audit/backlog/incidents/sofiia/voice, cron jobs, scripts (alert_triage, audit_cleanup, migrate_*, governance, schedule), task_registry, voice alerts/ha/latency/policy Docs (30+ files): HUMANIZED_STEPAN v2.7-v3 changelogs and runbooks, NODA1/NODA2 status and setup, audit index and traces, backlog, incident, supervisor, tools, voice, opencode, release, risk, aistalk, spacebot Made-with: Cursor
This commit is contained in:
389
docs/NODA2-MEMORY-QUICKSTART.md
Normal file
389
docs/NODA2-MEMORY-QUICKSTART.md
Normal file
@@ -0,0 +1,389 @@
|
||||
# 🚀 Memory Stack - NODA2 Quick Start
|
||||
|
||||
## ✅ Що вже готово:
|
||||
|
||||
1. **Cohere API Key** додано в .env ✅
|
||||
2. **Docker Compose конфігурація** створена ✅
|
||||
3. **Скрипти запуску** готові ✅
|
||||
|
||||
---
|
||||
|
||||
## 📦 Компоненти Memory Stack:
|
||||
|
||||
| Сервіс | Порт | Призначення | Статус |
|
||||
|--------|------|-------------|--------|
|
||||
| **Qdrant** | 6333, 6334 | Векторна БД | ⏳ To Start |
|
||||
| **PostgreSQL** | 5433 | Реляційна БД | ⏳ To Start |
|
||||
| **Neo4j** | 7474, 7687 | Графова БД | ⏳ To Start |
|
||||
| **Memory Service** | 8000 | API для пам'яті | ⏳ To Start |
|
||||
| **Redis** | 6379 | Кешування | ⏳ To Start |
|
||||
| **Adminer** | 8080 | UI для БД | ⏳ To Start |
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Запуск Memory Stack:
|
||||
|
||||
### Варіант 1: Через скрипт (рекомендовано)
|
||||
|
||||
```bash
|
||||
cd /Users/apple/github-projects/microdao-daarion
|
||||
./scripts/start-memory-node2.sh
|
||||
```
|
||||
|
||||
### Варіант 2: Напряму через Docker Compose
|
||||
|
||||
```bash
|
||||
cd /Users/apple/github-projects/microdao-daarion
|
||||
|
||||
# Запустити всі сервіси
|
||||
docker-compose -f docker-compose.memory-node2.yml up -d
|
||||
|
||||
# Перевірити статус
|
||||
docker-compose -f docker-compose.memory-node2.yml ps
|
||||
|
||||
# Переглянути логи
|
||||
docker-compose -f docker-compose.memory-node2.yml logs -f
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📝 Після запуску:
|
||||
|
||||
### 1. Перевірити здоров'я сервісів
|
||||
|
||||
```bash
|
||||
# Qdrant
|
||||
curl http://localhost:6333/healthz
|
||||
|
||||
# PostgreSQL
|
||||
docker exec dagi-postgres-node2 pg_isready -U daarion
|
||||
|
||||
# Memory Service
|
||||
curl http://localhost:8000/health
|
||||
|
||||
# Neo4j (може потребувати 30-40 сек)
|
||||
curl http://localhost:7474
|
||||
```
|
||||
|
||||
### 2. Ініціалізувати колекції Sofiia
|
||||
|
||||
```bash
|
||||
# Створити колекції для Sofiia
|
||||
python3 scripts/init-sofiia-memory.py
|
||||
```
|
||||
|
||||
Це створить:
|
||||
- `sofiia_messages` - історія повідомлень
|
||||
- `sofiia_docs` - документація
|
||||
- `sofiia_memory_items` - довгострокова пам'ять
|
||||
- `sofiia_user_context` - контекст користувачів
|
||||
|
||||
### 3. Перевірити колекції
|
||||
|
||||
```bash
|
||||
# Список всіх колекцій
|
||||
curl http://localhost:6333/collections | jq
|
||||
|
||||
# Інформація про конкретну колекцію
|
||||
curl http://localhost:6333/collections/sofiia_messages | jq
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🎯 Інтерфейси:
|
||||
|
||||
### Qdrant Dashboard
|
||||
- **URL:** http://localhost:6333/dashboard
|
||||
- **Функції:** Перегляд колекцій, пошук векторів, статистика
|
||||
|
||||
### Neo4j Browser
|
||||
- **URL:** http://localhost:7474
|
||||
- **Login:** neo4j
|
||||
- **Password:** daarion_node2_secret
|
||||
- **Функції:** Візуалізація графу, Cypher запити
|
||||
|
||||
### Adminer (PostgreSQL UI)
|
||||
- **URL:** http://localhost:8080
|
||||
- **System:** PostgreSQL
|
||||
- **Server:** postgres-node2
|
||||
- **Username:** daarion
|
||||
- **Password:** daarion_secret_node2
|
||||
- **Database:** daarion_memory
|
||||
|
||||
### Memory Service API
|
||||
- **Health:** http://localhost:8000/health
|
||||
- **API Docs:** http://localhost:8000/docs (Swagger UI)
|
||||
- **ReDoc:** http://localhost:8000/redoc
|
||||
|
||||
---
|
||||
|
||||
## 🔌 Підключення до Sofiia:
|
||||
|
||||
### Для OpenClaw:
|
||||
|
||||
```json
|
||||
{
|
||||
"agents": {
|
||||
"list": [
|
||||
{
|
||||
"id": "sofiia",
|
||||
"memory": {
|
||||
"enabled": true,
|
||||
"serviceUrl": "http://localhost:8000",
|
||||
"collections": {
|
||||
"messages": "sofiia_messages",
|
||||
"docs": "sofiia_docs",
|
||||
"memory": "sofiia_memory_items",
|
||||
"context": "sofiia_user_context"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Для Python коду:
|
||||
|
||||
```python
|
||||
import requests
|
||||
|
||||
# Збереження повідомлення
|
||||
response = requests.post(
|
||||
"http://localhost:8000/agents/sofiia/memory",
|
||||
json={
|
||||
"user_id": "telegram:123456",
|
||||
"channel_id": "telegram:sofiia",
|
||||
"content": "User asked about DAARION architecture",
|
||||
"role": "user",
|
||||
"metadata": {
|
||||
"topic": "architecture",
|
||||
"project": "DAARION"
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
# Отримання контексту
|
||||
context = requests.get(
|
||||
"http://localhost:8000/agents/sofiia/context",
|
||||
params={
|
||||
"user_id": "telegram:123456",
|
||||
"query": "архітектура",
|
||||
"limit": 10
|
||||
}
|
||||
)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔧 Корисні команди:
|
||||
|
||||
### Docker Compose
|
||||
|
||||
```bash
|
||||
# Зупинити всі сервіси
|
||||
docker-compose -f docker-compose.memory-node2.yml down
|
||||
|
||||
# Перезапустити конкретний сервіс
|
||||
docker-compose -f docker-compose.memory-node2.yml restart memory-service-node2
|
||||
|
||||
# Переглянути логи сервісу
|
||||
docker-compose -f docker-compose.memory-node2.yml logs -f memory-service-node2
|
||||
|
||||
# Статус всіх сервісів
|
||||
docker-compose -f docker-compose.memory-node2.yml ps
|
||||
```
|
||||
|
||||
### Qdrant
|
||||
|
||||
```bash
|
||||
# Список колекцій
|
||||
curl http://localhost:6333/collections
|
||||
|
||||
# Створити колекцію вручну
|
||||
curl -X PUT http://localhost:6333/collections/test_collection \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{"vectors": {"size": 1024, "distance": "Cosine"}}'
|
||||
|
||||
# Видалити колекцію
|
||||
curl -X DELETE http://localhost:6333/collections/test_collection
|
||||
```
|
||||
|
||||
### PostgreSQL
|
||||
|
||||
```bash
|
||||
# Підключитись до БД
|
||||
docker exec -it dagi-postgres-node2 psql -U daarion -d daarion_memory
|
||||
|
||||
# Створити таблицю
|
||||
CREATE TABLE test_table (
|
||||
id SERIAL PRIMARY KEY,
|
||||
name TEXT
|
||||
);
|
||||
|
||||
# Переглянути таблиці
|
||||
\dt
|
||||
```
|
||||
|
||||
### Neo4j
|
||||
|
||||
```bash
|
||||
# Підключитись через Cypher Shell
|
||||
docker exec -it dagi-neo4j-node2 cypher-shell -u neo4j -p daarion_node2_secret
|
||||
|
||||
# Створити тестовий вузол
|
||||
CREATE (n:Test {name: 'Sofiia'}) RETURN n;
|
||||
|
||||
# Переглянути всі вузли
|
||||
MATCH (n) RETURN n LIMIT 10;
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📊 Моніторинг:
|
||||
|
||||
### Перевірка використання ресурсів
|
||||
|
||||
```bash
|
||||
# Всі контейнери
|
||||
docker stats --no-stream
|
||||
|
||||
# Конкретний контейнер
|
||||
docker stats --no-stream dagi-qdrant-node2 dagi-postgres-node2 dagi-neo4j-node2
|
||||
```
|
||||
|
||||
### Перевірка дискового простору
|
||||
|
||||
```bash
|
||||
# Розмір даних
|
||||
du -sh /Users/apple/github-projects/microdao-daarion/data/*
|
||||
|
||||
# Docker volumes
|
||||
docker volume ls
|
||||
docker system df
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔄 Гібридний режим (NODA1 + NODA2):
|
||||
|
||||
### Увімкнути доступ до NODA1:
|
||||
|
||||
Відкоментуйте в `docker-compose.memory-node2.yml`:
|
||||
|
||||
```yaml
|
||||
environment:
|
||||
# Remote NODA1 access
|
||||
- REMOTE_QDRANT_HOST=144.76.224.179
|
||||
- REMOTE_QDRANT_PORT=6333
|
||||
- REMOTE_DATABASE_URL=postgresql://daarion_reader:***@144.76.224.179:5432/daarion_memory
|
||||
- READ_ONLY_MODE=false
|
||||
```
|
||||
|
||||
### Використання:
|
||||
|
||||
```python
|
||||
# Локальна пам'ять (NODA2)
|
||||
local_memory = MemoryService(url="http://localhost:8000")
|
||||
|
||||
# Віддалена пам'ять (NODA1)
|
||||
remote_memory = MemoryService(url="http://144.76.224.179:8000")
|
||||
|
||||
# Гібридний пошук
|
||||
results = await hybrid_search(
|
||||
query="архітектура",
|
||||
local_service=local_memory,
|
||||
remote_service=remote_memory
|
||||
)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🚨 Troubleshooting:
|
||||
|
||||
### Проблема: Qdrant не стартує
|
||||
|
||||
```bash
|
||||
# Перевірити логи
|
||||
docker logs dagi-qdrant-node2
|
||||
|
||||
# Перевірити права доступу
|
||||
ls -la /Users/apple/github-projects/microdao-daarion/data/qdrant-node2
|
||||
|
||||
# Перезапустити
|
||||
docker-compose -f docker-compose.memory-node2.yml restart qdrant-node2
|
||||
```
|
||||
|
||||
### Проблема: PostgreSQL не приймає підключення
|
||||
|
||||
```bash
|
||||
# Перевірити чи готовий
|
||||
docker exec dagi-postgres-node2 pg_isready
|
||||
|
||||
# Перевірити логи
|
||||
docker logs dagi-postgres-node2
|
||||
|
||||
# Перевірити пароль
|
||||
docker exec -it dagi-postgres-node2 psql -U daarion -d daarion_memory
|
||||
```
|
||||
|
||||
### Проблема: Memory Service не бачить Qdrant
|
||||
|
||||
```bash
|
||||
# Перевірити мережу
|
||||
docker network inspect dagi-memory-network-node2
|
||||
|
||||
# Перевірити DNS
|
||||
docker exec dagi-memory-service-node2 ping qdrant-node2
|
||||
|
||||
# Перевірити з'єднання
|
||||
docker exec dagi-memory-service-node2 curl http://qdrant-node2:6333/healthz
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ✅ Чек-лист:
|
||||
|
||||
- [ ] Cohere API Key в .env
|
||||
- [ ] Docker Compose запущено
|
||||
- [ ] Всі сервіси healthy
|
||||
- [ ] Колекції Sofiia створено
|
||||
- [ ] Memory Service API доступний
|
||||
- [ ] UI (Qdrant, Neo4j, Adminer) відкриваються
|
||||
- [ ] OpenClaw налаштовано
|
||||
- [ ] Тестове повідомлення збережено
|
||||
|
||||
---
|
||||
|
||||
## 🎯 Наступні кроки після запуску:
|
||||
|
||||
1. **Запустити Memory Stack**
|
||||
```bash
|
||||
./scripts/start-memory-node2.sh
|
||||
```
|
||||
|
||||
2. **Ініціалізувати колекції**
|
||||
```bash
|
||||
python3 scripts/init-sofiia-memory.py
|
||||
```
|
||||
|
||||
3. **Налаштувати OpenClaw**
|
||||
- Додати конфігурацію пам'яті
|
||||
|
||||
4. **Протестувати**
|
||||
- Зберегти тестове повідомлення
|
||||
- Отримати контекст
|
||||
- Перевірити в Qdrant UI
|
||||
|
||||
5. **Підключити Sofiia**
|
||||
- Telegram бот з пам'яттю
|
||||
- Notion інтеграція
|
||||
- GitHub інтеграція
|
||||
|
||||
---
|
||||
|
||||
**Готові до запуску! 🚀**
|
||||
|
||||
```bash
|
||||
./scripts/start-memory-node2.sh
|
||||
```
|
||||
Reference in New Issue
Block a user