RAG私有化助手方案

本地 RAG 智能助手 - 技术方案文档 场景 :技术方案 | 受众 :后端工程师、开发者 | 字数 :约10000字 背景与目标 业务需求 本项目是一个基于 Streamlit 的本地知识库 RAG(Retrieval-Augmented Generation)智能助手,核心业务需求如下: 需求编号 需求描述 来源 REQ-001 用户可以上传多种格式文档(PDF、Excel、TXT、HTML) app.py 文件上传功能 REQ-002 系统自动解析文档内容并构建向量索引 document_loader.py 、 vector_store.py REQ-003 支持语义检索,根据用户问题匹配相关文档片段 embedding.py 、vector_store.py REQ-004 结合大模型生成基于知识库的精准回答 llm.py REQ-005 支持离线演示模式,无需配置大模型也能运行 llm.py 的 local_echo 模式 REQ-006 配置化管理,支持灵活调整参数 config/app.yaml 技术指标 指标类型 指标值 说明 支持文档格式 PDF、XLSX、XLS、TXT、HTML、HTM 通过配置扩展 文本切分大小 900字符(可配置) 平衡语义完整性与检索效率 切分重叠量 120字符(可配置) 减少语义断裂 向量维度 384维(可配置) BGE-small 模型默认 检索召回数 Top-5(可配置) 控制上下文窗口大小 最小相似度阈值 0.0(可配置) 过滤低相关结果 大模型温度 0.2(可配置) 控制回答随机性 最大生成长度 1200 token(可配置) 控制响应长度 核心价值 数据隐私保护 :文档在本地处理,不传输到外部服务器 离线可用 :支持本地哈希向量和 echo 模式,无需网络也能运行演示 配置灵活 :所有关键参数可通过配置文件调整 易于扩展 :模块化设计,便于替换组件 现状与约束 技术栈现状 分类 技术 版本 用途 框架 Streamlit >=1.34.0 Web 交互界面 语言 Python >=3.10 主要开发语言 文档解析 PyPDF >=4.0.0 PDF 解析 表格处理 pandas >=2.0.0 Excel 解析 HTML解析 beautifulsoup4 >=4.12.0 HTML 解 析 向量化 sentence-transformers(可选) >=2.7.0 语义向量生成 大模型 OpenAI API >=1.30.0 回答生成 向量存储 NumPy >=1.24.0 向量索引管理 配置管理 PyYAML >=6.0.0 YAML 配置解析 约束条件 约束类型 描述 影响 资源约束 首次运行可能无网络下载模型 需提供降级方案(哈希向量) 存储约束 向量文件可能较大 使用NumPy二级制格式压缩存储 合规约束 用户文档可能包含敏感信息 全程本地处理,不上传外部 环境约束 可能运行在无GPU环境 选用轻量级模型(bge-small) 依赖约束 可选依赖安装可能失败 使用延迟加载和异常捕获 已有系统分析 项目采用模块化架构,各组件职责清晰: ...

May 14, 2026 · 9844 字 · 20 分钟阅读