Synaplan Multimodal Gateway

официальный

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

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

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

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

Synaplan

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

License

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

Watch the Synaplan demo

▶ Смотрите демо на YouTube


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

  • 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ПарольУровень
admin@synaplan.comadmin123ADMIN
demo@synaplan.comdemo123PRO
test@example.comtest123NEW (неподтвержденный)

Возможности

  • ИИ-чат — Ollama, OpenAI, Anthropic, Groq, Gemini
  • Многозадачная маршрутизация — ИИ-планировщик разбивает сложные запросы на граф задач (извлечь → обобщить → сгенерировать → ответить) и в реальном времени транслирует карточки задач по мере выполнения шагов
  • Поиск RAG — Семантический поиск по документам с помощью MariaDB VECTOR или Qdrant
  • Чат-виджет — Встраивание на любой сайт (руководство по виджету)
  • Живая поддержка — Слой WebSocket реального времени (Centrifugo + Redis): перехват чатов виджета оператором, индикаторы набора текста, уведомления оператора (руководство по реальному времени)
  • WhatsApp — Интеграция с Meta Business API
  • Email — Ответы на письма с помощью ИИ
  • Аудио — Транскрипция Whisper (ввод) + опционально synaplan-tts (вывод)
  • Документы — PDF, Word, Excel, изображения с OCR
  • ИИ-память — Профилирование пользователей с векторным поиском Qdrant
  • Система обратной связи — Сбор и анализ обратной связи на базе Qdrant
  • Плагины — Неинвазивная система плагинов (руководство по плагинам)
  • MCP-сервер (ранний доступ) — Подключение ИИ-клиентов (Claude, Cursor, …) по протоколу Model Context Protocol; ваши RAG и память становятся инструментами по адресу POST /mcp (руководство по MCP)
  • MCP-клиент (ранний доступ) — Подключайте свои MCP-серверы (CRM, wiki, n8n, …) в разделе Каналы → MCP-серверы; многозадачный планировщик получает актуальные данные с них через узлы 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 полностью работоспособен и без нее (память и векторный поиск будут отключены).


Реальное время и фоновая обработка

Оба файла 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-ключи
РазработкаКоманды, тестирование, архитектура
Реальное время / 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