现在正在开发中,可以等到完善了再用
一个以AI为主导分类、人类可干预、规则可沉淀的本地文件整理工具。
- 🤖 AI驱动分类: 使用本地AI模型(如qwen3-30b-a3b)进行智能语义分析
- 🔒 程序目录保护: 自动识别并保护程序目录,防止破坏软件结构
- 📋 规则沉淀: 用户确认的分类偏好可转化为持久化规则
- 👁️ 预览确认: 所有操作默认Dry Run,完整预览后再执行
- ↩️ 支持回滚: 所有操作可撤销,历史记录完整保存
- 💬 自然语言修正: 通过提示词修改分类逻辑
cargo build --release./target/release/orderly或直接双击 orderly.exe
启动程序后,点击"浏览"选择要整理的目录。
系统会:
- 扫描所有文件
- 识别程序目录(自动锁定)
- 应用规则匹配
- 对无法匹配的文件使用AI分析
- ✓ 勾选要移动的文件
- ✗ 取消不需要移动的文件
- 🔒 程序目录内的文件无法单独移动
如果发现分类不符合预期:
- 点击"提示词修正"
- 用自然语言描述你的偏好
- 系统会将其转化为规则
示例提示词:
"以后运营商账单都放到 Bills 目录下,不要和普通发票混在一起"
- 点击"预览执行"
- 确认变更清单
- 点击"执行"
src/
├── main.rs # 程序入口
├── core/ # 核心业务逻辑
│ ├── models.rs # 数据模型定义
│ ├── scanner.rs # 文件扫描器
│ ├── boundary.rs # 目录边界识别
│ ├── semantic.rs # AI语义分析
│ ├── rule_engine.rs # 规则引擎
│ ├── planner.rs # 移动计划生成
│ └── executor.rs # 执行与回滚
├── ui/ # 用户界面
│ ├── app.rs # 主应用程序
│ ├── preview_table.rs # 预览表格
│ ├── rule_panel.rs # 规则管理面板
│ ├── dialogs.rs # 对话框组件
│ └── styles.rs # 样式定义
└── storage/ # 数据持久化
├── database.rs # SQLite存储
└── config.rs # 配置管理
默认使用Ollama本地服务:
API端点: http://localhost:11434/api/generate
模型: qwen3:30b-a3b
也支持 OpenAI 接口(以及 OpenAI 兼容接口)。
- 推荐填写:
http://localhost:11434/api/generate - 也可以只填:
http://localhost:11434(程序会自动补齐到/api/generate)
- 推荐填写:
https://api.openai.com/v1/chat/completions - 也可以只填:
https://api.openai.com/v1(程序会自动补齐到/chat/completions) - 需要在设置里填写
API 密钥(即 OpenAI API Key) - 模型名称填写你账号可用的模型名(例如:
gpt-4o-mini,以实际可用为准)
- 如果你的服务端只暴露
Responses风格接口,可填写:https://api.openai.com/v1/responses - 仍需填写
API 密钥
系统预置了以下分类规则:
- 图片文件 → Pictures/{year}/{month}
- 视频文件 → Videos/{year}
- 音频文件 → Music/{year}
- 文档文件 → Documents/{year}
- 压缩文件 → Archives/{year}
- 发票账单 → Finance/Invoice/{year}
以下目录会被自动标记为"原子目录",内部文件不可单独移动:
- 包含
.exe+.dll的目录 - 包含
package.json的Node.js项目 - 包含
Cargo.toml的Rust项目 - 包含
requirements.txt的Python项目 node_modules,venv,target等目录
- ❌ 自动执行文件移动(必须预览确认)
- ❌ 拆分程序目录
- ❌ 静默修改规则
- ❌ 删除任何文件
- Rust 1.70+
- egui/eframe
- tokio
- rusqlite
cargo testMIT License