Skip to content

ModerRAS/Orderly

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

现在正在开发中,可以等到完善了再用

Orderly - AI增强型本地文件整理工具

Language GUI AI

一个以AI为主导分类、人类可干预、规则可沉淀的本地文件整理工具。

✨ 特性

  • 🤖 AI驱动分类: 使用本地AI模型(如qwen3-30b-a3b)进行智能语义分析
  • 🔒 程序目录保护: 自动识别并保护程序目录,防止破坏软件结构
  • 📋 规则沉淀: 用户确认的分类偏好可转化为持久化规则
  • 👁️ 预览确认: 所有操作默认Dry Run,完整预览后再执行
  • ↩️ 支持回滚: 所有操作可撤销,历史记录完整保存
  • 💬 自然语言修正: 通过提示词修改分类逻辑

🚀 快速开始

编译

cargo build --release

运行

./target/release/orderly

或直接双击 orderly.exe

📖 使用指南

1. 选择扫描目录

启动程序后,点击"浏览"选择要整理的目录。

2. 预览分类结果

系统会:

  1. 扫描所有文件
  2. 识别程序目录(自动锁定)
  3. 应用规则匹配
  4. 对无法匹配的文件使用AI分析

3. 调整选择

  • ✓ 勾选要移动的文件
  • ✗ 取消不需要移动的文件
  • 🔒 程序目录内的文件无法单独移动

4. 修正规则

如果发现分类不符合预期:

  1. 点击"提示词修正"
  2. 用自然语言描述你的偏好
  3. 系统会将其转化为规则

示例提示词:

"以后运营商账单都放到 Bills 目录下,不要和普通发票混在一起"

5. 执行移动

  1. 点击"预览执行"
  2. 确认变更清单
  3. 点击"执行"

🏗️ 项目结构

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        # 配置管理

⚙️ 配置

AI配置

默认使用Ollama本地服务:

API端点: http://localhost:11434/api/generate
模型: qwen3:30b-a3b

也支持 OpenAI 接口(以及 OpenAI 兼容接口)。

Ollama

  • 推荐填写:http://localhost:11434/api/generate
  • 也可以只填:http://localhost:11434(程序会自动补齐到 /api/generate

OpenAI(Chat Completions)

  • 推荐填写:https://api.openai.com/v1/chat/completions
  • 也可以只填:https://api.openai.com/v1(程序会自动补齐到 /chat/completions
  • 需要在设置里填写 API 密钥(即 OpenAI API Key)
  • 模型名称填写你账号可用的模型名(例如:gpt-4o-mini,以实际可用为准)

OpenAI(Responses,可选)

  • 如果你的服务端只暴露 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 test

📝 许可证

MIT License

🙏 致谢

  • egui - 纯Rust GUI框架
  • Qwen - 本地AI模型

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages