Synaplan Multimodal Gateway
официальныйПредлагает полную функциональность сервера с открытым исходным кодом в качестве примера MCP.
Что можно делать с Synaplan Multimodal Gateway?
- Запрос к RAG-базе знаний — Задавайте вопросы по загруженным документам и получайте ответы ИИ, основанные на вашем контенте, через
POST /mcp. - Извлечение воспоминаний ИИ — Просматривайте профили пользователей и историю взаимодействий, хранящиеся в векторном поиске Qdrant, через конечную точку MCP.
- Декомпозиция сложных запросов — Отправляйте многошаговые задачи, которые планировщик ИИ разбивает на граф задач (извлечение, обобщение, генерация) и транслирует ход выполнения в реальном времени.
- Управление чат-каналами — Подключайте и настраивайте WhatsApp, электронную почту или встраиваемые чат-виджеты для многоканальных диалогов на базе ИИ.
- Подключение внешних MCP-серверов — Регистрируйте собственные MCP-серверы в каналах, чтобы многозадачный планировщик мог получать от них актуальные данные через узлы
mcp_fetch.
Документация
Synaplan
Управление знаниями на базе ИИ с RAG, чат-виджетами и многоканальной интеграцией.
Рабочий экземпляр: web.synaplan.com | Документация: docs.synaplan.com | API: Swagger UI

Предварительные требования
- 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 |
| API | http://localhost:8000 |
| Документация API | http://localhost:8000/api/doc |
| phpMyAdmin | http://localhost:8082 |
| MailHog | http://localhost:8025 |
Учетные данные для входа по умолчанию:
| Пароль | Уровень | |
|---|---|---|
| [email protected] | admin123 | ADMIN |
| [email protected] | demo123 | PRO |
| [email protected] | test123 | NEW (неподтвержденный) |
Возможности
- 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_ENABLED—app: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 | Поиск и обработка документов |
| Чат-виджет | Встраивание чата на сайты |
| Настройка Meta Business API | |
| Интеграция почтового канала |
Связанные репозитории
| Репозиторий | Назначение |
|---|---|
| synaplan | Основное приложение (этот репозиторий) |
| synaplan-docs | Сайт публичной документации (docs.synaplan.com) |
| synaplan-tts | Опциональный сервис Piper TTS |
| synaplan-sortx | Плагин сортировки документов + локальный инструмент |
| synaplan-charts | Helm-чарты для Kubernetes |
| synaplan-platform | Конфигурации для промышленного развертывания |
Структура проекта
synaplan/
├── backend/ # Symfony PHP API
├── frontend/ # Vue.js SPA
├── docs/ # Documentation
├── _docker/ # Docker configs
└── plugins/ # Plugin system
Участие в разработке
См. AGENTS.md для руководства по разработке и стандартам кода.