Tauri / FastAPI / Hybrid Search / RAG

File Tools 本地文件智能检索与问答系统

File Tools preview

FileTools 是一款面向海量本地文件的智能检索与问答工具,强调本地优先与隐私安全。通过混合检索(BM25 + 语义向量)和 RAG 问答流程,用户可以用自然语言快速定位文件并获得可溯源回答。

FastAPI Tauri 2.x Rust Tantivy HNSWLib fastembed

技术架构

后端服务

FastAPI 提供 RESTful API,模块化路由设计(搜索、聊天、配置、目录管理相互独立)

桌面端

Tauri 2.x(Rust)封装桌面应用,使用 WebView2 提供轻量前端容器,支持系统托盘与桌面级分发

检索引擎

Tantivy 负责全文检索(基于 Rust,速度快内存占用低),HNSWLib 处理向量相似度搜索

AI 能力

FastEmbed 生成向量,支持本地模型(Ollama / llama.cpp / LM Studio)与远程 API(SiliconFlow / DeepSeek / Custom)

项目架构

用户界面层
Tauri + WebView2
API 接口层
FastAPI (Port 18642)
核心业务层
IndexManager / SearchEngine / RAGPipeline
数据存储层
Tantivy / HNSWLib / SQLite

核心功能

混合检索

关键词检索(Tantivy BM25)+ 语义检索(HNSWLib),通过 RRF 融合排序提升召回与相关性

智能问答

RAG 流程先检索证据片段,再生成回答并附来源引用,便于核验

多格式支持

支持 PDF、Word、Excel、PPT、Markdown、TXT、CSV,并可扩展 OCR 文本提取

实时监控

文件增删改自动触发索引增量更新,不用手动重建

设置持久化

前端设置通过 API 保存到 YAML 配置文件,重启后依然有效

会话管理

智能问答支持多会话历史记录,服务器端维护,刷新不丢失

RAG 实现流程

1

检索

用户提问后,先进行语义向量召回(HNSW)与关键词召回(BM25),再通过 RRF 融合排序,得到最相关的文档片段。

2

构造 Prompt

把检索到的文档片段拼进系统提示词,加上对话历史,组成完整的上下文。

3

生成

调用本地 LLM 或 API 生成回答,同时返回引用的源文档,方便用户核对。

安装与启动

# 用户推荐:从 Releases 下载桌面安装包
# Windows: NSIS / MSI
# macOS: DMG
# Linux: AppImage / DEB
https://github.com/Dariandai/File-tools/releases

# 开发者从源码启动
git clone https://github.com/Dariandai/File-tools.git
cd File-tools
uv sync && npm install
npm run tauri dev
  • 启动后自动打开桌面窗口
  • API 服务默认监听在 127.0.0.1:18642
  • 支持 Windows / macOS / Linux

快速配置

# config.yaml 示例
ai_model:
  enabled: true
  mode: "api"  # 或 "local"
  api:
    provider: "siliconflow"  # 也支持 deepseek / custom
    api_url: "https://api.siliconflow.cn/v1/chat/completions"
    model_name: "deepseek-ai/DeepSeek-V2.5"
    keys:
      siliconflow: "your-key"
      deepseek: "your-key"

file_scanner:
  scan_paths:
    - "C:/Users/Name/Documents"

开源项目

FileTools 持续迭代中(最新发布 v1.1.2),欢迎提交 Issue 和 Pull Request。

Dariandai/File-tools
Latest: v1.1.2 (2026-04)
License: MIT