容器化全本地RAG,本地文件索引检索,LLM/嵌入/重排全部本地运行,数据不出本机。
方案简介
Minima 是一个开源的本地(on-premises)RAG 容器化方案,可完全脱离 ChatGPT 或 Claude 等外部服务运行。所有神经网络组件——LLM、reranker、embedding——都运行在你自己的云或 PC 上,确保数据安全。该方案适合需要在本地对私有文档(PDF、Excel、Word、文本等)进行问答检索、且不能把数据发送到第三方 API 的用户或团队。项目以 Docker 容器形式部署索引与检索服务,通过 Ollama 运行本地 LLM,使用 Qdrant 作为向量存储,并提供基于 Electron 的本地聊天界面。
亮点与能力
- 完全本地运行,数据不出本机
- 递归索引
LOCAL_FILES_PATH根目录下所有子文件夹的文档 - 支持 .pdf、.xls、.docx、.txt、.md、.csv 文件类型
- 查询增强、带重排的文档检索、答案生成三段式流程
- 提供 Electron 聊天界面(http://localhost:3000)
- 通过环境变量即可切换模型与配置
- 嵌入模型可替换为任意 Sentence Transformer 模型
- 重排器可选任意 BAAI reranker
组成与分工
- Ollama:运行本地 LLM,负责查询增强与答案生成(OLLAMA_MODEL 需填 LLM 模型,非嵌入模型)
- Sentence Transformers:文档嵌入模型,当前仅支持此类模型,测试用过 all-mpnet-base-v2
- BAAI reranker(CrossEncoder):对检索结果重排,如 BAAI/bge-reranker-base
- Qdrant:向量存储,按 EMBEDDING_SIZE 配置维度
- Docker Compose:编排索引、检索等容器服务
- Electron:本地聊天 UI,npm install && npm start 启动
前置要求
- 本地已安装 Docker 与 Docker Compose
- 克隆 Minima 项目到本地
- 在项目根目录创建 .env 文件(参考 .env.sample)
- Ollama 模式需额外安装 Ollama
- 启动聊天 UI 需 Node.js(cd electron 后 npm install)
实施步骤
1. 选择启动方式
最简单的方式使用 run.sh 脚本:
bash
./run.sh
2. 配置 .env
创建 .env 文件,从 .env.sample 复制所有环境变量,本地 Ollama 模式示例:
LOCAL_FILES_PATH=/Users/davidmayboroda/Downloads/PDFs/
EMBEDDING_MODEL_ID=sentence-transformers/all-mpnet-base-v2
EMBEDDING_SIZE=768
OLLAMA_MODEL=qwen2:0.5b # must be LLM model id from Ollama models page
RERANKER_MODEL=BAAI/bge-reranker-base # please, choose any BAAI reranker model
3. 启动容器
bash
docker compose -f docker-compose-ollama.yml --env-file .env up --build
4. 启动聊天界面
bash
cd electron
npm install
npm start
5. 提问验证
打开 http://localhost:3000,针对 LOCAL_FILES_PATH 目录中的文件提问即可获得基于本地文件的回答。
使用与配置要点
LOCAL_FILES_PATH:索引根目录,递归索引所有子文件夹EMBEDDING_MODEL_ID:嵌入模型,当前仅支持 Sentence Transformer 模型EMBEDDING_SIZE:嵌入维度,必须与所选嵌入模型实际维度一致(如 all-mpnet-base-v2 为 768)OLLAMA_MODEL:Ollama 模型 ID,必须是 LLM 模型而非嵌入模型RERANKER_MODEL:重排模型,可从 HuggingFace BAAI 集合中挑选- 修改索引内容后向本地目录添加文件即可被问答覆盖
注意事项与常见问题
- OLLAMA_MODEL 必须填 LLM 模型 ID,不要填嵌入模型
- 嵌入模型目前仅支持 Sentence Transformer 类模型
- EMBEDDING_SIZE 需与嵌入模型实际输出维度一致,否则 Qdrant 向量存储配置会出错
- 本地 Ollama 模式比 Custom LLM 模式占用更多资源(需额外下载 reranker)
优缺点
- ✓ 数据完全本地,安全可控
- ✓ 递归索引子目录,支持多种文件格式
- ✕ 资源占用较重
- ✕ 仅支持Sentence Transfor
出处
本方案挖掘自开源项目 Minima-AI-Inc/minima,方案内容与实施命令均来自其 README 原文。
本方案由真实开源项目挖掘整理,实施命令均来自其 README 原文,安装使用请遵循项目开源协议。