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
9.3 KiB
9.3 KiB
🚀 Memory Stack - NODA2 Quick Start
✅ Що вже готово:
- Cohere API Key додано в .env ✅
- Docker Compose конфігурація створена ✅
- Скрипти запуску готові ✅
📦 Компоненти 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: Через скрипт (рекомендовано)
cd /Users/apple/github-projects/microdao-daarion
./scripts/start-memory-node2.sh
Варіант 2: Напряму через Docker Compose
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. Перевірити здоров'я сервісів
# 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
# Створити колекції для Sofiia
python3 scripts/init-sofiia-memory.py
Це створить:
sofiia_messages- історія повідомленьsofiia_docs- документаціяsofiia_memory_items- довгострокова пам'ятьsofiia_user_context- контекст користувачів
3. Перевірити колекції
# Список всіх колекцій
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:
{
"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 коду:
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
# Зупинити всі сервіси
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
# Список колекцій
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
# Підключитись до БД
docker exec -it dagi-postgres-node2 psql -U daarion -d daarion_memory
# Створити таблицю
CREATE TABLE test_table (
id SERIAL PRIMARY KEY,
name TEXT
);
# Переглянути таблиці
\dt
Neo4j
# Підключитись через 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;
📊 Моніторинг:
Перевірка використання ресурсів
# Всі контейнери
docker stats --no-stream
# Конкретний контейнер
docker stats --no-stream dagi-qdrant-node2 dagi-postgres-node2 dagi-neo4j-node2
Перевірка дискового простору
# Розмір даних
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:
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
Використання:
# Локальна пам'ять (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 не стартує
# Перевірити логи
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 не приймає підключення
# Перевірити чи готовий
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
# Перевірити мережу
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 налаштовано
- Тестове повідомлення збережено
🎯 Наступні кроки після запуску:
-
Запустити Memory Stack
./scripts/start-memory-node2.sh -
Ініціалізувати колекції
python3 scripts/init-sofiia-memory.py -
Налаштувати OpenClaw
- Додати конфігурацію пам'яті
-
Протестувати
- Зберегти тестове повідомлення
- Отримати контекст
- Перевірити в Qdrant UI
-
Підключити Sofiia
- Telegram бот з пам'яттю
- Notion інтеграція
- GitHub інтеграція
Готові до запуску! 🚀
./scripts/start-memory-node2.sh