一、立项背景和目标
在日常学习与工作中,人们经常需要处理大量文档资料,如 PDF 教材、Word 讲义、TXT 笔记等。传统文件管理方式存在文档分散、信息检索低效、分类混乱、缺乏智能交互等痛点。基于此,我们立项开发小P AI 文件助手,旨在将 AI 大模型能力与桌面文件管理相结合,为用户提供一站式的文档智能阅读、分类与管理体验。项目目标是构建统一的文档阅读平台,实现 AI 驱动的文档分析与智能归类,提供现代化交互体验,并保障用户数据安全与隐私。
二、软件功能与核心模块
小P AI 文件助手是一款基于 Electron 框架的 Windows 桌面应用,核心围绕"AI + 文件管理"两条主线设计。
AI 智能对话模块位于左侧面板,用户可发送消息与 AI 互动,AI 以打字机效果流式回复。上传或双击打开文件后,AI 自动关联该文件,用户可针对文件内容提问。支持一键新建对话,重置上下文。
文件管理与浏览模块位于右侧面板,以目录形式展示 UserFile 文件夹内容,提供面包屑导航。支持新建文件夹、删除、重命名、双击打开文件等基本操作。AI 分析文件后给出分类建议,用户确认后自动归入对应分类文件夹。
文件导入支持拖拽上传(显示遮罩层)和按键上传(多选),上传后自动触发 AI 分析生成摘要与标签。
AI 配置管理模块支持首次启动时配置 API Key 和 Base URL,可测试连接,主界面设置按钮可随时返回修改配置。
文档内容提取支持 TXT、DOCX、PDF 三种格式,AI 读取完整文档内容而非截断,确保信息完整性。
三、业务流程概述
应用启动后,首先判断是否已配置 API,未配置则弹出配置界面,填写并测试连接后进入主界面。
文件导入与智能分类流程:用户拖入或按键上传文件,渲染进程通过 IPC 发送文件路径到主进程,主进程解析文件内容并调用 AI 分析,生成摘要和分类标签。AI 以对话形式询问用户分类意向,用户点击标签确认后,主进程在 UserFile 下对应分类文件夹中创建文件,右侧浏览器刷新。
对话问答流程:用户在左侧输入问题,如果有当前关联文档则连同文档内容一起发送给 AI,否则仅发送问题。AI 以打字机效果回复,对话区自动滚动到底部。
文件浏览操作流程:单击选中文件,双击文件用系统默认应用打开,双击文件夹进入目录,面包屑可点击返回上级。选中后可使用删除、重命名功能,也可在当前目录新建文件夹。
新建对话流程:点击"新建对话"按钮,清空历史记录和关联文档,对话区仅显示欢迎语,后续消息不再关联前文。
应用采用 Electron 三层架构:渲染进程负责 UI 展示,preload.js 作为安全桥梁暴露有限 IPC 接口,主进程负责文件系统操作和 AI API 调用,全程遵循安全最佳实践。
本软件采用 Electron 三层架构体系,遵循安全最佳实践。核心设计思路是将 AI 大模型能力嵌入桌面文件管理流程,通过 IPC 进程间通信实现前端与后端的安全数据交换。技术栈包括:Electron 作为桌面框架层,原生 HTML5、CSS3 和 JavaScript 构建前端界面,Node.js 运行于主进程处理后端逻辑,mammoth 和 pdfjs-dist 负责文档解析,OpenAI 标准格式调用 AI 接口,本地 JSON 文件持久化配置。
项目全部开发工作由我独立完成。前端界面模块实现了左右双栏布局,左侧 AI 对话栏占百分之四十,右侧文件浏览栏占百分之六十,采用暗色扁平风设计,整页禁止外部滚动条,各区域独立滚动。实现了全局拖拽上传遮罩层、流式打字机回复、对话自动滚动、新建对话清空上下文等功能。文件浏览器模块实现了目录导航与面包屑路径显示,支持新建文件夹、删除、重命名等操作,并将访问范围限定在 UserFile 目录内。AI 对话模块实现了完整的文档上下文关联与智能分类功能,上传文件后 AI 自动分析生成摘要和标签,用户确认后自动归类到对应文件夹。文件解析模块支持 TXT、DOCX、PDF 三种格式,AI 读取完整文档内容而非截断。
开发过程中遇到的主要难点及解决方案如下:一是 PDF 解析库兼容问题,pdf-parse 对中文支持差,切换为 pdfjs-dist v6 legacy 版配合动态导入和 Uint8Array 格式解决。二是 AI 上下文串联问题,通过在设计发送请求前同步关联文档状态,并将完整文档注入system prompt来解决。三是拖拽上传时鼠标显示禁止符号,通过在dragenter和dragover事件中同时阻止默认行为解决。四是智能分类的交互设计,改为AI以对话形式输出标签,用户点击确认后再执行文件移动,兼顾了自然交互与用户控制权。五是路径编码问题,所有文件操作统一使用path.resolve和path.join规范化处理,增强系统兼容性。