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:
61
scripts/deploy-helion-node1.sh
Executable file
61
scripts/deploy-helion-node1.sh
Executable 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"
|
||||
110
scripts/deploy-router-swapper-node1.sh
Executable file
110
scripts/deploy-router-swapper-node1.sh
Executable 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"
|
||||
116
scripts/deploy-router-swapper-node3.sh
Executable file
116
scripts/deploy-router-swapper-node3.sh
Executable 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"
|
||||
Reference in New Issue
Block a user