Skip to content

aimerfeng/NeuralFS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🧠 NeuralFS

NeuralFS Logo

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

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

Rust Tauri SolidJS License

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

🛠️ 技术栈

层级 技术 版本 说明
前端框架 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

🚀 快速开始

环境要求

  • 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 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

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

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

📊 性能指标

指标 目标值 说明
搜索延迟 (快速模式) < 200ms 使用轻量级模型
向量搜索 (100万向量) < 100ms HNSW 索引
文件事件通知 < 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

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors