Skip to content

Repository files navigation

🧠 NeuralFS

NeuralFS Logo

AI 驱动的沉浸式文件系统外壳

将传统的"基于路径的存储"转变为"基于意图的检索"

RustTauriSolidJSLicense

English | 中文


📖 项目简介

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 # 本文件

🛠️ 技术栈

层级技术版本说明
前端框架Tauri1.5+轻量级跨平台桌面框架
UI 框架SolidJS1.8+高性能响应式 UI
后端语言Rust1.75+内存安全,零成本抽象
异步运行时Tokio1.35+高性能异步 I/O
AI 推理ONNX Runtime1.16+跨平台本地推理,CUDA 支持
向量数据库Qdrant1.7+嵌入式向量存储,HNSW 索引
关系数据库SQLite-WAL 模式,高并发
全文检索Tantivy0.21+Rust 原生搜索引擎
中文分词jieba-rs0.6+结巴分词 Rust 实现
文件监控notify-rs6.1+跨平台文件系统事件

🧪 测试覆盖

项目采用 属性测试 (Property-Based Testing) 确保核心功能的正确性:

属性编号测试内容验证需求
Property 3意图分类有效性搜索意图解析
Property 4搜索结果排序向量搜索正确性
Property 5内容片段覆盖长文档处理
Property 6VRAM 使用限制显存管理
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

🚀 快速开始

环境要求

  • Rust 1.75+ (安装)
  • Node.js 18+ (安装)
  • ONNX Runtime 1.16+ (可选,用于 AI 推理)
  • CUDA 11.8+ (可选,用于 GPU 加速)

构建步骤

# 1. 克隆仓库
git clone https://github.com/your-username/NeuralFS.git
cd NeuralFS
# 2. 安装前端依赖cd src
npm install
# 3. 构建 Watchdog Sidecarcd ../scripts
./build-sidecar.ps1 # Windows#
./build-sidecar.sh # Linux/macOS# 4. 开发模式运行cd ..
npm run tauri dev
# 5. 构建发布版本
npm run tauri build

配置 ONNX Runtime

将 ONNX Runtime DLL/dylib/so 文件放置到以下位置之一:

  • src-tauri/deps/onnxruntime/
  • 系统 PATH 中
  • 环境变量 ONNXRUNTIME_DIR

📊 性能指标

指标目标值说明
搜索延迟 (快速模式)< 200ms使用轻量级模型
向量搜索 (100万向量)< 100msHNSW 索引
文件事件通知< 1s文件监控响应
VRAM 峰值使用< 4GB为其他应用留出空间
启动时间< 3s模型懒加载

🔐 安全特性

  • 本地优先: 所有索引和嵌入向量存储在本地
  • 数据匿名化: 云端 API 调用自动移除敏感信息
  • 会话令牌: 资源服务器使用一次性令牌验证
  • CSRF 防护: Origin/Referer 检查
  • 隐私模式: 可完全禁用云端功能

📝 开发日志

v0.1.0 (开发中)

Phase 1: 骨架搭建 ✅

  • 项目结构与 Cargo 配置
  • 核心数据类型定义 (FileRecord, ContentChunk, Tag, FileRelation)
  • 错误处理系统 (NeuralFSError, ErrorRecovery trait)
  • Sidecar 构建脚本

Phase 2: 系统霸权 ✅

  • Watchdog 进程 (心跳检测、共享内存、进程重启)
  • Windows 桌面接管 (WorkerW 挂载、快捷键拦截、任务栏控制)
  • 多显示器支持与显示器变更监听
  • 系统缩略图提取 (IShellItemImageFactory)

Phase 3: 数据底层 ✅

  • SQLite 数据库 (WAL 模式、连接池、迁移管理)
  • Qdrant 向量数据库 (嵌入式、HNSW 索引)
  • Tantivy 全文检索 (多语言分词器)

Phase 4: 文件感知 ✅

  • 文件监控服务 (事件去重、目录过滤)
  • 文件系统对账 (FileID 追踪、重命名检测)
  • 内容解析器 (文本、PDF、代码)
  • 韧性索引器 (指数退避、死信队列)

Phase 5: AI 推理引擎 ✅

  • ONNX 模型管理 (懒加载、热切换)
  • VRAM 管理 (LRU 缓存、自动卸载)
  • 文本/图像嵌入 (MiniLM, CLIP)
  • 稀释注意力机制
  • 意图解析器
  • 混合推理引擎 (本地 + 云端并行)

Phase 6: 搜索与标签 ✅

  • 混合搜索引擎 (向量 + BM25)
  • 标签管理系统 (自动标签、层级导航)
  • 逻辑链条引擎 (内容相似度、会话追踪)
  • 人工介入修正 API

Phase 7: 视觉预览 ✅

  • 安全资源流服务器
  • 文件预览生成 (文本、图片、文档)
  • 高亮导航器

Phase 8: 游戏模式与更新 ✅

  • 游戏模式检测
  • 模型下载器 (断点续传)
  • 自更新系统

Phase 9: 前端集成 ✅

  • Tauri IPC 命令
  • 自定义协议注册 (nfs://)
  • 前端组件 (SearchBar, FileGrid, TagPanel, RelationGraph)

Phase 10: 首次启动与配置 ✅

  • 首次启动引导向导
  • 配置管理系统
  • 日志与遥测系统

🤝 贡献指南

欢迎贡献!请查看 CONTRIBUTING.md 了解详情。

  1. Fork 本仓库
  2. 创建特性分支 (git checkout -b feature/amazing-feature)
  3. 提交更改 (git commit -m 'Add amazing feature')
  4. 推送到分支 (git push origin feature/amazing-feature)
  5. 创建 Pull Request

📄 许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。


🙏 致谢


⭐ 如果这个项目对你有帮助,请给一个 Star!⭐

Made with ❤️ by the NeuralFS Team

About

一个本地 AI 驱动的沉浸式文件系统外壳,旨在将传统的"基于路径的存储"转变为"基于意图的检索"。系统启动后将替代用户桌面,提供语义搜索、智能标签管理、逻辑链条关联等功能。

Resources

Stars

11 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages