Synaplan Multimodal Gateway
chính thứcCung cấp đầy đủ chức năng của máy chủ Mã nguồn mở như một ví dụ MCP.
Bạn có thể làm gì với Synaplan Multimodal Gateway MCP?
- Tìm kiếm cơ sở tri thức RAG của bạn — Đặt câu hỏi dựa trên tài liệu bạn đã tải lên và nhận câu trả lời dựa trên nội dung của bạn thông qua điểm cuối
POST /mcp. - Truy xuất bộ nhớ AI — Truy vấn hồ sơ người dùng và ngữ cảnh đã lưu mà Synaplan đã thu thập, được hiển thị dưới dạng công cụ thông qua máy chủ MCP.
- Kết nối máy chủ MCP bên ngoài — Thêm các dịch vụ tương thích MCP của riêng bạn (CRM, wiki, n8n) vào mục Channels để trình lập kế hoạch AI có thể lấy dữ liệu trực tiếp từ chúng.
- Xử lý các yêu cầu nhiều bước — Phân tách các tác vụ phức tạp thành một đồ thị các bước (trích xuất, tóm tắt, tạo) để phát trực tiếp các thẻ tiến độ khi chúng thực thi.
Tài liệu
Synaplan
Quản lý tri thức hỗ trợ bởi AI với RAG, tiện ích chat và tích hợp đa kênh.
Phiên bản trực tiếp: web.synaplan.com | Tài liệu: docs.synaplan.com | API: Swagger UI
Điều kiện tiên quyết
- Docker + Docker Compose v2 (Docker Desktop trên macOS/Windows, hoặc Docker Engine + plugin Compose trên Linux)
- Git
- RAM tối thiểu 8 GB (khuyến nghị 16 GB cho bản cài đặt tiêu chuẩn với AI cục bộ)
- ~9 GB dung lượng đĩa trống cho bản cài đặt tiêu chuẩn (~5 GB cho bản tối thiểu)
- Các cổng TCP trống
5173,8000,8082,8025,3307,6333,11435
Máy Mac Apple Silicon (M1–M4): Các image container của Synaplan được xuất bản cho
linux/amd64, do đó chúng chạy dưới dạng giả lập trên Apple Silicon. Trong Docker Desktop → Settings → General, hãy bật "Use Rosetta for x86/amd64 emulation on Apple Silicon" (macOS 13+) để có các container nhanh hơn, ổn định hơn nhiều so với QEMU mặc định. Mọi thứ vẫn hoạt động nếu không bật — chỉ chậm hơn và lần build đầu tiên sẽ lâu hơn.
Bắt đầu nhanh
git clone https://github.com/metadist/synaplan.git
cd synaplan
docker compose up -d
Mở http://localhost:5173 — giao diện người dùng sẽ sẵn sàng sau ~2 phút. Với bản cài đặt tiêu chuẩn, các mô hình Ollama cục bộ (gpt-oss:20b, bge-m3, tổng ~14 GB) sẽ tiếp tục tải xuống trong nền — chat sử dụng AI cục bộ sẽ bắt đầu hoạt động sau khi quá trình tải xuống đó hoàn tất (docker compose logs -f backend hiển thị tiến trình). Để có trải nghiệm đầu tiên nhanh nhất, hãy sử dụng bản cài đặt Tối thiểu bên dưới.
Tùy chọn cài đặt
| Chế độ | Lệnh | Kích thước | Phù hợp nhất cho |
|---|---|---|---|
| Tiêu chuẩn | docker compose up -d | ~9 GB | Đầy đủ tính năng, AI cục bộ |
| Tối thiểu | docker compose -f docker-compose-minimal.yml up -d | ~5 GB | Chỉ AI đám mây (Groq/OpenAI) |
Đối với bản cài đặt tối thiểu, hãy đặt khóa API của bạn trước khi khởi động stack để lần khởi động đầu tiên đã nhận diện được nó (tránh phải khởi động lại). Nhận khóa miễn phí tại console.groq.com:
echo "GROQ_API_KEY=your_key" >> backend/.env
docker compose -f docker-compose-minimal.yml up -d
Đã khởi động mà chưa có khóa? Hãy thêm nó và khởi động lại backend:
echo "GROQ_API_KEY=your_key" >> backend/.env && docker compose restart backend
Truy cập
| Dịch vụ | URL |
|---|---|
| Ứng dụng | http://localhost:5173 |
| API | http://localhost:8000 |
| Tài liệu API | http://localhost:8000/api/doc |
| phpMyAdmin | http://localhost:8082 |
| MailHog | http://localhost:8025 |
Thông tin đăng nhập mặc định:
| Mật khẩu | Cấp độ | |
|---|---|---|
| admin@synaplan.com | admin123 | ADMIN |
| demo@synaplan.com | demo123 | PRO |
| test@example.com | test123 | MỚI (chưa xác minh) |
Tính năng
- Chat AI — Ollama, OpenAI, Anthropic, Groq, Gemini
- Định tuyến đa tác vụ — Một bộ lập kế hoạch AI phân tách các yêu cầu phức tạp thành đồ thị tác vụ (trích xuất → tóm tắt → tạo sinh → trả lời) và phát trực tiếp các thẻ tác vụ trong khi các bước đang thực thi
- Tìm kiếm RAG — Tìm kiếm tài liệu ngữ nghĩa với MariaDB VECTOR hoặc Qdrant
- Tiện ích Chat — Nhúng vào bất kỳ trang web nào (hướng dẫn tiện ích)
- Hỗ trợ trực tiếp — Lớp WebSocket thời gian thực (Centrifugo + Redis): con người tiếp quản các cuộc trò chuyện từ tiện ích, chỉ báo đang nhập, thông báo cho điều hành viên (hướng dẫn thời gian thực)
- WhatsApp — Tích hợp Meta Business API
- Email — Phản hồi email được hỗ trợ bởi AI
- Âm thanh — Chuyển lời nói thành văn bản Whisper (đầu vào) + tùy chọn synaplan-tts (đầu ra)
- Tài liệu — PDF, Word, Excel, hình ảnh với OCR
- Ký ức AI — Hồ sơ người dùng với tìm kiếm vector Qdrant
- Hệ thống phản hồi — Thu thập và phân tích phản hồi được hỗ trợ bởi Qdrant
- Plugin — Hệ thống plugin không xâm lấn (hướng dẫn plugin)
- Máy chủ MCP (truy cập sớm) — Kết nối các client AI (Claude, Cursor, …) qua Model Context Protocol; RAG và ký ức của bạn trở thành công cụ tại
POST /mcp(hướng dẫn MCP) - Máy khách MCP (truy cập sớm) — Kết nối máy chủ MCP của bạn (CRM, wiki, n8n, …) trong Kênh → Máy chủ MCP; bộ lập kế hoạch đa tác vụ lấy dữ liệu trực tiếp từ chúng qua các nút DAG
mcp_fetch— chỉ đọc, được bảo vệ chống SSRF, chọn tham gia theo chủ đề. Được kích hoạt bởi các cờBCONFIGđã được gieo (MCP.CLIENT_ENABLED,MULTITASK.MCP_FETCH_ENABLED—app:seedđặt chúng thành BẬT khi triển khai; một hàng0rõ ràng là công tắc tắt khẩn cấp của người vận hành). Xem docs/MULTITASK_DATA_NODES.md
Cơ sở dữ liệu Vector Qdrant
Qdrant chạy như một dịch vụ Docker nội bộ — không cần cấu hình. Nó hỗ trợ ký ức AI, tìm kiếm tài liệu RAG và hệ thống phản hồi.
Tự động khởi động với docker compose up -d. Synaplan hoạt động đầy đủ mà không cần nó (ký ức và tìm kiếm vector sẽ bị vô hiệu hóa).
Xử lý thời gian thực & nền
Cả hai tệp compose cũng khởi động ba dịch vụ nội bộ (không có cổng máy chủ, không cần thiết lập):
| Dịch vụ | Vai trò |
|---|---|
redis | Cơ sở hạ tầng dùng chung bắt buộc: bộ nhớ đệm, phiên, khóa, giới hạn tốc độ, hàng đợi tin nhắn (Redis Streams), công cụ Centrifugo |
centrifugo | Cổng WebSocket cho các tính năng thời gian thực (tiếp quản chat trực tiếp, chỉ báo đang nhập, thông báo điều hành viên) — trình duyệt kết nối cùng nguồn gốc qua /connection/websocket |
worker | Trình tiêu thụ Symfony Messenger thực thi các công việc không đồng bộ (xử lý AI, lập chỉ mục tài liệu, thu thập tiện ích) |
Trong một cụm đa nút, tất cả các nút chia sẻ một Redis, do đó các sự kiện WebSocket được xuất bản trên một nút sẽ đến được các trình duyệt kết nối với bất kỳ nút nào khác. Chi tiết: docs/REALTIME.md.
Chuyển văn bản thành giọng nói (Tùy chọn)
Để có đầu ra giọng nói, hãy chạy synaplan-tts cùng với Synaplan:
git clone https://github.com/metadist/synaplan-tts.git && cd synaplan-tts && docker compose up -d
Các lệnh phổ biến
# 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
Tài liệu
Tài liệu hướng đến người dùng & API có tại docs.synaplan.com. Nguồn: metadist/synaplan-docs.
Hướng dẫn trong kho lưu trữ (dành cho nhà phát triển làm việc trên codebase này):
| Hướng dẫn | Mô tả |
|---|---|
| Cài đặt | Hướng dẫn thiết lập chi tiết |
| Cấu hình | Biến môi trường, khóa API |
| Phát triển | Lệnh, kiểm thử, kiến trúc |
| Thời gian thực / WebSockets | Lớp thời gian thực Centrifugo + Redis, triển khai đa nút |
| Hệ thống RAG | Tìm kiếm và xử lý tài liệu |
| Tiện ích Chat | Nhúng chat vào trang web |
| Thiết lập Meta Business API | |
| Tích hợp kênh email |
Kho lưu trữ liên quan
| Kho lưu trữ | Mục đích |
|---|---|
| synaplan | Ứng dụng chính (kho lưu trữ này) |
| synaplan-docs | Trang tài liệu công khai (docs.synaplan.com) |
| synaplan-tts | Dịch vụ Piper TTS tùy chọn |
| synaplan-sortx | Plugin sắp xếp tài liệu + công cụ cục bộ |
| synaplan-charts | Biểu đồ Helm cho Kubernetes |
| synaplan-platform | Cấu hình triển khai sản xuất |
Cấu trúc dự án
synaplan/
├── backend/ # Symfony PHP API
├── frontend/ # Vue.js SPA
├── docs/ # Documentation
├── _docker/ # Docker configs
└── plugins/ # Plugin system
Đóng góp
Xem AGENTS.md để biết hướng dẫn phát triển và tiêu chuẩn mã.
