外观
项目简介
概述
MARS AI Studio是一套面向企业的全栈AI应用开发平台,在常规后台管理框架之上,原生集成了 AI 能力与 BPM 工作流引擎。项目以"单体仓库(Monorepo)+ 前后端分离"的形态组织,目标是在同一个平台内打通系统管理、基础设施、人工智能(智能问答、RAG、AI工作流和智能体编排)、BPM工作流程等各子系统。
技术选型
后端技术栈
后端以 Python 3.12+ 为基线,采用 FastAPI 异步框架 + SQLAlchemy 2.0 ORM,并通过一组自研 framework 封装把第三方依赖收敛为统一能力。
- 语言/框架:Python 3.12、FastAPI、Pydantic / Pydantic-Settings
- ORM/数据库:SQLAlchemy 2.0(异步),支持 MySQL(asyncmy) 与 PostgreSQL(asyncpg)
- 缓存/队列:Redis、ARQ 异步任务队列、APScheduler 定时任务
- AI 框架:LlamaIndex(RAG 主力)、LangChain、OpenAI SDK
- 文档解析:pdf/word/ppt/html 解析、tiktoken、BM25 检索
- 向量数据库:开发态 Chroma,生产可切换 Milvus / PGVector / Qdrant
- 其他:JWT、fastapi-limiter 限流、WeasyPrint(HTML→PDF)、阿里云/腾讯云短信、SMTP 邮件
后端技术栈明细:
| 领域 | 选型 | 说明 |
|---|---|---|
| 编程语言 | Python 3.12(<3.14) | 优先使用新语法特性 |
| Web 框架 | FastAPI 0.141 + Uvicorn | 异步 ASGI,自动生成 OpenAPI 文档 |
| 数据建模 | Pydantic v2 / pydantic-settings | 请求校验与配置管理 |
| ORM | SQLAlchemy 2.0 | 异步驱动:asyncmy(MySQL)、asyncpg(PostgreSQL) |
| 数据库迁移 | Alembic | 版本化表结构变更 |
| 缓存 | Redis(同步/异步) | 缓存、限流、任务队列后端 |
| 认证授权 | PyJWT | JWT / OAuth2 会话体系 |
| 限流 | fastapi-limiter + pyrate-limiter | 接口级限流 |
| 定时任务 | APScheduler | 周期性任务 |
| 任务队列 | arq | 基于 Redis 的异步任务队列 |
| 日志 | Loguru | 结构化日志 |
| 文件存储 | aiobotocore(S3 协议) | 对象存储,支持本地/云 |
| 短信 | 阿里云 / 腾讯云 SDK | 多通道短信 |
| 邮件 | fastapi-mail | SMTP 邮件发送 |
| 文档处理 | openpyxl / weasyprint / pandas | Excel、PDF、数据处理 |
| AI 框架 | LlamaIndex / LangChain / LangGraph | RAG 编排与大模型调用 |
| 向量数据库 | Chroma(开发) | Milvus、PGVector、Qdrant(生产) |
| 嵌入与重排 | Ollama / XInference / SiliconFlow | 可插拔嵌入与重排模型 |
| 文档解析 | pypdf / python-docx / python-pptx / BeautifulSoup | 多格式入库解析 |
| 命令行 | Typer | 启停、迁移等管理命令 |
前端技术栈
前端基于 Vben Admin(Vue 3 中后台最佳实践),采用 pnpm + Turborepo 的 Monorepo 工程化方案,统一了编码规范、组件资产与构建流程。
- 核心:Vue 3、Vite、TypeScript、Pinia、Vue Router
- UI:Vben Admin 5.x、Element Plus、Tailwind CSS
- 可视化/工作流:bpmn-js(BPMN 流程设计)、dhtmlx-gantt、ECharts、视频播放、签名/截图等
前端技术栈明细:
| 领域 | 选型 | 说明 |
|---|---|---|
| 框架 | Vue 3 + Vite 8 + TypeScript 6 | 组合式 API,<script setup> |
| 工程化 | pnpm 11 + Turborepo | Monorepo 多包管理与并行构建 |
| 样式 | Tailwind CSS 4 | 原子化 CSS,配套 stylelint |
| 状态管理 | Pinia 3 | 模块化 store(access/user/auth…) |
| 路由 | Vue Router 5 | 后端菜单驱动的可访问路由 |
| UI 组件 | Element Plus / Ant Design Vue / Naive UI | 多 UI 库共存,优先 Vben 公共组件 |
| 表单设计 | @form-create / @tinyflow-ai/vue | 表单与流程设计器 |
| 流程设计 | bpmn-js | BPMN 流程建模 |
| 图表 | ECharts 6 | 监控与数据可视化 |
| 请求 | axios + 适配层 | 响应归一化与拦截器 |
| 校验 | zod / vee-validate | 表单与运行时校验 |
| 国际化 | vue-i18n 11 | 多语言切换 |
| 代码规范 | oxlint / oxfmt / ESLint / stylelint / lefthook | 提交与保存钩子校验 |
| 测试 | Vitest / Playwright | 单元与端到端测试 |
各子系统定位
系统管理(module_system)
企业后台基础能力:
- 认证授权:登录、验证码、RBAC(用户/角色/菜单/权限/部门/岗位)、OAuth2、社交登录
- 字典、通知公告、站内消息与消息模板
- 短信(阿里云/腾讯云等通道、模板、日志、回调)、邮件(账户/模板/日志)
- 日志:登录日志、操作日志
基础设施(module_infra)
运维与平台支撑能力:
- 参数配置、文件管理(含文件配置)
- 定时任务(Job + JobLog,基于 APScheduler)
- 在线用户、Redis 监控、服务器监控、健康检查
- WebSocket 实时通道(可全局开关)
AI 大模型(module_ai)
企业级 AI 能力载体:
- 对话:多轮会话(会话/消息)、AI 写作(
write) - 模型管理:API Key 管理、聊天角色(Prompt 预设)、模型注册、工具(Tool)接入
- 知识库(RAG):知识库、文档、分段(Segment)、索引构建任务(Task),优先使用 LlamaIndex 原生能力,减少重复造轮子。开发环境默认使用 Chroma 向量库,生产可切换至 Milvus 等。
- AI 框架层:LLM 接入、Embedding、文档加载/切片、检索(含 BM25 混合检索)、重排序(Rerank)、向量库适配、联网搜索、异步任务队列
BPM工作流程(module_bpm)
自研钉钉飞书风格工作流引擎,覆盖流程设计到流转的全生命周期:
- 流程建模(Model)、流程定义(Definition)、流程实例(Instance)、任务(Task)
- 表单(Form)、用户组(UserGroup)、分类(Category)、评论(Comment)
- 流程表达式(Expression)、流程监听器(Listener,含 HTTP 监听器)
- 引擎支撑:
engine驱动、condition条件分支、candidate候选人解析、child_process子流程、trigger/timeout触发与超时、notifier通知 - 示例业务:OA 请假(
oa_leave)
致谢
感谢开源社区及其贡献者提供的坚实基础:
- Web 开发框架:FastAPI、SQLAlchemy、Vue 3、Vben Admin、RuoYi
- AI 与大模型生态:LangChain 、LangGraph、LlamaIndex、Milvus