Synaplan Multimodal Gateway

officiel

Offers the complete functionality of the Open Source server as a MCP example

Que pouvez-vous faire avec Synaplan Multimodal Gateway ?

  • Query RAG knowledge base — Ask questions against your uploaded documents and get AI answers grounded in your own content via POST /mcp.
  • Retrieve AI memories — Look up user profiles and interaction history stored in Qdrant vector search through the MCP endpoint.
  • Decompose complex requests — Submit multi-step tasks that the AI planner breaks into a task graph (extract, summarize, generate) and streams back live progress.
  • Manage chat channels — Connect and configure WhatsApp, email, or embedded chat widgets for multi-channel AI-powered conversations.
  • Connect external MCP servers — Register your own MCP servers under Channels so the multi-task planner can pull live data from them via mcp_fetch nodes.

Documentation

Synaplan

Gestion des connaissances alimentée par l'IA avec RAG, widgets de chat et intégration multi-canal.

License

Instance en direct : web.synaplan.com  |  Documentation : docs.synaplan.com  |  API : Swagger UI

Synaplan Dashboard


Prérequis

  • Docker + Docker Compose v2 (Docker Desktop sur macOS/Windows, ou Docker Engine + le plugin Compose sur Linux)
  • Git
  • 8 Go de RAM minimum (16 Go recommandés pour l'installation standard avec IA locale)
  • ~9 Go d'espace disque libre pour l'installation standard (~5 Go pour la version minimale)
  • Ports TCP libres 5173, 8000, 8082, 8025, 3307, 6333, 11435

Macs Apple Silicon (M1–M4) : Les images de conteneurs de Synaplan sont publiées pour linux/amd64, elles s'exécutent donc sous émulation sur Apple Silicon. Dans Docker Desktop → Paramètres → Général, activez "Utiliser Rosetta pour l'émulation x86/amd64 sur Apple Silicon" (macOS 13+) pour des conteneurs beaucoup plus rapides et stables qu'avec QEMU par défaut. Tout fonctionne sans cela — c'est juste plus lent, et la première construction prend plus de temps.

Démarrage rapide

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

Ouvrez http://localhost:5173 — l'interface utilisateur est prête en ~2 minutes. Avec l'installation standard, les modèles Ollama locaux (gpt-oss:20b, bge-m3, ~14 Go au total) continuent de se télécharger en arrière-plan — le chat utilisant l'IA locale commencera à fonctionner une fois ce téléchargement terminé (docker compose logs -f backend affiche la progression). Pour une première expérience plus rapide, utilisez l'installation Minimale ci-dessous.


Options d'installation

ModeCommandeTailleIdéal pour
Standarddocker compose up -d~9 GoFonctionnalités complètes, IA locale
Minimaledocker compose -f docker-compose-minimal.yml up -d~5 GoIA cloud uniquement (Groq/OpenAI)

Pour l'installation minimale, définissez votre clé API avant de démarrer la pile afin que le premier démarrage la voie déjà (évite un redémarrage). Obtenez une clé gratuite sur console.groq.com :

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

Déjà démarré sans clé ? Ajoutez-la et redémarrez le backend :

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

Accès

ServiceURL
Applicationhttp://localhost:5173
APIhttp://localhost:8000
Documentation APIhttp://localhost:8000/api/doc
phpMyAdminhttp://localhost:8082
MailHoghttp://localhost:8025

Identifiants de connexion par défaut :

EmailMot de passeNiveau
[email protected]admin123ADMIN
[email protected]demo123PRO
[email protected]test123NOUVEAU (non vérifié)

Fonctionnalités

  • Chat IA — Ollama, OpenAI, Anthropic, Groq, Gemini
  • Routage multi-tâches — Un planificateur IA décompose les requêtes complexes en un graphe de tâches (extraire → résumer → générer → répondre) et diffuse des cartes de tâches en direct pendant l'exécution des étapes
  • Recherche RAG — Recherche sémantique de documents avec MariaDB VECTOR ou Qdrant
  • Widget de chat — Intégrez sur n'importe quel site web (guide du widget)
  • Support en direct — Couche WebSocket en temps réel (Centrifugo + Redis) : prise de contrôle humaine des chats du widget, indicateurs de frappe, notifications aux opérateurs (guide temps réel)
  • WhatsApp — Intégration de l'API Meta Business
  • Email — Réponses par email alimentées par l'IA
  • Audio — Transcription Whisper (entrée) + optionnel synaplan-tts (sortie)
  • Documents — PDF, Word, Excel, images avec OCR
  • Mémoires IA — Profilage utilisateur avec recherche vectorielle Qdrant
  • Système de feedback — Capture et analyse des retours alimentées par Qdrant
  • Plugins — Système de plugins non invasif (guide des plugins)
  • Serveur MCP (accès anticipé) — Connectez des clients IA (Claude, Cursor, …) via le Model Context Protocol ; votre RAG et vos mémoires deviennent des outils sur POST /mcp (guide MCP)
  • Client MCP (accès anticipé) — Connectez vos serveurs MCP (CRM, wiki, n8n, …) sous Canaux → Serveurs MCP ; le planificateur multi-tâches en extrait des données en direct via des nœuds DAG mcp_fetch — lecture seule, protégé contre les SSRF, activation par sujet. Activé par des indicateurs BCONFIG préconfigurés (MCP.CLIENT_ENABLED, MULTITASK.MCP_FETCH_ENABLEDapp:seed les active au déploiement ; une ligne 0 explicite sert d'interrupteur d'arrêt pour l'opérateur). Voir docs/MULTITASK_DATA_NODES.md

Base de données vectorielle Qdrant

Qdrant s'exécute comme un service Docker interne — aucune configuration nécessaire. Il alimente les mémoires IA, la recherche de documents RAG et le système de feedback.

Démarre automatiquement avec docker compose up -d. Synaplan fonctionne parfaitement sans lui (les mémoires et la recherche vectorielle seront désactivées).


Temps réel et traitement en arrière-plan

Les deux fichiers compose démarrent également trois services internes (pas de ports hôtes, aucune configuration nécessaire) :

ServiceRôle
redisInfrastructure partagée obligatoire : cache, sessions, verrous, limites de débit, files de messages (Redis Streams), moteur Centrifugo
centrifugoPasserelle WebSocket pour les fonctionnalités en temps réel (prise de contrôle de chat en direct, indicateurs de frappe, notifications aux opérateurs) — les navigateurs se connectent en même origine via /connection/websocket
workerConsommateur Symfony Messenger qui exécute les tâches asynchrones (traitement IA, indexation de documents, exploration de widgets)

Dans un cluster multi-nœuds, tous les nœuds partagent un seul Redis, de sorte que les événements WebSocket publiés sur un nœud atteignent les navigateurs connectés à n'importe quel autre. Détails : docs/REALTIME.md.


Synthèse vocale (Optionnel)

Pour la sortie vocale, exécutez synaplan-tts aux côtés de Synaplan :

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

Commandes courantes

# 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

Documentation

La documentation utilisateur et API est disponible sur docs.synaplan.com. Source : metadist/synaplan-docs.

Guides internes au dépôt (pour les développeurs travaillant sur cette base de code) :

GuideDescription
InstallationInstructions d'installation détaillées
ConfigurationVariables d'environnement, clés API
DéveloppementCommandes, tests, architecture
Temps réel / WebSocketsCouche temps réel Centrifugo + Redis, déploiement multi-nœuds
Système RAGRecherche et traitement de documents
Widget de chatIntégrer le chat sur des sites web
WhatsAppConfiguration de l'API Meta Business
EmailIntégration du canal email

Dépôts associés

DépôtObjectif
synaplanApplication principale (ce dépôt)
synaplan-docsSite de documentation publique (docs.synaplan.com)
synaplan-ttsService TTS Piper optionnel
synaplan-sortxPlugin de tri de documents + outil local
synaplan-chartsChartes Helm pour Kubernetes
synaplan-platformConfigurations de déploiement en production

Structure du projet

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

Contribuer

Voir AGENTS.md pour les directives de développement et les normes de code.


Licence

Apache-2.0