MS33834/Lockbox
GitHub: MS33834/Lockbox
Lockbox 是一款本地优先的加密文档管理工具,结合本地 LLM 实现自动分类、AES-256 加密存储和自然语言智能检索。
Stars: 1 | Forks: 0
# Lockbox
[](https://github.com/MS33834/lockbox)
[](https://www.python.org/downloads/)
[](LICENSE)
[](https://docs.astral.sh/ruff/)
本地优先的私密文档管理工具。自动分类、加密存储、智能检索,所有数据都在你自己的机器上。
## 它能做什么
Lockbox 监控一个目录,自动把新文件分类、加密、归档。你扔进去一个 PDF,它会用本地 LLM 判断这是什么文件(发票、合同、照片……),然后用 AES-256-GCM 加密保存,再从你眼前消失。
之后你想找什么,直接用自然语言问就行:
lockbox ask "去年的房租合同在哪"
lockbox agent "把所有财务相关的文件整理一下"
云端连接默认关闭。除非你明确授权,否则数据不会离开你的电脑。
## 快速开始
# 安装(需要 Python 3.10+)
pip install lockbox[gui,server]
# 启动本地模型(Ollama 最简单)
ollama pull qwen2.5:7b
ollama serve
# 启动 Lockbox,往 ~/Lockbox/Inbox 扔文件就行
lockbox
第一次运行会自动创建目录结构。文件进去后自动分类、加密、归档。
## 主要功能
**文件管理**
- 实时监控 Inbox 目录,自动处理新文件
- AES-256-GCM 加密存储,原子写入
- 三层密钥体系(主密钥 → 库密钥 → 文件密钥)
- SQLite + FTS5 全文搜索
- 防篡改审计日志
**智能检索**
- RAG 知识库:检索、过滤、重排、生成答案、引用来源
- 混合检索:关键词 + 语义向量,支持自定义权重
- 四层记忆系统:短期、工作、情景、长期记忆
**Agent 系统**
- ReAct 推理循环,多步骤任务执行
- JSON Schema 工具定义,兼容 OpenAI/Anthropic 格式
- 7 个内置工具:搜索、文件管理、内容分析、记忆操作等
- 5 个内置技能:文档搜索、分析、对比、信息提取、对话
**安全**
- 本地优先,云端连接默认关闭
- Linux 沙箱(bubblewrap)、Windows AppContainer
- 主密钥轮换(定时 + 紧急)
- 多租户隔离、合规审计
**界面**
- PyQt6 桌面 GUI(系统托盘 + 文件浏览器)
- REST API(FastAPI)
- 命令行工具
## 安装
# 基础版
pip install lockbox
# 桌面 GUI
pip install lockbox[gui]
# 语义搜索
pip install lockbox[semantic]
# REST API
pip install lockbox[server]
# 全部功能
pip install lockbox[gui,semantic,sync,server,multimodal]
Docker:
docker build -t lockbox .
docker run --rm -it \
--user $(id -u):$(id -g) \
-v /path/to/inbox:/inbox \
-v /path/to/vault:/vault \
lockbox --no-tray
## 配置
环境变量(优先级最高):
| 变量 | 说明 |
|------|------|
| `LOCKBOX_PATHS__INBOX` | Inbox 目录 |
| `LOCKBOX_PATHS__VAULT` | Vault 目录 |
| `LOCKBOX_SECURITY__MASTER_KEY_PROVIDER` | 主密钥提供者(`filepassword`、`dpapi`、`tpm`) |
| `LOCKBOX_MODEL__BASE_URL` | 模型地址 |
| `LOCKBOX_MODEL__MODEL_NAME` | 模型名称 |
配置文件位于 `~/Lockbox/Config/settings.json`。
## 命令行
| 命令 | 用途 |
|------|------|
| `lockbox` | 启动 Agent 监控 Inbox |
| `lockbox ask` | RAG 问答 |
| `lockbox agent` | 带工具调用的智能代理 |
| `lockbox search` | 搜索文件 |
| `lockbox status` | 查看状态 |
| `lockbox list` | 列出文件 |
| `lockbox export` | 导出文件 |
| `lockbox serve` | 启动 API 服务 |
| `lockbox import` | 批量导入 |
| `lockbox backup` | 远程备份 |
# 搜索
lockbox search "invoice 2024"
lockbox search "rent contract" --semantic --top-k 10
# 问答
lockbox ask "summarise last quarter's invoices"
# Agent
lockbox agent "Analyze all my contracts and identify key dates" --verbose
## API
`lockbox serve` 启动 REST API(默认 `127.0.0.1:8000`)。
| 方法 | 路径 | 说明 |
|------|------|------|
| GET | `/health` | 健康检查 |
| GET | `/vault/status` | 文件统计 |
| GET | `/vault/files` | 文件列表 |
| POST | `/vault/search` | 搜索 |
| POST | `/vault/ask` | RAG 问答 |
| POST | `/vault/agent` | Agent 任务 |
需要设置 `LOCKBOX_API_TOKEN` 启用认证。
## 安全模型
- **本地优先**:数据默认不离开你的机器
- **三层密钥**:主密钥(Argon2id/DPAPI/TPM)→ 库密钥(HKDF)→ 文件密钥(HKDF)
- **加密存储**:AES-256-GCM,原子写入
- **审计日志**:HMAC-SHA256 签名,防篡改
- **网络隔离**:敏感操作需要本地连接,云端连接需明确授权
- **沙箱**:Linux bubblewrap / Windows AppContainer
## 开发
git clone https://github.com/MS33834/lockbox.git
cd lockbox
pip install -e ".[gui,server,semantic,multimodal,ollama,keyring,dev]"
# 运行测试
python -m pytest tests/ -v
# 代码检查
ruff check lockbox/
ruff format lockbox/
详细指南见 [CONTRIBUTING.md](CONTRIBUTING.md)。
## 镜像
主仓库在 [GitHub](https://github.com/MS33834/lockbox),只读镜像在 [GitCode](https://gitcode.com/badhope/lockbox)。
## 许可证
[MIT License](LICENSE)
标签:AI风险缓解, Python, RAG, 人工智能, 数据加密, 文档管理, 无后门, 本地优先, 用户模式Hook绕过, 网络测绘, 请求拦截, 逆向工具