Skip to content

About

个人私有知识大脑 —— 解决隐私焦虑的本地化 RAG

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

Private Local Brain

个人私有知识大脑 —— 解决隐私焦虑的本地化 RAG 知识管理系统

项目简介

在 AI 时代,每个人都想借助 AI 提高学习或办公效率。但考虑到隐私问题,一些敏感资料(如日记、文档、照片等)都不方便上传到云端供 AI 参阅。

本项目旨在利用小参数语言模型,配合 RAG(检索增强生成)在用户终端上本地运行一个可以读取各类文档而不用担心隐私问题和订阅费用的 Agent,解决了云端 AI 在处理高敏感个人资产时的隐私悖论。

也可稍加修改,更换为更好性能的模型用于公司内部涉密部门使用。

核心特性

理解能力

  • 分章节功能:参考小说软件模式,提供"前情提要 + 下集预告"
  • 故事线梳理:读懂小说故事后能梳理完整故事线(角色、时间线、情节)
  • 跨文档关联:根据内容语义找到相关文件

编辑能力(需 MCP Server)

  • 文件修改:根据用户要求修改对应文件
  • 项目创建:自动创建 Java、Python 等项目结构

技术栈

组件 技术方案
推理引擎 LM Studio (或 Ollama)
思考模型 Qwen3-4B 或其他本地模型
Embedding BGE-M3 或其他嵌入模型
Reranker 可选
向量库 LanceDB(支持混合搜索)
前端 内置 Web 界面 / AnythingLLM
文件操作 Obsidian MCP Server

快速开始

方案一:使用 LM Studio(推荐)

  1. 安装 LM Studio

    # 访问 https://lmstudio.ai 下载并安装
    # macOS: brew install --cask lm-studio
  2. 下载模型

    • 打开 LM Studio
    • 搜索并下载模型(如 Qwen3-4B、Llama-3-8B 等)
    • 下载嵌入模型(如 bge-m3)
  3. 启动本地服务器

    • 点击 "Start Server" 按钮
    • 默认端口:1234
  4. 配置项目

    # 编辑 .env 文件或设置环境变量
    LLM_PROVIDER=lmstudio
    LMSTUDIO_BASE_URL=http://localhost:1234
    LMSTUDIO_CHAT_MODEL=Qwen3-4B  # 与 LM Studio 中加载的模型一致
    LMSTUDIO_EMBEDDING_MODEL=bge-m3

方案二:使用 Ollama(备用)

  1. 安装 Ollama

    # macOS
    brew install ollama
    
    # Linux
    curl -fsSL https://ollama.com/install.sh | sh
    
    # Windows
    # 从 https://ollama.com 下载安装程序
  2. 拉取模型

    ollama pull qwen3:4b
    ollama pull qwen3-embedding-0.6b
  3. 配置项目

    LLM_PROVIDER=ollama
    OLLAMA_BASE_URL=http://localhost:11434
    OLLAMA_CHAT_MODEL=qwen3:4b
    OLLAMA_EMBEDDING_MODEL=qwen3-embedding-0.6b

使用 Docker Compose(推荐)

# 克隆项目
git clone <repo-url>
cd Private-Local-Brain

# 启动服务
docker-compose up -d

# 访问服务
# 后端 API: http://localhost:8000
# AnythingLLM: http://localhost:3000

# 查看日志
docker-compose logs -f backend

本地开发

# 激活 Conda 环境
conda activate private-local-brain

# 启动后端(带前端界面)
cd backend
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000

# 访问前端界面
# 浏览器打开:http://localhost:8000

启动后端(确保先启动 LM Studio 或 Ollama)

cd backend uvicorn app.main:app --reload --host 0.0.0.0 --port 8000

测试 API

curl http://localhost:8000/health


### 摄入文档

```bash
# 使用脚本批量导入文档
python scripts/ingest_docs.py ~/documents

# 重建索引
python scripts/rebuild_index.py ~/documents

API 接口

聊天接口

curl -X POST http://localhost:8000/api/chat \
  -H "Content-Type: application/json" \
  -d '{
    "query": "我的日记里提到了哪些旅行计划?",
    "top_k": 5,
    "use_reranker": true
  }'

搜索接口

curl -X POST http://localhost:8000/api/search \
  -H "Content-Type: application/json" \
  -d '{
    "query": "机器学习笔记",
    "top_k": 10
  }'

上传文档

curl -X POST http://localhost:8000/api/ingest/upload \
  -F "file=@/path/to/your/document.pdf"

健康检查

curl http://localhost:8000/health

项目结构

Private-Local-Brain/
├── backend/app/
│   ├── agent/              # AI Agent 模块
│   ├── api/                # API 接口层
│   ├── analysis/           # 分析模块(故事线等)
│   ├── embedding/          # 嵌入模型
│   ├── llm/                # LLM 客户端(LM Studio/Ollama)
│   ├── loaders/            # 文档加载器
│   ├── mcp/                # MCP 集成
│   ├── rag/                # RAG 核心
│   ├── vectorstore/        # 向量存储
│   └── main.py             # 应用入口
├── scripts/
│   ├── ingest_docs.py      # 文档摄入脚本
│   └── rebuild_index.py    # 重建索引脚本
├── docker-compose.yml
└── requirements.txt

支持的文档格式

  • Markdown (.md, .markdown)
  • PDF (.pdf)
  • Word (.docx) - 待完善

配置说明

通过环境变量或 .env 文件配置:

# ========== 模型提供商选择 ==========
LLM_PROVIDER=lmstudio  # 可选:lmstudio 或 ollama

# ========== LM Studio 配置 ==========
LMSTUDIO_BASE_URL=http://localhost:1234
LMSTUDIO_CHAT_MODEL=Qwen3-4B
LMSTUDIO_EMBEDDING_MODEL=bge-m3
LMSTUDIO_TIMEOUT=120

# ========== Ollama 配置(备用) ==========
OLLAMA_BASE_URL=http://localhost:11434
OLLAMA_CHAT_MODEL=qwen3:4b
OLLAMA_EMBEDDING_MODEL=qwen3-embedding-0.6b
OLLAMA_RERANKER_MODEL=qwen3-reranker-0.6b
OLLAMA_TIMEOUT=120

# ========== LanceDB 配置 ==========
LANCEDB_PATH=./data/lancedb
VECTOR_DIMENSION=1024

# ========== RAG 配置 ==========
CHUNK_SIZE=512
CHUNK_OVERLAP=50
TOP_K=5
RERANK_TOP_K=3
HYBRID_SEARCH_ALPHA=0.7

# ========== 文件存储配置 ==========
DOCUMENTS_PATH=./data/documents
UPLOAD_PATH=./data/uploads

# ========== API 配置 ==========
API_HOST=0.0.0.0
API_PORT=8000

# ========== MCP 配置 ==========
MCP_SERVER_PATH=
OBSIDIAN_VAULT_PATH=

# ========== 日志配置 ==========
LOG_LEVEL=INFO

推荐模型配置

LM Studio 推荐配置

用途 模型 说明
聊天 Qwen3-4B / Llama-3-8B 4-8B 参数量的模型,适合本地运行
Embedding bge-m3 / nomic-embed-text 支持多语言,效果好

Ollama 推荐配置

用途 模型 说明
聊天 qwen3:4b / llama3:8b 轻量级模型
Embedding qwen3-embedding-0.6b 专用嵌入模型

开发计划

  • LM Studio 支持
  • 完善 Word 文档支持
  • 实现 MCP Server 完整集成
  • 添加更多文档格式支持(EPUB、TXT 等)
  • 优化混合搜索效果
  • 添加 Web 管理界面
  • 支持流式响应

许可证

MIT License

贡献

欢迎提交 Issue 和 Pull Request!

About

个人私有知识大脑 —— 解决隐私焦虑的本地化 RAG

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages