# 🚀 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 ```