Synaplan Multimodal Gateway

официальный

Предлагает полную функциональность сервера с открытым исходным кодом в качестве примера MCP.

Что можно делать с Synaplan Multimodal Gateway?

  • Запрос к RAG-базе знаний — Задавайте вопросы по загруженным документам и получайте ответы ИИ, основанные на вашем контенте, через POST /mcp.
  • Извлечение воспоминаний ИИ — Просматривайте профили пользователей и историю взаимодействий, хранящиеся в векторном поиске Qdrant, через конечную точку MCP.
  • Декомпозиция сложных запросов — Отправляйте многошаговые задачи, которые планировщик ИИ разбивает на граф задач (извлечение, обобщение, генерация) и транслирует ход выполнения в реальном времени.
  • Управление чат-каналами — Подключайте и настраивайте WhatsApp, электронную почту или встраиваемые чат-виджеты для многоканальных диалогов на базе ИИ.
  • Подключение внешних MCP-серверов — Регистрируйте собственные MCP-серверы в каналах, чтобы многозадачный планировщик мог получать от них актуальные данные через узлы mcp_fetch.

Документация

Synaplan

Управление знаниями на базе ИИ с RAG, чат-виджетами и многоканальной интеграцией.

License

Рабочий экземпляр: web.synaplan.com  |  Документация: docs.synaplan.com  |  API: Swagger UI

Synaplan Dashboard


Предварительные требования

  • Docker + Docker Compose v2 (Docker Desktop на macOS/Windows или Docker Engine + плагин Compose на Linux)
  • Git
  • Минимум 8 ГБ ОЗУ (рекомендуется 16 ГБ для стандартной установки с локальным ИИ)
  • ~9 ГБ свободного места на диске для стандартной установки (~5 ГБ для минимальной)
  • Свободные TCP-порты 5173, 8000, 8082, 8025, 3307, 6333, 11435

Mac на Apple Silicon (M1–M4): Образы контейнеров Synaplan публикуются для linux/amd64, поэтому они работают в режиме эмуляции на Apple Silicon. В Docker Desktop → Settings → General включите «Use Rosetta for x86/amd64 emulation on Apple Silicon» (macOS 13+) для значительно более быстрой и стабильной работы контейнеров по сравнению с QEMU по умолчанию. Всё работает и без этого — просто медленнее, и первая сборка занимает больше времени.

Быстрый старт

git clone https://github.com/metadist/synaplan.git
cd synaplan
docker compose up -d

Откройте http://localhost:5173интерфейс будет готов примерно через 2 минуты. При стандартной установке локальные модели Ollama (gpt-oss:20b, bge-m3, ~14 ГБ всего) продолжают загружаться в фоновом режиме — чат, использующий локальный ИИ, заработает, как только завершится эта загрузка (docker compose logs -f backend показывает прогресс). Для самого быстрого первого знакомства используйте Минимальную установку ниже.


Варианты установки

РежимКомандаРазмерЛучше всего подходит для
Стандартныйdocker compose up -d~9 ГБПолный функционал, локальный ИИ
Минимальныйdocker compose -f docker-compose-minimal.yml up -d~5 ГБТолько облачный ИИ (Groq/OpenAI)

Для минимальной установки задайте ваш API-ключ перед запуском стека, чтобы он был доступен при первой загрузке (это позволит избежать перезапуска). Получите бесплатный ключ на console.groq.com:

echo "GROQ_API_KEY=your_key" >> backend/.env
docker compose -f docker-compose-minimal.yml up -d

Уже запустили без ключа? Добавьте его и перезапустите бэкенд:

echo "GROQ_API_KEY=your_key" >> backend/.env && docker compose restart backend

Доступ

СервисURL
Приложениеhttp://localhost:5173
APIhttp://localhost:8000
Документация APIhttp://localhost:8000/api/doc
phpMyAdminhttp://localhost:8082
MailHoghttp://localhost:8025

Учетные данные для входа по умолчанию:

EmailПарольУровень
[email protected]admin123ADMIN
[email protected]demo123PRO
[email protected]test123NEW (неподтвержденный)

