行业资讯
📅 2026/8/13 12:00:45
智能文档助手:基于RAG的本地化文档问答系统实战指南
引言在信息爆炸的时代如何快速从海量文档中获取精准答案成为企业和个人的迫切需求。传统的文档检索方式效率低下而基于大语言模型的智能问答系统则为我们提供了全新的解决方案。今天我将为大家介绍一个开箱即用的智能文档助手项目——Smart Doc Assistant这是一个基于RAG检索增强生成技术的本地化文档问答系统。项目概述智能文档助手Smart Doc Assistant是一个功能完整的RAG应用支持上传PDF、Word、TXT等多种格式文档通过AI自动理解文档内容并回答用户问题。项目采用前后端分离架构支持一键启动、多模型服务商接入并提供了完善的文档管理和对话功能。核心特性多格式支持PDF、DOCX、TXT文档解析智能检索基于语义相似度的文档检索智能对话普通对话与流式输出打字机效果美观界面Vue 3 Element Plus现代化UI开箱即用跨平台一键启动脚本多模型支持DeepSeek、OpenAI、智谱AI、Ollama等快速开始环境要求在开始之前请确保您的系统满足以下要求依赖版本要求说明Python≥ 3.10后端运行环境Node.js≥ 18前端构建工具链npm≥ 9前端包管理器一键启动推荐Windows用户双击项目根目录下的setup_and_run.bat文件脚本会自动完成以下所有步骤环境检测检查Python 3.10、Node.js 18、npm是否已安装配置文件自动从.env.example创建backend/.env首次运行时可交互输入API KeyPython环境创建虚拟环境并安装全部Python依赖前端依赖安装npm依赖启动服务弹出后端窗口端口8000和前端窗口端口3000健康检查轮询等待服务就绪最多30秒确认可用后自动打开浏览器Mac/Linux用户在终端中执行以下命令cdsmart-doc-assistant-masterchmodx setup_and_run.sh ./setup_and_run.shAPI Key配置启动前需要配置大模型API Key编辑backend/.env文件# 使用DeepSeek推荐国内可用价格低廉 OPENAI_API_KEYsk-你的密钥 OPENAI_BASE_URLhttps://api.deepseek.com/v1 CHAT_MODELdeepseek-chat # 或使用OpenAI官方 # OPENAI_API_KEYsk-你的密钥 # OPENAI_BASE_URLhttps://api.openai.com/v1 # CHAT_MODELgpt-4o # 或使用智谱AI # OPENAI_API_KEY你的智谱APIKey # OPENAI_BASE_URLhttps://open.bigmodel.cn/api/paas/v4 # CHAT_MODELglm-4-flash # 或使用本地Ollama # OPENAI_API_KEYollama # OPENAI_BASE_URLhttp://localhost:11434/v1 # CHAT_MODELqwen2.5:7b重要提示系统会自动检测API端点类型。使用DeepSeek、智谱AI等不提供嵌入接口的服务时会自动回退到本地all-MiniLM-L6-v2模型进行文档向量化无需额外配置嵌入模型API Key。项目架构详解目录结构smart-doc-assistant-master/ ├── setup_and_run.bat # Windows一键启动脚本 ├── setup_and_run.sh # Mac/Linux一键启动脚本 ├── .env.example # 环境变量配置模板 ├── README.md # 项目说明文档 │ ├── backend/ # 后端 — FastAPI LangChain ChromaDB │ ├── app/ │ │ ├── main.py # FastAPI应用入口 │ │ ├── config.py # 全局配置管理 │ │ ├── api/ # REST API接口层 │ │ ├── services/ # 业务逻辑层 │ │ └── models/ # 数据模型 │ ├── requirements.txt # Python依赖清单 │ ├── uploads/ # 上传文件存储目录 │ └── chroma_db/ # 向量数据持久化目录 │ └── frontend/ # 前端 — Vue 3 TypeScript Vite ├── src/ │ ├── components/ # UI组件 │ ├── composables/ # 组合式函数 │ ├── types/ # TypeScript类型定义 │ └── utils/ # 工具函数 └── vite.config.ts # Vite配置技术栈层级技术说明后端框架Python FastAPI异步高性能Web框架RAG框架LangChain文档加载、文本分片、检索链向量数据库ChromaDB轻量级本地向量存储嵌入模型OpenAI Embeddings / 本地all-MiniLM-L6-v2自动根据API端点选择LLM调用OpenAI Compatible API支持所有兼容OpenAI接口的服务前端框架Vue 3 Composition API组件化UI框架UI组件库Element Plus企业级Vue 3组件库构建工具Vite 6极速前端构建语言TypeScript类型安全的前端开发核心功能使用指南1. 文档上传与管理系统支持三种文档格式PDF自动提取文本内容DOCX解析Word文档TXT支持UTF-8、GBK、GB2312等多种编码上传流程点击左侧「上传文档」按钮选择文件或拖拽到上传区域系统自动解析、分块、向量化文档出现在左侧文档列表中2. 智能问答系统提供两种问答模式文档专属问答点击左侧文档针对该文档提问全局知识库问答选择「新建对话」基于所有已上传文档提问问答特性✅ 显示参考来源和相关度评分✅ 支持多轮对话上下文记忆✅ 普通对话与流式输出SSE协议✅ 复制答案和重新生成功能3. API接口启动后端后访问http://localhost:8000/docs查看Swagger交互式文档。主要接口文档管理上传、列表、详情、删除、统计对话聊天普通对话、流式对话、对话历史管理系统管理关闭项目使用流程配置API Key编辑backend/.env一键启动setup_and_run.bat/.sh上传文档PDF/DOCX/TXT选择文档或新建对话输入问题获取智能回答查看来源和相关度评分常见问题排查Q: 启动后无法访问 http://localhost:3000解决方案查看弹出的后端/前端窗口错误信息检查端口是否被占用脚本会自动清理确认API Key配置正确手动安装依赖cd backend venv\Scripts\python.exe -m pip install -r requirements.txtQ: 上传文档处理失败可能原因文件格式不支持仅支持PDF、.docx、.txt文件大小超过50MB限制文件编码问题TXT文件推荐UTF-8编码查看后端窗口日志获取详细错误信息Q: 对话时显示API Key无效解决方案确认backend/.env中的OPENAI_API_KEY配置正确注册对应服务商获取API KeyDeepSeekplatform.deepseek.comOpenAIplatform.openai.com/api-keys智谱AIopen.bigmodel.cnQ: 如何更换大模型服务商编辑backend/.env文件修改以下配置# 智谱AI示例 OPENAI_API_KEY你的智谱APIKey OPENAI_BASE_URLhttps://open.bigmodel.cn/api/paas/v4 CHAT_MODELglm-4-flash # 本地Ollama示例 OPENAI_API_KEYollama OPENAI_BASE_URLhttp://localhost:11434/v1 CHAT_MODELqwen2.5:7b停止服务方式一浏览器一键关闭推荐在浏览器网页右上角点击「关闭项目」按钮确认后系统将自动停止后端和前端服务。方式二手动关闭Windows关闭弹出的「SmartDoc-Backend」和「SmartDoc-Frontend」命令行窗口Mac/Linux在终端按Ctrl C停止所有服务总结智能文档助手Smart Doc Assistant是一个功能完善、易于部署的RAG应用具有以下优势开箱即用提供跨平台一键启动脚本降低部署门槛灵活扩展支持多种大模型服务商可根据需求自由切换用户体验优秀现代化的Web界面支持深浅主题切换功能完整从文档上传到智能问答的全流程覆盖技术栈先进采用FastAPI、Vue 3、LangChain等主流技术无论是个人学习、企业知识库建设还是作为RAG技术的入门实践项目Smart Doc Assistant都是一个值得尝试的优秀选择。项目代码结构清晰文档完善适合开发者学习和二次开发。优化项目——智能问答智能写作下一步学习建议如果您对这个项目感兴趣可以深入研究RAG原理了解检索增强生成的技术细节尝试不同向量数据库如Pinecone、Weaviate等优化分块策略根据文档类型调整分块大小和重叠度添加更多文档格式支持如PPT、Excel、图片OCR等部署到生产环境使用Docker容器化部署项目源码和最新文档请参考GitHub仓库。祝您使用愉快