NeuralFS 是一个革命性的本地 AI 驱动桌面替代应用,它重新定义了文件管理的方式。不再需要记住文件路径或文件名,只需用自然语言描述你想要的内容,NeuralFS 就能帮你找到。
| 特性 | 描述 |
|---|---|
| 🔍 语义搜索 | 使用自然语言描述查找文件,支持文件级和段落级搜索 |
| 🏷️ 智能标签 | AI 自动分析文件内容并生成标签,支持层级导航 |
| 🔗 逻辑链条 | 智能发现文件之间的关联关系,构建知识图谱 |
| 🖥️ 桌面接管 | 完全替代传统桌面环境,提供沉浸式体验 |
| 🎮 游戏模式 | 自动检测全屏应用,释放 GPU 资源 |
| ☁️ 混合推理 | 本地 + 云端 AI 并行处理,快速响应 |
| 🔒 隐私优先 | 所有数据本地存储,云端调用自动匿名化 |
┌─────────────────────────────────────────────────────────────────────────────┐
│ NeuralFS Shell (Tauri) │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────────────┐ │
│ │ SearchBar │ │ FileGrid │ │ TagPanel │ │ RelationGraph │ │
│ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘ └────────┬─────────┘ │
│ │ │ │ │ │
│ ┌──────┴─────────────────┴─────────────────┴────────────────────┴────────┐ │
│ │ Tauri IPC Bridge │ │
│ └────────────────────────────────┬───────────────────────────────────────┘ │
└───────────────────────────────────┼──────────────────────────────────────────┘
│
┌───────────────────────────────────┼──────────────────────────────────────────┐
│ Rust Backend │
│ ┌────────────────────────────────┴───────────────────────────────────────┐ │
│ │ Command Router (AppState) │ │
│ └────┬──────────┬──────────┬──────────┬──────────┬──────────┬───────────┘ │
│ │ │ │ │ │ │ │
│ ┌────┴────┐ ┌───┴────┐ ┌───┴────┐ ┌───┴────┐ ┌───┴────┐ ┌───┴─────┐ │
│ │ Search │ │ Index │ │ Tag │ │ Logic │ │ Hybrid │ │ Config │ │
│ │ Engine │ │ Service│ │Manager │ │ Chain │ │Inference│ │ Manager │ │
│ └────┬────┘ └───┬────┘ └───┬────┘ └───┬────┘ └───┬────┘ └─────────┘ │
│ │ │ │ │ │ │
│ ┌────┴──────────┴──────────┴──────────┴──────────┴────────────────────┐ │
│ │ Core Data Layer │ │
│ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌────────────┐ │ │
│ │ │ VectorStore │ │ MetadataDB │ │ TextIndex │ │ ConfigStore│ │ │
│ │ │ (Qdrant) │ │ (SQLite) │ │ (Tantivy) │ │ (JSON) │ │ │
│ │ └─────────────┘ └─────────────┘ └─────────────┘ └────────────┘ │ │
│ └──────────────────────────────────────────────────────────────────────┘ │
└──────────────────────────────────────────────────────────────────────────────┘
NeuralFS/
├── 📂 src/ # 前端源码 (SolidJS + TypeScript)
│ ├── 📂 api/ # Tauri API 封装
│ │ └── tauri.ts # IPC 调用封装
│ ├── 📂 components/ # UI 组件
│ │ ├── 📂 SearchBar/ # 搜索栏组件
│ │ ├── 📂 FileGrid/ # 文件网格组件
│ │ ├── 📂 TagPanel/ # 标签面板组件
│ │ ├── 📂 RelationGraph/ # 关联图谱组件
│ │ ├── 📂 Settings/ # 设置面板组件
│ │ └── 📂 OnboardingWizard/ # 首次启动向导
│ ├── 📂 types/ # TypeScript 类型定义
│ │ ├── search.ts # 搜索相关类型
│ │ ├── tags.ts # 标签相关类型
│ │ ├── relations.ts # 关联相关类型
│ │ ├── config.ts # 配置相关类型
│ │ └── onboarding.ts # 引导相关类型
│ ├── 📂 styles/ # 全局样式
│ ├── App.tsx # 主应用组件
│ ├── index.tsx # 入口文件
│ └── package.json # 前端依赖配置
│
├── 📂 src-tauri/ # Rust 后端源码
│ ├── 📂 src/
│ │ ├── 📂 core/ # 🔧 核心模块
│ │ │ ├── config.rs # 应用配置
│ │ │ ├── error.rs # 错误处理系统
│ │ │ ├── runtime.rs # 运行时依赖检查
│ │ │ ├── utils.rs # 工具函数
│ │ │ └── 📂 types/ # 核心数据类型
│ │ │ ├── file.rs # 文件记录结构
│ │ │ ├── chunk.rs # 内容片段结构
│ │ │ ├── tag.rs # 标签系统结构
│ │ │ ├── relation.rs # 关联系统结构
│ │ │ └── search.rs # 搜索请求/响应
│ │ │
│ │ ├── 📂 watchdog/ # 🐕 进程监控系统
│ │ │ ├── heartbeat.rs # 心跳检测
│ │ │ ├── shared_memory.rs # 跨进程共享内存
│ │ │ └── supervisor.rs # 进程重启与恢复
│ │ │
│ │ ├── 📂 os/ # 🖥️ 操作系统集成
│ │ │ ├── activity.rs # 系统活动监控
│ │ │ ├── stub.rs # 非 Windows 平台桩
│ │ │ ├── 📂 windows/ # Windows 特定实现
│ │ │ │ ├── desktop.rs # WorkerW 桌面挂载
│ │ │ │ ├── keyboard.rs # 低级键盘钩子
│ │ │ │ ├── taskbar.rs # 任务栏控制
│ │ │ │ ├── monitor.rs # 多显示器支持
│ │ │ │ ├── display_listener.rs # 显示器变更监听
│ │ │ │ └── handle_manager.rs # 窗口句柄管理
│ │ │ └── 📂 thumbnail/ # 系统缩略图提取
│ │ │ ├── cache.rs # LRU 缓存
│ │ │ ├── windows_impl.rs # Windows IShellItemImageFactory
│ │ │ └── stub_impl.rs # 跨平台桩实现
│ │ │
│ │ ├── 📂 db/ # 💾 数据库层
│ │ │ ├── mod.rs # SQLite 连接池 (WAL 模式)
│ │ │ └── migration.rs # Schema 迁移管理
│ │ │
│ │ ├── 📂 vector/ # 🔢 向量数据库
│ │ │ ├── store.rs # Qdrant 嵌入式存储
│ │ │ ├── config.rs # HNSW 索引配置
│ │ │ └── error.rs # 向量操作错误
│ │ │
│ │ ├── 📂 search/ # 🔍 搜索引擎
│ │ │ ├── hybrid.rs # 混合搜索 (向量 + BM25)
│ │ │ ├── intent.rs # 意图解析器
│ │ │ ├── text_index.rs # Tantivy 全文索引
│ │ │ └── tokenizer.rs # 多语言分词器
│ │ │
│ │ ├── 📂 watcher/ # 👁️ 文件监控
│ │ │ ├── mod.rs # 文件系统事件监听
│ │ │ └── filter.rs # 目录过滤器
│ │ │
│ │ ├── 📂 reconcile/ # 🔄 文件系统对账
│ │ │ └── mod.rs # 启动时 Diff + FileID 追踪
│ │ │
│ │ ├── 📂 parser/ # 📄 内容解析器
│ │ │ ├── text.rs # 文本文件解析
│ │ │ ├── pdf.rs # PDF 解析
│ │ │ └── code.rs # 代码文件解析
│ │ │
│ │ ├── 📂 indexer/ # 📇 索引服务
│ │ │ └── mod.rs # 韧性批量索引器
│ │ │
│ │ ├── 📂 embeddings/ # 🧬 嵌入引擎
│ │ │ ├── mod.rs # ONNX 模型管理
│ │ │ ├── text_embedder.rs # 文本嵌入 (MiniLM)
│ │ │ ├── image_embedder.rs # 图像嵌入 (CLIP)
│ │ │ ├── diluted.rs # 稀释注意力机制
│ │ │ ├── vram_manager.rs # VRAM 管理
│ │ │ └── model_manager.rs # 模型热加载
│ │ │
│ │ ├── 📂 inference/ # 🤖 推理引擎
│ │ │ ├── hybrid.rs # 混合推理调度
│ │ │ ├── local.rs # 本地推理引擎
│ │ │ ├── cloud.rs # 云端 API 桥接
│ │ │ ├── merger.rs # 结果合并器
│ │ │ └── anonymizer.rs # 数据匿名化
│ │ │
│ │ ├── 📂 tag/ # 🏷️ 标签管理
│ │ │ ├── manager.rs # 标签管理器
│ │ │ ├── hierarchy.rs # 标签层级
│ │ │ ├── correction.rs # 人工修正 API
│ │ │ └── sensitive.rs # 敏感标签检测
│ │ │
│ │ ├── 📂 relation/ # 🔗 关联引擎
│ │ │ ├── engine.rs # 逻辑链条引擎
│ │ │ ├── session.rs # 会话追踪
│ │ │ ├── correction.rs # 关联修正 API
│ │ │ └── block_rules.rs # 屏蔽规则
│ │ │
│ │ ├── 📂 asset/ # 🖼️ 资源服务
│ │ │ ├── server.rs # 安全资源流服务器
│ │ │ ├── routes.rs # HTTP 路由
│ │ │ └── error.rs # 资源错误
│ │ │
│ │ ├── 📂 preview/ # 👀 文件预览
│ │ │ ├── text.rs # 文本预览生成
│ │ │ ├── image.rs # 图片预览生成
│ │ │ └── document.rs # 文档预览生成
│ │ │
│ │ ├── 📂 highlight/ # ✨ 高亮导航
│ │ │ ├── navigator.rs # 内容定位导航
│ │ │ └── launcher.rs # 应用启动器
│ │ │
│ │ ├── 📂 update/ # 🔄 更新系统
│ │ │ ├── model.rs # 模型下载器
│ │ │ └── self_update.rs # 应用自更新
│ │ │
│ │ ├── 📂 protocol/ # 🔌 自定义协议
│ │ │ └── handler.rs # nfs:// 协议处理
│ │ │
│ │ ├── 📂 logging/ # 📝 日志系统
│ │ │ ├── config.rs # 日志配置
│ │ │ ├── rotation.rs # 日志轮转
│ │ │ ├── export.rs # 日志导出
│ │ │ └── metrics.rs # 性能指标
│ │ │
│ │ ├── 📂 telemetry/ # 📊 遥测系统
│ │ │ ├── collector.rs # 数据收集器
│ │ │ ├── consent.rs # 用户同意管理
│ │ │ └── events.rs # 事件定义
│ │ │
│ │ ├── 📂 config/ # ⚙️ 配置管理
│ │ │ ├── storage.rs # JSON 配置存储
│ │ │ └── migration.rs # 配置迁移
│ │ │
│ │ ├── 📂 commands/ # 📡 Tauri IPC 命令
│ │ │ ├── search.rs # 搜索命令
│ │ │ ├── tags.rs # 标签命令
│ │ │ ├── relations.rs # 关联命令
│ │ │ ├── config.rs # 配置命令
│ │ │ ├── status.rs # 状态命令
│ │ │ ├── protocol.rs # 协议命令
│ │ │ └── onboarding.rs # 引导命令
│ │ │
│ │ ├── lib.rs # 库入口
│ │ └── main.rs # 应用入口
│ │
│ ├── 📂 bin/
│ │ └── watchdog.rs # Watchdog 独立进程
│ │
│ ├── 📂 migrations/ # 数据库迁移脚本
│ │ ├── 001_initial_schema.sql
│ │ ├── 002_add_file_id.sql
│ │ └── 003_add_session_columns.sql
│ │
│ ├── 📂 binaries/ # Sidecar 二进制文件
│ ├── 📂 deps/ # 外部依赖 (ONNX Runtime)
│ ├── Cargo.toml # Rust 依赖配置
│ ├── build.rs # 构建脚本
│ └── tauri.conf.json # Tauri 配置
│
├── 📂 scripts/ # 构建脚本
│ ├── build-sidecar.ps1 # Windows Sidecar 构建
│ ├── build-sidecar.sh # Unix Sidecar 构建
│ └── verify-final-checkpoint.ps1 # 测试验证脚本
│
├── 📂 .kiro/ # Kiro 规格文档
│ └── 📂 specs/
│ └── 📂 neural-fs-core/
│ ├── requirements.md # 需求文档
│ ├── design.md # 设计文档
│ ├── tasks.md # 任务列表
│ └── FINAL_CHECKPOINT_REPORT.md
│
└── README.md # 本文件
| 层级 | 技术 | 版本 | 说明 |
|---|---|---|---|
| 前端框架 | Tauri | 1.5+ | 轻量级跨平台桌面框架 |
| UI 框架 | SolidJS | 1.8+ | 高性能响应式 UI |
| 后端语言 | Rust | 1.75+ | 内存安全,零成本抽象 |
| 异步运行时 | Tokio | 1.35+ | 高性能异步 I/O |
| AI 推理 | ONNX Runtime | 1.16+ | 跨平台本地推理,CUDA 支持 |
| 向量数据库 | Qdrant | 1.7+ | 嵌入式向量存储,HNSW 索引 |
| 关系数据库 | SQLite | - | WAL 模式,高并发 |
| 全文检索 | Tantivy | 0.21+ | Rust 原生搜索引擎 |
| 中文分词 | jieba-rs | 0.6+ | 结巴分词 Rust 实现 |
| 文件监控 | notify-rs | 6.1+ | 跨平台文件系统事件 |
项目采用 属性测试 (Property-Based Testing) 确保核心功能的正确性:
| 属性编号 | 测试内容 | 验证需求 |
|---|---|---|
| Property 3 | 意图分类有效性 | 搜索意图解析 |
| Property 4 | 搜索结果排序 | 向量搜索正确性 |
| Property 5 | 内容片段覆盖 | 长文档处理 |
| Property 6 | VRAM 使用限制 | 显存管理 |
| Property 7 | 搜索延迟边界 | 性能要求 |
| Property 8-9 | 标签系统完整性 | 智能标签 |
| Property 10-16 | 关联系统正确性 | 逻辑链条 |
| Property 17-18 | 序列化往返 | 数据持久化 |
| Property 19-22 | 混合搜索正确性 | 搜索引擎 |
| Property 23 | 模型下载完整性 | 更新系统 |
| Property 26 | 心跳可靠性 | 进程监控 |
| Property 27-38 | 资源服务安全 | 安全性 |
| Property 39-42 | 索引器韧性 | 错误恢复 |
运行测试:
cd src-tauri
cargo test --lib# 1. 克隆仓库
git clone https://github.com/your-username/NeuralFS.git
cd NeuralFS
# 2. 安装前端依赖
cd src
npm install
# 3. 构建 Watchdog Sidecar
cd ../scripts
./build-sidecar.ps1 # Windows
# 或
./build-sidecar.sh # Linux/macOS
# 4. 开发模式运行
cd ..
npm run tauri dev
# 5. 构建发布版本
npm run tauri build将 ONNX Runtime DLL/dylib/so 文件放置到以下位置之一:
src-tauri/deps/onnxruntime/- 系统 PATH 中
- 环境变量
ONNXRUNTIME_DIR
| 指标 | 目标值 | 说明 |
|---|---|---|
| 搜索延迟 (快速模式) | < 200ms | 使用轻量级模型 |
| 向量搜索 (100万向量) | < 100ms | HNSW 索引 |
| 文件事件通知 | < 1s | 文件监控响应 |
| VRAM 峰值使用 | < 4GB | 为其他应用留出空间 |
| 启动时间 | < 3s | 模型懒加载 |
- 本地优先: 所有索引和嵌入向量存储在本地
- 数据匿名化: 云端 API 调用自动移除敏感信息
- 会话令牌: 资源服务器使用一次性令牌验证
- CSRF 防护: Origin/Referer 检查
- 隐私模式: 可完全禁用云端功能
- 项目结构与 Cargo 配置
- 核心数据类型定义 (FileRecord, ContentChunk, Tag, FileRelation)
- 错误处理系统 (NeuralFSError, ErrorRecovery trait)
- Sidecar 构建脚本
- Watchdog 进程 (心跳检测、共享内存、进程重启)
- Windows 桌面接管 (WorkerW 挂载、快捷键拦截、任务栏控制)
- 多显示器支持与显示器变更监听
- 系统缩略图提取 (IShellItemImageFactory)
- SQLite 数据库 (WAL 模式、连接池、迁移管理)
- Qdrant 向量数据库 (嵌入式、HNSW 索引)
- Tantivy 全文检索 (多语言分词器)
- 文件监控服务 (事件去重、目录过滤)
- 文件系统对账 (FileID 追踪、重命名检测)
- 内容解析器 (文本、PDF、代码)
- 韧性索引器 (指数退避、死信队列)
- ONNX 模型管理 (懒加载、热切换)
- VRAM 管理 (LRU 缓存、自动卸载)
- 文本/图像嵌入 (MiniLM, CLIP)
- 稀释注意力机制
- 意图解析器
- 混合推理引擎 (本地 + 云端并行)
- 混合搜索引擎 (向量 + BM25)
- 标签管理系统 (自动标签、层级导航)
- 逻辑链条引擎 (内容相似度、会话追踪)
- 人工介入修正 API
- 安全资源流服务器
- 文件预览生成 (文本、图片、文档)
- 高亮导航器
- 游戏模式检测
- 模型下载器 (断点续传)
- 自更新系统
- Tauri IPC 命令
- 自定义协议注册 (nfs://)
- 前端组件 (SearchBar, FileGrid, TagPanel, RelationGraph)
- 首次启动引导向导
- 配置管理系统
- 日志与遥测系统
欢迎贡献!请查看 CONTRIBUTING.md 了解详情。
- Fork 本仓库
- 创建特性分支 (
git checkout -b feature/amazing-feature) - 提交更改 (
git commit -m 'Add amazing feature') - 推送到分支 (
git push origin feature/amazing-feature) - 创建 Pull Request
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。
- Tauri - 跨平台桌面框架
- SolidJS - 响应式 UI 框架
- Qdrant - 向量数据库
- Tantivy - 全文搜索引擎
- ONNX Runtime - AI 推理引擎
⭐ 如果这个项目对你有帮助,请给一个 Star!⭐
Made with ❤️ by the NeuralFS Team