Возможности

  • AI-чат — Ollama, OpenAI, Anthropic, Groq, Gemini
  • Многозадачная маршрутизация — ИИ-планировщик разбивает сложные запросы на граф задач (извлечь → обобщить → сгенерировать → ответить) и транслирует карточки задач в реальном времени по мере выполнения шагов
  • RAG-поиск — Семантический поиск по документам с помощью MariaDB VECTOR или Qdrant
  • Чат-виджет — Встраивание на любой сайт (руководство по виджету)
  • Живая поддержка — Слой WebSocket в реальном времени (Centrifugo + Redis): перехват оператором чатов виджета, индикаторы набора текста, уведомления оператора (руководство по realtime)
  • WhatsApp — Интеграция с Meta Business API
  • Email — Ответы на письма с помощью ИИ
  • Аудио — Транскрипция Whisper (ввод) + опционально synaplan-tts (вывод)
  • Документы — PDF, Word, Excel, изображения с OCR
  • Память ИИ — Профилирование пользователей с векторным поиском Qdrant
  • Система обратной связи — Сбор и анализ обратной связи на базе Qdrant
  • Плагины — Неинвазивная система плагинов (руководство по плагинам)
  • MCP-сервер (ранний доступ) — Подключение AI-клиентов (Claude, Cursor, …) по протоколу Model Context Protocol; ваши RAG и память становятся инструментами по адресу POST /mcp (руководство по MCP)
  • MCP-клиент (ранний доступ) — Подключение ваших MCP-серверов (CRM, wiki, n8n, …) в разделе Channels → MCP Servers; многозадачный планировщик получает от них актуальные данные через узлы DAG mcp_fetch — только чтение, защита от SSRF, включение для каждой темы отдельно. Включается с помощью заданных флагов BCONFIG (MCP.CLIENT_ENABLED, MULTITASK.MCP_FETCH_ENABLEDapp:seed включает их при развертывании; явная строка 0 служит аварийным выключателем для оператора). См. docs/MULTITASK_DATA_NODES.md

Векторная база данных Qdrant

Qdrant работает как внутренний сервис Docker — настройка не требуется. Она обеспечивает работу памяти ИИ, RAG-поиска по документам и системы обратной связи.

Запускается автоматически с docker compose up -d. Synaplan полностью работоспособен и без нее (память и векторный поиск будут отключены).


Realtime и фоновая обработка

Оба compose-файла также запускают три внутренних сервиса (без портов хоста, настройка не требуется):

СервисРоль
redisОбязательная общая инфраструктура: кэш, сессии, блокировки, ограничение частоты, очереди сообщений (Redis Streams), движок Centrifugo
centrifugoШлюз WebSocket для функций реального времени (перехват живого чата, индикаторы набора текста, уведомления оператора) — браузеры подключаются в пределах того же источника через /connection/websocket
workerПотребитель Symfony Messenger, выполняющий асинхронные задачи (обработка ИИ, индексирование документов, обход виджетов)

В многоузловом кластере все узлы используют один Redis, поэтому события WebSocket, опубликованные на одном узле, достигают браузеров, подключенных к любому другому. Подробнее: docs/REALTIME.md.


Преобразование текста в речь (опционально)

Для голосового вывода запустите synaplan-tts вместе с Synaplan:

git clone https://github.com/metadist/synaplan-tts.git && cd synaplan-tts && docker compose up -d

Основные команды

# Logs
docker compose logs -f backend

# Restart
docker compose restart backend

# Reset database
docker compose down -v && docker compose up -d

# Run tests
make test

# Code quality
make lint

Документация

Пользовательская документация и документация по API находится на docs.synaplan.com. Исходный код: metadist/synaplan-docs.

Руководства в репозитории (для разработчиков, работающих с этой кодовой базой):

РуководствоОписание
УстановкаПодробные инструкции по установке
КонфигурацияПеременные окружения, API-ключи
РазработкаКоманды, тестирование, архитектура
Realtime / WebSocketsСлой реального времени Centrifugo + Redis, многоузловое развертывание
Система RAGПоиск и обработка документов
Чат-виджетВстраивание чата на сайты
WhatsAppНастройка Meta Business API
EmailИнтеграция почтового канала

Связанные репозитории

РепозиторийНазначение
synaplanОсновное приложение (этот репозиторий)
synaplan-docsСайт публичной документации (docs.synaplan.com)
synaplan-ttsОпциональный сервис Piper TTS
synaplan-sortxПлагин сортировки документов + локальный инструмент
synaplan-chartsHelm-чарты для Kubernetes
synaplan-platformКонфигурации для промышленного развертывания

Структура проекта

synaplan/
├── backend/        # Symfony PHP API
├── frontend/       # Vue.js SPA
├── docs/           # Documentation
├── _docker/        # Docker configs
└── plugins/        # Plugin system

Участие в разработке

См. AGENTS.md для руководства по разработке и стандартам кода.


Лицензия

Apache-2.0