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

61
scripts/deploy-helion-node1.sh Executable file
View File

@@ -0,0 +1,61 @@
#!/bin/bash
# Скрипт для розгортання Helion агента на НОДА1
set -e
NODE1_IP="144.76.224.179"
NODE1_USER="root"
NODE1_PASS="bRhfV7uNY9m6er"
PROJECT_ROOT="/opt/microdao-daarion"
echo "🚀 Розгортання Helion агента на НОДА1..."
# Перевірка SSH доступу
echo "📡 Перевірка доступу до НОДА1..."
sshpass -p "$NODE1_PASS" ssh -o StrictHostKeyChecking=no "$NODE1_USER@$NODE1_IP" "echo '✅ НОДА1 доступна'"
# Перевірка наявності gateway-bot
echo "📦 Перевірка наявності gateway-bot..."
if sshpass -p "$NODE1_PASS" ssh -o StrictHostKeyChecking=no "$NODE1_USER@$NODE1_IP" "test -d $PROJECT_ROOT/gateway-bot"; then
echo "✅ gateway-bot вже є на НОДА1"
else
echo "📤 Завантаження gateway-bot на НОДА1..."
sshpass -p "$NODE1_PASS" ssh -o StrictHostKeyChecking=no "$NODE1_USER@$NODE1_IP" "mkdir -p $PROJECT_ROOT/gateway-bot"
sshpass -p "$NODE1_PASS" scp -r -o StrictHostKeyChecking=no gateway-bot/* "$NODE1_USER@$NODE1_IP:$PROJECT_ROOT/gateway-bot/"
echo "✅ gateway-bot завантажено"
fi
# Завантаження оновленого docker-compose.node1.yml
echo "📤 Завантаження docker-compose.node1.yml..."
sshpass -p "$NODE1_PASS" scp -o StrictHostKeyChecking=no docker-compose.node1.yml "$NODE1_USER@$NODE1_IP:$PROJECT_ROOT/"
# Запуск Gateway
echo "🐳 Запуск Gateway сервісу..."
sshpass -p "$NODE1_PASS" ssh -o StrictHostKeyChecking=no "$NODE1_USER@$NODE1_IP" "
cd $PROJECT_ROOT && \
docker compose -f docker-compose.node1.yml up -d --build gateway
"
# Очікування запуску
echo "⏳ Очікування запуску Gateway (10 секунд)..."
sleep 10
# Перевірка статусу
echo "🔍 Перевірка статусу Gateway..."
sshpass -p "$NODE1_PASS" ssh -o StrictHostKeyChecking=no "$NODE1_USER@$NODE1_IP" "
docker ps --format 'table {{.Names}}\t{{.Status}}' | grep gateway && \
curl -s http://localhost:9300/health | head -5
"
# Налаштування Telegram webhook
echo "🔗 Налаштування Telegram webhook для Helion..."
HELION_TOKEN="8112062582:AAGS-HwRLEI269lDutLtAJTFArsIq31YNhE"
WEBHOOK_URL="https://gateway.daarion.city/8112062582/telegram/webhook"
curl -X POST "https://api.telegram.org/bot$HELION_TOKEN/setWebhook" \
-d "url=$WEBHOOK_URL"
echo ""
echo "✅ Helion агент розгорнуто на НОДА1!"
echo "📋 Webhook: $WEBHOOK_URL"
echo "🔍 Перевірка: curl http://144.76.224.179:9300/health"

View File

@@ -0,0 +1,110 @@
#!/bin/bash
# Скрипт для deployment DAGI Router та Swapper Service на НОДА1
# Використання: ./scripts/deploy-router-swapper-node1.sh
set -e
NODE1_IP="144.76.224.179"
NODE1_USER="root"
PROJECT_ROOT="/opt/microdao-daarion"
echo "🚀 Deployment DAGI Router та Swapper Service на НОДА1"
echo "=================================================="
echo ""
# Перевірка SSH доступу
echo "📡 Перевірка SSH доступу до НОДА1..."
if ! ssh -o ConnectTimeout=5 ${NODE1_USER}@${NODE1_IP} "echo 'SSH OK'" 2>/dev/null; then
echo "❌ Помилка: Неможливо підключитися до НОДА1"
echo " Перевірте SSH ключі або пароль"
exit 1
fi
echo "✅ SSH доступ працює"
echo ""
# Перевірка Docker
echo "🐳 Перевірка Docker на НОДА1..."
ssh ${NODE1_USER}@${NODE1_IP} "docker --version && docker compose version" || {
echo "❌ Помилка: Docker не встановлено на НОДА1"
exit 1
}
echo "✅ Docker встановлено"
echo ""
# Перевірка проекту
echo "📁 Перевірка проекту на НОДА1..."
ssh ${NODE1_USER}@${NODE1_IP} "cd ${PROJECT_ROOT} && pwd && git status" || {
echo "❌ Помилка: Проєкт не знайдено в ${PROJECT_ROOT}"
exit 1
}
echo "✅ Проєкт знайдено"
echo ""
# Оновлення коду
echo "🔄 Оновлення коду з репозиторію..."
ssh ${NODE1_USER}@${NODE1_IP} "cd ${PROJECT_ROOT} && git pull origin main" || {
echo "⚠️ Попередження: Не вдалося оновити код (можливо вже актуальний)"
}
echo "✅ Код оновлено"
echo ""
# Перевірка docker-compose.yml
echo "📋 Перевірка docker-compose.yml..."
ssh ${NODE1_USER}@${NODE1_IP} "cd ${PROJECT_ROOT} && test -f docker-compose.yml" || {
echo "❌ Помилка: docker-compose.yml не знайдено"
exit 1
}
echo "✅ docker-compose.yml знайдено"
echo ""
# Перевірка конфігурацій
echo "⚙️ Перевірка конфігурацій..."
ssh ${NODE1_USER}@${NODE1_IP} "cd ${PROJECT_ROOT} && \
test -f services/router/router_config.yaml && \
test -f services/swapper-service/config/swapper_config_node1.yaml" || {
echo "❌ Помилка: Конфігураційні файли не знайдено"
exit 1
}
echo "✅ Конфігурації знайдено"
echo ""
# Перевірка залежностей
echo "🔗 Перевірка залежностей (NATS, Ollama)..."
ssh ${NODE1_USER}@${NODE1_IP} "cd ${PROJECT_ROOT} && \
docker compose ps | grep -E 'nats|ollama' || echo '⚠️ NATS або Ollama не запущені'"
echo ""
# Запуск Router та Swapper
echo "🚀 Запуск DAGI Router та Swapper Service..."
ssh ${NODE1_USER}@${NODE1_IP} "cd ${PROJECT_ROOT} && \
docker compose up -d dagi-router swapper-service 2>&1" || {
echo "⚠️ Попередження: Можливо сервіси вже запущені або мають інші назви"
echo " Перевірте: docker compose ps"
}
echo ""
# Очікування запуску
echo "⏳ Очікування запуску сервісів (10 секунд)..."
sleep 10
# Перевірка статусу
echo "📊 Перевірка статусу сервісів..."
ssh ${NODE1_USER}@${NODE1_IP} "cd ${PROJECT_ROOT} && \
docker compose ps dagi-router swapper-service"
echo ""
# Health checks
echo "🏥 Health checks..."
echo "Router:"
ssh ${NODE1_USER}@${NODE1_IP} "curl -s http://localhost:9102/health || echo '❌ Router недоступний'"
echo ""
echo "Swapper:"
ssh ${NODE1_USER}@${NODE1_IP} "curl -s http://localhost:8890/health || echo '❌ Swapper недоступний'"
echo ""
echo "✅ Deployment завершено!"
echo ""
echo "📝 Наступні кроки:"
echo " 1. Перевірте логи: docker compose logs dagi-router swapper-service"
echo " 2. Перевірте інтеграцію: curl http://localhost:9102/providers"
echo " 3. Перевірте моделі: curl http://localhost:8890/models"

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"