File Tools 本地文件智能检索与问答系统
FileTools 是一款面向海量本地文件的智能检索与问答工具,强调本地优先与隐私安全。通过混合检索(BM25 + 语义向量)和 RAG 问答流程,用户可以用自然语言快速定位文件并获得可溯源回答。
技术架构
后端服务
FastAPI 提供 RESTful API,模块化路由设计(搜索、聊天、配置、目录管理相互独立)
桌面端
Tauri 2.x(Rust)封装桌面应用,使用 WebView2 提供轻量前端容器,支持系统托盘与桌面级分发
检索引擎
Tantivy 负责全文检索(基于 Rust,速度快内存占用低),HNSWLib 处理向量相似度搜索
AI 能力
FastEmbed 生成向量,支持本地模型(Ollama / llama.cpp / LM Studio)与远程 API(SiliconFlow / DeepSeek / Custom)
项目架构
用户界面层
Tauri + WebView2
Tauri + WebView2
↓
API 接口层
FastAPI (Port 18642)
FastAPI (Port 18642)
↓
核心业务层
IndexManager / SearchEngine / RAGPipeline
IndexManager / SearchEngine / RAGPipeline
↓
数据存储层
Tantivy / HNSWLib / SQLite
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