MS33834/Lockbox

GitHub: MS33834/Lockbox

Lockbox 是一款本地优先的加密文档管理工具,结合本地 LLM 实现自动分类、AES-256 加密存储和自然语言智能检索。

Stars: 1 | Forks: 0

# Lockbox [![Tests](https://img.shields.io/badge/tests-882%20passed-brightgreen.svg)](https://github.com/MS33834/lockbox) [![Python](https://img.shields.io/badge/python-3.10%2B-blue.svg)](https://www.python.org/downloads/) [![License: MIT](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE) [![Code style: ruff](https://img.shields.io/badge/code%20style-ruff-000000.svg)](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绕过, 网络测绘, 请求拦截, 逆向工具