文章目录
安装自己的个人免费知识库-MoreLogic RAG 个人免费版
MoreLogic RAG 个人免费版 · 安装与配置指南
版本:1.5.7.D
日期:2026 年 9 月
许可证:Apache License 2.0
一、个人免费版介绍
MoreLogic RAG 个人免费版是一套完全私有化、纯 CPU 可运行的本地知识助手。它能读取你自己的 PDF、Markdown、TXT、HTML 文档,用自然语言提问,基于文档内容给出带来源的回答。
免责声明
所有数据、所有运算,都在你自己的电脑上完成,不依赖任何外部云服务。
-
本工具为中立技术产品,不审查用户索引的文档内容。
用户须自行确保所索引文档的合法性。
因索引无版权或非法内容引发的责任,因用户索引、处理、传播无版权或非法内容所引发的任何法律责任、纠纷或损失,由用户自行承担。
开发者、贡献者及分发者不承担由此产生的任何直接或间接责任。
This tool is content-neutral. Users are solely responsible for ensuring they have the legal right to index and process any documents. The developers assume no liability for any illegal or unauthorized use of this software. -
使用本产品生成的内容,请自行核实,不作为任何专业建议,仅供参考。
The result produced by MoreLogic RAG is AI-generated, for reference only.
仓库
https://gitcode.com/sakura_sea/morelogic_rag_free.git
https://gitee.com/waterruby_admin/morelogic_rag_free.git
核心特点

| 特点 | 说明 |
|---|---|
| 完全本地 | 数据不出内网,断网也能用 |
| 纯 CPU 可跑 | 8GB 内存 + 4 核 CPU,无需显卡 |
| 中英双语 | 中文问英文答,英文问中文答 |
| 流式输出 | 回答逐字显示,体验流畅 |
| 来源可追溯 | 每条回答附参考片段 |
| Apache 2.0 | 可安全商用,无隐藏条款 |
支持的文件格式
.txt、.md、.pdf、.html、.htm
技术栈
| 层 | 组件 |
|---|---|
| 文档解析 | pypdf、BeautifulSoup4 |
| 嵌入 | BGE-M3 ONNX INT8(约 558MB) |
| 向量索引 | FAISS(CPU 版) |
| 稀疏检索 | BM25(rank-bm25) |
| 生成 | Ollama + Qwen2.5-1.5B-Instruct |
| 框架 | FastAPI + Uvicorn |
| 前端(可选) | Open WebUI |
使用范围
个人免费版面向个人本地单用户使用。不建议部署到服务器供多用户访问。
二、系统要求
硬件最低配置
| 组件 | 最低 | 推荐 |
|---|---|---|
| CPU | 4 核 | 8 核 |
| 内存 | 8 GB | 16 GB |
| 磁盘 | 15 GB 可用 | 25 GB 可用 |
| GPU | 不需要 | 不需要 |
软件环境
| 组件 | 版本 | 说明 |
|---|---|---|
| 操作系统 | Ubuntu 20.04+ / Windows 10+ / macOS 11+ | 都支持 |
| Python | 3.11 或 3.12 | 不要用 3.13 |
| Ollama | 最新版 | 本地 LLM 运行时 |
| pip | 最新版 | Python 包管理 |
三、安装步骤
第 1 步:安装 Python
Ubuntu / Debian:
sudo apt update
sudo apt install -y python3.11 python3.11-venv python3-pip
python3.11 --version
Windows:
- 访问 https://www.python.org/downloads/release/python-3119/
- 下载 Python 3.11 安装包(不要选 3.13)
- 安装时勾选 Add Python to PATH
- 打开 PowerShell,输入
python --version确认
macOS:
brew install [email protected]
python3.11 --version
第 2 步:安装 Ollama
Ubuntu / macOS:
curl -fsSL https://ollama.com/install.sh | sh
Windows:
- 访问 https://ollama.com/download
- 下载
OllamaSetup.exe - 双击安装
验证:
ollama --version
第 3 步:下载 LLM 模型
ollama pull qwen2.5:1.5b-instruct
模型约 0.92 GB。验证:
ollama list
第 4 步:获取 MoreLogic RAG 源码
mkdir -p ~/morelogic-rag
cd ~/morelogic-rag
# 下载仓库源码,或下载压缩包并解压
第 5 步:创建并激活 Python 虚拟环境
cd ~/morelogic-rag
python3.11 -m venv venv
激活命令:
| 终端 | 命令 |
|---|---|
| Linux / macOS | source venv/bin/activate |
| Windows CMD | venv\Scripts\activate.bat |
| Windows PowerShell | .\venv\Scripts\Activate.ps1 |
| Windows Git Bash | source venv/Scripts/activate |
Windows PowerShell 报“禁止运行脚本”:
以管理员身份打开 PowerShell,运行一次:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
第 6 步:安装 Python 依赖
pip install --upgrade pip
pip install -r requirements.txt
pip install sentencepiece
第 7 步:下载 BGE-M3 ONNX INT8 模型
设置镜像加速:
export HF_ENDPOINT=https://hf-mirror.com
下载模型:
# ONNX INT8 模型
hf download gpahal/bge-m3-onnx-int8 \
--local-dir ./models/bge-m3-onnx-int8 \
--resume-download
# Tokenizer(必须包含 sentencepiece.bpe.model)
hf download BAAI/bge-m3 \
--include sentencepiece.bpe.model tokenizer.json tokenizer_config.json special_tokens_map.json \
--local-dir ./models/bge-m3-tokenizer \
--resume-download
验证:
ls ./models/bge-m3-onnx-int8/ # 应有 model_quantized.onnx
ls ./models/bge-m3-tokenizer/ # 应有 sentencepiece.bpe.model
第 8 步:准备你的文档
mkdir -p ./docs
# 把 PDF / Markdown / TXT / HTML 文件复制到 ./docs/
支持子目录,系统会递归扫描。
第 9 步:构建索引
python -u build_index.py \
--data_dir ./docs \
--bge_model ./models/bge-m3-onnx-int8 \
--bge_tokenizer ./models/bge-m3-tokenizer \
--index_path ./index.pkl
预期输出:
[1/4] 加载文档...
✅ 加载完成: 8532 个句子,来自 42 个文件
[2/4] 构建 BM25 索引...
✅ BM25 索引完成
[3/4] 加载 BGE-M3 ONNX 编码器...
✅ 编码器加载完成,维度 = 1024
[4/4] 编码句子 + 构建 FAISS 索引...
✅ 索引保存成功!文件大小: 25.3 MB
耗时参考(纯 CPU):
| 句子数 | 耗时 |
|---|---|
| 3 千 | 约 10 分钟 |
| 1.5 万 | 约 45 分钟 |
| 30 万 | 2-3 小时 |
跑索引时不要关终端,不要休眠。
第 10 步:启动 API 服务
python run.py --host 0.0.0.0 --port 8000
预期输出:
INFO: Started server process [12345]
INFO: Uvicorn running on http://0.0.0.0:8000
INFO: Application startup complete.
第 11 步:验证服务
另开一个终端:
curl http://localhost:8000/health
应返回:
{"status":"ok","version":"1.0.0-free","ollama_model":"qwen2.5:1.5b-instruct"}
第 12 步:测试问答
python test_api.py "如何用R语言导入CSV文件" --stream
看到流式回答和参考片段即成功。
四、配置详解
配置文件 config.json:
{
"index_path": "./index.pkl",
"bge_model_path": "./models/bge-m3-onnx-int8",
"bge_tokenizer_path": "./models/bge-m3-tokenizer",
"ollama_url": "http://localhost:11434/api/generate",
"ollama_model": "qwen2.5:1.5b-instruct",
"max_new_tokens": 2048,
"num_ctx": 8192,
"data_dir": "./docs",
"debug": false
}
| 字段 | 说明 | 默认值 |
|---|---|---|
index_path | 索引文件路径 | ./index.pkl |
bge_model_path | BGE-M3 ONNX 模型目录 | ./models/bge-m3-onnx-int8 |
bge_tokenizer_path | Tokenizer 目录 | ./models/bge-m3-tokenizer |
ollama_url | Ollama API 地址 | http://localhost:11434/api/generate |
ollama_model | Ollama 模型名(必须与 ollama list 一致) | qwen2.5:1.5b-instruct |
max_new_tokens | 最大生成长度 | 2048 |
num_ctx | 上下文窗口 | 8192 |
data_dir | 文档目录 | ./docs |
debug | 调试日志 | false |
五、接入 Open WebUI(可选)
Open WebUI 是一个漂亮的聊天界面,让 MoreLogic RAG 用起来像 ChatGPT。
5.1 安装 Open WebUI
方式 A:Docker(推荐)
docker run -d -p 3000:8080 \
--add-host=host.docker.internal:host-gateway \
-v open-webui:/app/backend/data \
--name open-webui \
--restart always \
ghcr.io/open-webui/open-webui:main
方式 B:pip 安装
pip install open-webui
open-webui serve
5.2 配置 Pipe 函数
- 浏览器打开
http://localhost:3000 - 注册第一个账号(自动成为管理员)
- 进入 管理员面板 → 函数
- 点击 新建函数,类型选 Pipe
- 粘贴 Pipe 代码,保存并启用
- 在 Valves 里确认
ANNA_API_URL为:
http://host.docker.internal:8000/v1/chat/completions
如果 Open WebUI 和 MoreLogic RAG 不在同一台机器,把
host.docker.internal换成 MoreLogic RAG 所在机器的 IP。
- 在聊天界面选择模型 MoreLogic RAG 个人版,开始提问
六、日常维护
6.1 更新文档
# 1. 把新文档放入 ./docs/
# 2. 重建索引
rm ./index.pkl
python -u build_index.py \
--data_dir ./docs \
--bge_model ./models/bge-m3-onnx-int8 \
--bge_tokenizer ./models/bge-m3-tokenizer \
--index_path ./index.pkl
# 3. 重启服务
pkill -f "api_server:app"
python run.py --host 0.0.0.0 --port 8000
6.2 更换 LLM 模型
ollama pull qwen2.5:3b-instruct
# 修改 config.json 的 ollama_model
# 重启服务(不用重建索引)
6.3 备份与恢复
# 备份
tar -czf morelogic-backup-$(date +%Y%m%d).tar.gz \
./docs ./config.json ./models ./index.pkl
# 恢复
tar -xzf morelogic-backup-20260921.tar.gz
6.4 查看日志
# 实时日志
tail -f morelogic.log
# 最近 100 行
tail -n 100 morelogic.log
七、常见问题
Q1: Windows PowerShell 激活 venv 失败
.\venv\Scripts\Activate.ps1
如果报“禁止运行脚本”:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
Q2: pip install open-webui 失败
Python 3.13 不支持。换 3.11/3.12,或用 Docker。
Q3: 加载 tokenizer 报 sentencepiece 相关错误
pip install sentencepiece
如果报 AttributeError: 'NoneType' object has no attribute 'endswith',说明缺 sentencepiece.bpe.model:
hf download BAAI/bge-m3 --include sentencepiece.bpe.model --local-dir ./models/bge-m3-tokenizer
Q4: ONNX 编码报 KeyError: 'last_hidden_state'
onnx_encoder.py 已自动探测输出名,确保用最新版。
Q5: 索引构建极慢
onnx_encoder.py 已开满 CPU 线程,indexer.py 已设 batch=64。如果还慢,减少文档数量。
Q6: Ollama 连接失败
curl http://localhost:11434/api/tags
# 如果没跑
ollama serve
Q7: 中文回答混入英文
1.5B 模型对语言约束服从性弱。换 qwen2.5:7b。
Q8: PDF 解析为空
扫描版 PDF 没有文本层,个人免费版不做 OCR。用 OCR 工具预处理,或换文本版。
Q9: 端口 8000 被占用
python run.py --host 0.0.0.0 --port 8001
Q10: 如何完全卸载
pkill -f "api_server:app"
docker stop open-webui && docker rm open-webui
ollama rm qwen2.5:1.5b-instruct
rm -rf ~/morelogic-rag
转载自 CSDN-专业IT技术社区
原文链接:https://blog.csdn.net/Logical_t/article/details/166256621




