feat: implement TTS, Document processing, and Memory Service /facts API

- TTS: xtts-v2 integration with voice cloning support
- Document: docling integration for PDF/DOCX/PPTX processing
- Memory Service: added /facts/upsert, /facts/{key}, /facts endpoints
- Added required dependencies (TTS, docling)
This commit is contained in:
Apple
2026-01-17 08:16:37 -08:00
parent a9fcadc6e2
commit 5290287058
121 changed files with 17071 additions and 436 deletions

View File

@@ -0,0 +1,116 @@
#!/bin/bash
# Скрипт для deployment DAGI Router та Swapper Service на НОДА3
# Використання: ./scripts/deploy-router-swapper-node3.sh
set -e
NODE3_IP="80.77.35.151"
NODE3_USER="zevs"
NODE3_PORT="33147"
PROJECT_ROOT="~/microdao-daarion"
GIT_REPO_SSH="git@github.com:IvanTytar/microdao-daarion.git"
GIT_REPO_HTTPS="https://github.com/IvanTytar/microdao-daarion.git"
echo "🚀 Deployment DAGI Router та Swapper Service на НОДА3"
echo "=================================================="
echo ""
# Перевірка SSH доступу
echo "📡 Перевірка SSH доступу до НОДА3..."
if ! ssh -o ConnectTimeout=5 -p ${NODE3_PORT} ${NODE3_USER}@${NODE3_IP} "echo 'SSH OK'" 2>/dev/null; then
echo "❌ Помилка: Неможливо підключитися до НОДА3"
echo " Перевірте SSH ключі або пароль"
exit 1
fi
echo "✅ SSH доступ працює"
echo ""
# Перевірка Docker Compose
echo "🐳 Перевірка Docker Compose на НОДА3..."
ssh -p ${NODE3_PORT} ${NODE3_USER}@${NODE3_IP} "docker --version && docker compose version" || {
echo "❌ Помилка: Docker Compose не встановлено на НОДА3"
exit 1
}
echo "✅ Docker Compose встановлено"
echo ""
# Перевірка/створення директорії проєкту
echo "📁 Перевірка проєкту на НОДА3..."
if ssh -p ${NODE3_PORT} ${NODE3_USER}@${NODE3_IP} "test -d ${PROJECT_ROOT}" 2>/dev/null; then
echo "✅ Проєкт знайдено, оновлюємо..."
ssh -p ${NODE3_PORT} ${NODE3_USER}@${NODE3_IP} "cd ${PROJECT_ROOT} && git pull origin main || echo '⚠️ Git pull не вдався'"
else
echo "📥 Клонуємо проєкт..."
ssh -p ${NODE3_PORT} ${NODE3_USER}@${NODE3_IP} "cd ~ && \
(git clone ${GIT_REPO_SSH} microdao-daarion 2>/dev/null || \
git clone ${GIT_REPO_HTTPS} microdao-daarion) || \
echo '⚠️ Git clone не вдався'"
fi
echo ""
# Перевірка docker-compose.node3.yml
echo "📋 Перевірка docker-compose.node3.yml..."
ssh -p ${NODE3_PORT} ${NODE3_USER}@${NODE3_IP} "cd ${PROJECT_ROOT} && test -f docker-compose.node3.yml" || {
echo "❌ Помилка: docker-compose.node3.yml не знайдено"
echo " Переконайтеся, що проєкт клоновано правильно"
exit 1
}
echo "✅ docker-compose.node3.yml знайдено"
echo ""
# Перевірка конфігурацій
echo "⚙️ Перевірка конфігурацій..."
ssh -p ${NODE3_PORT} ${NODE3_USER}@${NODE3_IP} "cd ${PROJECT_ROOT} && \
test -f services/router/router_config.yaml && \
test -f services/swapper-service/config/swapper_config_node3.yaml" || {
echo "❌ Помилка: Конфігураційні файли не знайдено"
exit 1
}
echo "✅ Конфігурації знайдено"
echo ""
# Перевірка/створення Docker network
echo "🔗 Перевірка Docker network..."
ssh -p ${NODE3_PORT} ${NODE3_USER}@${NODE3_IP} "docker network inspect dagi-network >/dev/null 2>&1 || docker network create dagi-network"
echo "✅ Docker network готово"
echo ""
# Перевірка Ollama
echo "🤖 Перевірка Ollama..."
ssh -p ${NODE3_PORT} ${NODE3_USER}@${NODE3_IP} "docker ps | grep -q ollama || echo '⚠️ Ollama не запущений (можливо потрібно запустити окремо)'"
echo ""
# Запуск Router та Swapper через Docker Compose
echo "🚀 Запуск DAGI Router та Swapper Service через Docker Compose..."
ssh -p ${NODE3_PORT} ${NODE3_USER}@${NODE3_IP} "cd ${PROJECT_ROOT} && \
docker compose -f docker-compose.node3.yml up -d --build 2>&1" || {
echo "⚠️ Попередження: Можливо є помилки при запуску"
echo " Перевірте логи: docker compose -f docker-compose.node3.yml logs"
}
echo ""
# Очікування запуску
echo "⏳ Очікування запуску сервісів (15 секунд)..."
sleep 15
# Перевірка статусу
echo "📊 Перевірка статусу сервісів..."
ssh -p ${NODE3_PORT} ${NODE3_USER}@${NODE3_IP} "cd ${PROJECT_ROOT} && \
docker compose -f docker-compose.node3.yml ps"
echo ""
# Health checks
echo "🏥 Health checks..."
echo "Router:"
ssh -p ${NODE3_PORT} ${NODE3_USER}@${NODE3_IP} "curl -s http://localhost:9102/health || echo '❌ Router недоступний'"
echo ""
echo "Swapper:"
ssh -p ${NODE3_PORT} ${NODE3_USER}@${NODE3_IP} "curl -s http://localhost:8890/health || echo '❌ Swapper недоступний'"
echo ""
echo "✅ Deployment завершено!"
echo ""
echo "📝 Наступні кроки:"
echo " 1. Перевірте логи: docker compose -f docker-compose.node3.yml logs"
echo " 2. Перевірте інтеграцію: curl http://localhost:9102/providers"
echo " 3. Перевірте моделі: curl http://localhost:8890/models"