AI 驱动的新一代文档校对与润色平台,支持 AI 润色、文本校对、文档上传校对,在线预览、问题高亮、一键/逐条修改,修改后导出。
让每一份文档都经得起推敲 —— 智能校对 · AI润色 · 多模型驱动 · 开箱即用
当前市面上的文档校对工具大多依赖商业闭源方案,费用高昂且不可定制。TextMirror 是一个完全开源、可私有化部署的智能文档审校平台,让企业和个人都能拥有媲美商业级产品的文档校对能力。
- 🚀 开箱即用 — Docker 一键部署,5 分钟即可上线
- 🤖 多模型支持 — 内置 8 种 AI 供应商适配(DeepSeek、OpenAI、Kimi、通义千问等),管理后台动态切换
- ⚡ 流式输出 — 润色结果 SSE 流式逐字渲染,进度实时推送,不再干等
- ⚖️ 多模型对比 — 同一段文本并发跑 2-4 个模型,横向对比输出效果与耗时
- 📝 全格式覆盖 — 支持 DOCX / PDF / TXT 上传校对,保留原始排版
- 🎨 AI 智能润色 — 10 种风格一键润色,三段式(轻量/标准/深度)流式输出
- 🔍 精准问题定位 — 校对结果高亮标注,支持逐条审阅、一键采纳或忽略
- 📚 专业词库系统 — 全局词库 + 个性化词库 + 放行词,覆盖 6 大专业领域
- 🏢 企业级管理 — 完善的 RBAC 权限体系、审计日志、用户每日配额(支持「不限」)、游客限流
- 📱 全端适配 — PC 与移动端完整适配,随时随地审校文档
在线输入文本即可智能校对,支持分片处理超长文本,校对结果高亮展示,逐条修改;导出支持「修改后全文」与「问题报告」(含每条问题的原文/建议/说明及处理状态)
上传 DOCX / PDF / TXT 文件,AI 自动解析并校对,异步任务 + SSE 实时进度推送,在线预览保留排版,修改后导出新文档
提供 10 种润色风格,三个版本(轻量/标准/深度)并发流式输出、逐字渲染,支持「停止生成」
多模型对比模式:勾选 2-4 个已配置模型并发润色同一段文本,对比输出效果与耗时,结果自动存入校对历史
校对历史详情一键「再次润色 / 重新校对」,原文自动带入对应页面
- 全局词库:预置 107 条常见易错词,6 大专业领域词库
- 个性化词库:用户自定义校对规则
- 放行词管理:对特定词语设置免校对白名单
支持 8 种 AI 供应商:DeepSeek / OpenAI / Kimi / 通义千问 / 智谱GLM / 百度文心 / 讯飞星火 / Ollama 本地模型 管理后台可视化配置,动态切换,无需重启
- 用户每日配额:按用户设置每日使用次数,留空即不限,北京时间零点重置
- 游客限流:未登录用户按 IP 每日限次,可自定义次数与文本长度上限
用户管理 / 角色权限(RBAC) / 大模型配置 / 词库管理 / 审计日志 / 平台设置 / 品牌定制
飞书扫码登录 / SSO 单点登录 / 自动创建用户 — 默认关闭,按需配置
| 层级 | 技术方案 |
|---|---|
| 前端 | Vue 3 + TypeScript + Vite + Element Plus + Pinia |
| 编辑器 | Tiptap 富文本 + docx-preview + pdf.js |
| 后端 | Python 3.10+ / FastAPI / SQLAlchemy 2.0 |
| 数据库 | PostgreSQL + Redis |
| 异步任务 | Celery Worker |
| 认证 | JWT + RBAC 权限模型 |
| 部署 | Docker Compose (3 容器架构) |
- Python 3.10+
- Node.js 18+
- PostgreSQL 14+
- Redis 6+
# 1. 配置后端环境(数据库/Redis 连接指向 compose 内服务)
cp backend/.env.example backend/.env
# 2. 一键构建并启动(postgres + redis + backend 热重载 + celery + frontend)
docker compose -f docker-compose.dev.yml up -d --build
# 3. 初始化数据库(建表 + 种子数据:管理员/角色权限/全局词库)
docker exec textmirror-dev-backend python -m app.core.seed
docker exec textmirror-dev-backend alembic stamp head # 标记迁移基线# 1. 克隆项目
git clone https://github.com/guanlili/TextMirror.git
cd TextMirror
# 2. 配置后端环境
cd backend
cp .env.example .env # 复制并修改配置(数据库/Redis/API Key)
python -m venv venv
# Windows:
venv\Scripts\activate
# Linux/Mac:
source venv/bin/activate
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
# 3. 初始化数据库(建表 + 种子数据)
python -m app.core.seed # 创建表结构、管理员账号、角色权限、全局词库
alembic stamp head # 标记迁移基线(表结构已由上一步建好)
# 4. 配置前端
cd ../frontend
npm install --registry=https://registry.npmmirror.com
# 5. 启动前后端(分别开两个终端)
# 后端:
uvicorn app.main:app --reload --port 3020
# 前端:
cd ../frontend && npm run dev| 服务 | 地址 |
|---|---|
| 前端 | http://localhost:3022 |
| 后端 API 文档 | http://localhost:3020/docs |
| 默认账号 | admin / admin123 |
# 1. 修改生产配置
cp backend/.env.example backend/.env.production
# 编辑 .env.production 填入实际的数据库、Redis、大模型 API Key 等
# 2. 构建镜像(Windows 双击 build_images.bat,或任意平台执行)
build_images.bat
# macOS / Linux 等价命令:
# docker build -t textmirror-backend:latest ./backend
# docker build -t textmirror-frontend:latest ./frontend
# mkdir -p docker-images && docker save textmirror-backend:latest -o docker-images/textmirror-backend.tar \
# && docker save textmirror-frontend:latest -o docker-images/textmirror-frontend.tar
# 3. 上传到服务器后部署
bash deploy.sh- 将 SSL 证书放到
frontend/ssl/目录 - 将
frontend/nginx.production.ssl.conf重命名为nginx.production.conf - 修改证书路径后重新构建前端镜像
详细部署文档请参考 部署操作指南
TextMirror/
├── backend/ # 后端(FastAPI)
│ ├── app/
│ │ ├── api/ # API 路由
│ │ ├── core/ # 核心配置、安全、数据库
│ │ ├── models/ # 数据模型
│ │ └── services/ # 业务逻辑层
│ ├── alembic/ # 数据库迁移
│ ├── .env.example # 配置模板
│ └── requirements.txt
├── frontend/ # 前端(Vue 3)
│ ├── src/
│ │ ├── views/ # 页面组件
│ │ ├── stores/ # Pinia 状态管理
│ │ ├── api/ # API 接口
│ │ └── utils/ # 工具函数
│ ├── nginx.production.conf # Nginx 配置(HTTP)
│ ├── nginx.production.ssl.conf # Nginx 配置(HTTPS)
│ └── Dockerfile
├── docker-compose.yml # 容器编排
├── deploy.sh # 服务器部署脚本
└── README.md
| 文档 | 说明 |
|---|---|
| 数据库初始化说明 | 数据库安装、配置、初始化、常见问题 |
| 系统功能设计文档 | 技术架构、数据模型、API 设计、开发规范 |
| 系统运维操作手册 | 本地开发、生产部署、日常运维、故障排查 |
| 功能说明文档 | 产品功能描述、用户端 / 管理后台功能清单 |
| 部署操作指南 | Docker 部署、日常更新、回滚操作 |
| 用户使用手册 | 面向终端用户的操作指南 |
欢迎提交 Issue 和 Pull Request!
- Fork 本项目
- 创建你的特性分支 (
git checkout -b feature/amazing-feature) - 提交你的修改 (
git commit -m 'feat: add amazing feature') - 推送到分支 (
git push origin feature/amazing-feature) - 提交 Pull Request
详细贡献指南请参考 CONTRIBUTING.md
本项目采用 MIT License 开源协议,你可以自由使用、修改和分发。
TextMirror 基于 TextGuard 开发,保留原项目的 MIT 许可及版权声明。
如果这个项目对你有帮助,请点一个 ⭐ Star 支持一下!
TextMirror — 让 AI 守护每一个文字
Made with ❤️ by TextMirror Contributors