Milvus + FastAPI FastAPI+ Next.js Next.js+ PostgreSQL PostgreSQL+ Redis-Cluster Redis-Cluster + Docker Compose+ Python 3.11++ Node.js 20++ DeepDoc

用 Docker 编排 FastAPI+Next.js+Milvus 等组件,构建可观察、可回归的企业 RAG 知识库。

FastAPI 提供 API,Next.js 提供前端,Milvus 做向量检索,PostgreSQL/Redis 做存储与队列,分工清晰。

✓ 一键启动,部署门槛低✓ 链路可检查可回归 ✕ 至少 4 核/16GB RAM/50GB

方案简介

MimirQ 是一套「可观察、可替换、可回归」的企业 RAG 基础设施,中文优先,覆盖从文档解析到证据引用的完整知识链路。它把数据评估、场景化解析、清洗治理、业务切块、向量/全文索引、混合召回、重排与引用、Golden 回归串成一条可控流水线,每一步都能检查输入、输出与版本。项目起源于真实的政务知识库交付,适合需要按业务替换、审计和回归知识链路的企业团队,也可作为 Dify 的外部知识层。本配方使用 Docker Compose 把 FastAPI 后端、Next.js 前端、Milvus 向量库、PostgreSQL、Redis 等依赖服务一并编排,实现一键启动的完整企业知识库。

亮点与能力

  • 知识链路全流程可检查:解析、Chunk、召回、重排与引用证据均可查看
  • 按文档和场景切换解析器、索引、检索与模型
  • 用 Golden 题集、质量门禁和 Trace 守住版本质量
  • 覆盖 30 个解析后端、86 种切块策略、13 类重排器
  • 知识图谱画布:在同一画布中检索和分析实体、事件与关系
  • 数据治理工作台:文档预览、质量检测、清洗与标注
  • 入库执行监控:按数据集观察解析、切块、治理、导出和失败重试状态
  • Golden 回归评测:标准问答、运行记录与 Recall / MRR 等指标同屏可查

组成与分工

  • FastAPI:后端 API 服务,运行在 Python .venv
  • Next.js:前端 UI,由 pnpm 启动,访问地址 http://localhost:3000
  • Milvus:向量库,支撑向量检索与混合召回
  • PostgreSQL / Redis:Docker 运行的存储与基础设施服务
  • DeepDoc:默认内置解析器,处理常规 PDF / Office / 文本
  • Docker Compose:编排前端、API、Worker 与依赖服务

前置要求

  • Docker 20.10+ 与 Docker Compose 2.0+
  • GNU Make;Docker 一键启动另需 Python 3.9+ 生成配置
  • 源码开发模式另需 Python 3.11+、Node.js 20+ 与 pnpm 10.26
  • 至少 4 核 CPU / 16 GB RAM / 50 GB 磁盘

实施步骤

1. 克隆仓库并初始化

bash
git clone --depth 1 --single-branch https://github.com/skygazer42/MimirQ.git
cd MimirQ
make init

make init 只创建缺失的 .envweb/.env.local,不会覆盖已有配置。

2. 编辑 .env 配置模型与管理员

  • 默认模型调用:LLM_API_KEY(必填)
  • 自定义 LLM:LLM_API_BASELLM_MODEL
  • 独立 Embedding:EMBEDDING_API_BASEEMBEDDING_API_KEYEMBEDDING_MODEL
  • 启用 Reranker:ENABLE_RERANKERRERANKER_API_BASERERANKER_API_KEYRERANKER_MODEL
  • 自动创建首个管理员:INITIAL_ADMIN_EMAILINITIAL_ADMIN_USERNAMEINITIAL_ADMIN_PASSWORD

3. Docker 一键启动

bash
make up-web
make api-ping

启动后访问 http://localhost:3000;未预置管理员时,在页面注册首个账户。

使用与配置要点

  • 前端 UI:http://localhost:3000;API 文档:http://localhost:8000/docs
  • 启动后创建数据集、上传解析、检查切块、验证检索和引用,再进行治理与评测
  • 按文档类型启用可选解析器:表格、公式与复杂版式可 make up-docling;扫描件、OCR、复杂版面可 make up-paddlevl;PDF 转 Markdown 无 GPU 可 make up-marker
  • 停止使用 make down;清空持久化数据使用 make docker-reset;连同本项目服务镜像删除使用 make docker-purge
  • 低资源模式可使用 make up-lite,它用 Chroma/FAISS 替代 Milvus、免 MinIO,默认不含前端

注意事项与常见问题

  • Docling 的 CPU / GPU profile 共享 5001 端口,不能同时启动;GPU 镜像约 11.13 GB
  • PaddleOCR-VL 建议 NVIDIA GPU 预留 10 GiB;olmOCR 建议 48 GiB 级显存
  • 更换 Embedding 模型后必须重建已有知识库索引
  • make docker-resetmake docker-purge 不可恢复;MimirQ 固定使用独立的 mimirq Compose 项目名,不会把同机 Dify 当成本项目
  • 高风险资料仍需人工校验

优缺点

  • ✓ 一键启动,部署门槛低
  • ✓ 链路可检查可回归
  • ✕ 至少 4 核/16GB RAM/50GB

出处

本方案挖掘自开源项目 skygazer42/MimirQ,方案内容与实施命令均来自其 README 原文。

方案出处
skygazer42/MimirQ:中文优先的企业 RAG 知识库:可控解析、治理、切块、混合检索、重排、引用、图谱、评测与 Dify 接入。
520 star 中文优先的企业 RAG 知识库:可控解析、治理、切块、混合检索、重排、引用、图谱、评测与 Dify 接入。

本方案由真实开源项目挖掘整理,实施命令均来自其 README 原文,安装使用请遵循项目开源协议。