synaplan
统一接入数十种大模型 + DAG 智能路由节省 Token,支持完全离线私有化部署的 Apache-2.0 开源 AI 平台。
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
统一接入数十种大模型 + DAG 智能路由节省 Token,支持完全离线私有化部署的 Apache-2.0 开源 AI 平台。
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一下这样的场景:你的团队同时使用 OpenAI 处理文案生成、Anthropic Claude 做代码审查、Google Gemini 分析合同文档、本地 Ollama 运行隐私敏感数据——每个平台有独立的 API Key、不同的调用方式、不同的计费逻辑。很快,你的技术债务清单里就会出现一长串"AI 接入适配器",每次换模型都是一场代码改造。
Synaplan 正是为解决这个痛点而生的:它是一个完全开源(Apache-2.0)的 AI 控制平面平台,将数十家 AI 模型提供商(OpenAI、Anthropic、Google Gemini、Groq、Mistral、xAI、HuggingFace、本地 Ollama 等)统一接入,用户在 Web 界面中切换模型如同换台电视,无需修改任何配置。同时,它通过 DAG(有向无环图)任务路由引擎,根据任务类型自动选择最合适的模型——简单提取任务交给廉价快速的模型,复杂推理任务才动用顶级大模型,从而显著节省 Token 消耗。
Synaplan 最初是开发团队 Metadist 的内部工具,用来管理公司内部各个 AI 模型的调用。随着大模型生态日趋碎片化,团队发现类似的痛点在行业内普遍存在,于是决定将这套内部系统开源。平台的核心差异化在于:自托管版本与云端版本功能完全一致,没有"核心版"和"企业版"的功能阉割——你在本地运行的 Docker 容器,与 synaplan.com 云端使用的是同一套代码。
截至目前,Synaplan 已支持 5,000+ 企业级离线部署案例,涵盖医疗、金融、法律等对数据主权有严格要求的行业。
Synaplan 的技术选型颇为独特:后端采用 PHP 8.4 + Symfony 8.1,而非 AI 领域常见的 Python 技术栈。这一选择背后有充分理由——Symfony 以稳定性著称,适合长时间运行的企业级服务,且 PHP 在 Web 托管领域生态成熟,降低了自托管的技术门槛。
| 类别 | 技术选型 |
|---|---|
| 框架 | Symfony 8.1 + API Platform |
| ORM | Doctrine ORM 3.x |
| 数据库 | MySQL/PostgreSQL(via Doctrine DBAL) |
| AI 集成 | OpenAI PHP Client、Anthropic SDK、Gemini API、Ollama PHP |
| 协议 | MCP SDK(Model Context Protocol) |
| 消息队列 | Symfony Messenger + Redis |
| 认证 | JWT (firebase/php-jwt)、OIDC (jumbojett/openid-connect-php) |
| 文档处理 | PhpSpreadsheet、PhpWord、PDFParser、Swallow |
| 存储 | AWS S3、Local Filesystem |
| 实时通信 | Centrifugo(WebSocket) |
前端基于 Vue 3 + TypeScript + Vite,使用 Playwright 进行端到端测试,覆盖多个浏览器(Chromium、Firefox)和移动端场景。值得注意的是,前端对 Node.js 版本要求较高(>=24),测试覆盖包括 WhatsApp 集成测试、OIDC 认证测试等。
backend/src/
AI/ — AI 核心逻辑(DAG 路由、模型选择)
Controller/ — REST API 控制器
Entity/ — Doctrine 数据实体
Mcp/ — MCP 协议集成
Message/ — Symfony Messenger 消息类
Model/ — 数据模型定义
Prompt/ — 提示词管理
Realtime/ — WebSocket 实时通信
Security/ — 认证授权
frontend/
Vue 3 + TypeScript 单页应用
Vite 构建工具
_deploy/
docker/ — 各服务 Dockerfile(backend/frontend/centrifugo/keycloak)
scripts/ — 部署脚本
aws/ — AWS 部署配置
umbrel/ — Umbrel 硬件节点部署
Synaplan 的核心价值在于抹平各家 AI API 的差异。用户可以在同一个对话界面中,随意切换使用 GPT-4o、Claude 3.5 Sonnet、Gemini 1.5 Pro,或者本地的 Llama 3.3。所有模型的调用通过统一的接口层管理,切换成本为零。
这是 Synaplan 最具技术含量的特性。当用户发起一个复杂请求(如"分析这份 PDF 合同,找出风险条款并生成摘要"),DAG 引擎会自动将任务拆解为多个子步骤:
用户请求 → 文档解析(廉价模型)→ 关键段落提取(廉价模型)
→ 风险分析(顶级推理模型)→ 摘要生成(中等模型)→ 回复输出
每个步骤结束后,结果通过 Centrifugo WebSocket 实时流式传输回前端,用户可以实时看到 DAG 执行卡片(Task Card),了解每个节点的状态和 Token 消耗。任务结束后,每个回答下方都会显示详细的成本明细——这是 Synaplan 的透明哲学:你永远知道每一分钱花在了哪里。
Synaplan 集成了 MCP SDK(Model Context Protocol),支持 AI Agent 调用外部工具(如文件操作、数据库查询、API 调用),实现了"有工具调用的对话"。同时提供了 Go、Rust、Python、NodeJS 四种语言的插件开发接口,生态可扩展性极强。
内置 RAG(检索增强生成)系统,用户可以上传文档(PDF、Word、Excel、PPT),平台自动完成解析、向量化存储和检索。RAG 问答完全离线运行,不依赖任何外部服务,数据不出内网。
Synaplan 提供了极为友好的部署体验。一行命令即可完成:
curl -fsSL https://raw.githubusercontent.com/metadist/synaplan/main/install.sh | bash
安装脚本支持两种模式:
Docker 编排包含:backend(PHP-FPM)、frontend(Node 静态服务)、MySQL、Redis、Centrifugo(实时通信)、Keycloak(身份认证)。对于追求极简的用户,还提供了 docker-compose-minimal.yml,仅包含云端 AI 接入(不含本地模型),大幅降低资源占用。
部署硬件要求:标准模式推荐 8GB+ RAM,完全离线运行本地模型时需要更高配置;不使用本地模型时,仅需 4GB+ RAM 和 5GB+ 磁盘空间。
Synaplan 的插件系统支持 Go、Rust、Python、NodeJS 四种语言,插件注册到插件市场后可被其他用户安装使用。这种设计让 Synaplan 的能力边界不再由核心团队决定,而是交给了开源社区。
随着大模型战场从"模型能力竞争"转向"应用生态竞争",各厂商的 API 差异和定价策略不断变化,企业面临的供应商锁定风险持续上升。Synaplan 的定位恰好在这个问题上提供了答案:不论底层模型如何更换,用户体验保持不变,切换成本几乎为零。
其"完全开源、无功能阉割"的产品哲学(自托管与云端同代码),在当前 AI 平台普遍采用"开源核心 + 闭源增值"策略的背景下,显得尤为难得。对于有数据合规要求(GDPR、等保三级)或希望保护私有数据的组织,Synaplan 的离线部署能力是不可替代的优势。
本报告基于 GitHub 仓库 v1.x 版本生成,图片来源于项目官方仓库。