AI-reader阅读助手开发过程

1. 项目背景(Why)

AI 在做方案、撰写重要文件时,会引用大量知识。这些引用的知识有些出处不可信(如自媒体文章),有些是基于计算的错误信息,这些都影响最终文章质量。

为消除 AI 幻觉,特开发 AI 阅读助手。本应用会预先加载用户指定的权威文档(如专业书籍 PDF 版本、法律法规、内部文档等)作为资料库。回答用户提问时,资料库中有相关内容则会分析客户的提问给出回答,并标明出处;若用户提问超越资料库范围,则提示引用外部信息并标注来源。两种回答使用不同颜色字体进行区分。

2. 产品定位(What)

一款辅助阅读和公文创作的 AI 阅读助手软件。用户将重要的文献、专著、权威书籍、内部资料作为标准答案放入知识库,自行设问后,助手会给出知识库中的标准答案,确保信息来源可信。

产品概念类似于「吞文通识」------用户喂入资料,AI 消化后提供精准回答。

3. 用户分析(Who)

3.1 目标用户

文字工作者、文秘、论文编写者等需要编写重要文件、要求数据来源可靠的用户群体。

3.2 用户痛点

进行重要文件创作或阅读专业书籍时,大量内容要求来源可靠。当前碎片化知识现象严重,许多知识点掌握不清楚的情况下,容易出现作者不想出现的错误。

4. 产品目标(Goal)

打造一个靠谱的文案助手、阅读助理、写作助力,核心价值在于「来源可靠」。

5. 产品功能设计(What)

  • 资料库管理:导入用户指定的资料文件(PDF / Word / TXT),支持增删操作
  • 智能对话:支持文字对话,获取用户提问,基于知识库或联网搜索回答
  • 联网搜索开关:对话区设置开关按钮------关闭时仅检索知识库回答;开启时自动检索网络信息并整合到回答中
  • 来源标注:知识库回答标注具体出处(如书名+页码);联网回答标注「来源:网络检索(仅供参考)」
  • 设置管理:支持大模型 API 配置、分块策略参数配置、联网搜索服务配置

6. 技术方案设计(How)

6.1 页面布局

页面分为左右两个区域:

  • 左侧导航栏:竖向列表显示对话列表(含多条对话记录)、知识库、设置等入口
  • 右侧为对应功能的展示区,包含对话交互区、知识库文件管理区、设置表单区

6.2 对话交互设计

对话区采用类似即时通讯的交互方式:

  • 用户消息:蓝色气泡,右对齐
  • AI 回答(知识库来源):左侧蓝色竖条标识,底部明确列出出处,如「《视觉SLAM十四讲》P.87」
  • AI 回答(联网来源):左侧灰色虚线竖条标识,底部注明「来源:网络检索(仅供参考)」
  • 两种回答使用不同颜色字体/样式进行区分

6.3 交互方式

纯 PC 端应用,不支持语音输入。用户通过键盘输入文字进行交互。

6.4 多轮对话上下文管理

仅依赖大模型自身的上下文记忆能力。向量检索始终基于用户的最新一条提问进行,历史对话内容由 LLM 在生成答案时自行参考。

7. 核心技术选型

|--------------|----------------------------|-------------------------------------|
| 层级 | 选型 | 说明 |
| 大模型(LLM) | DeepSeek Chat API | 性价比高,中文能力强,用户自行填写 API Key |
| Embedding 模型 | BGE-small-zh(本地运行) | 轻量级中文语义模型,首次启动下载约 200MB,之后离线可用 |
| 向量数据库 | ChromaDB | 轻量级本地文件存储,与 LangChain 原生集成,无需额外部署服务 |
| RAG 框架 | LangChain | 生态最成熟的 RAG 开发框架 |
| 文档解析 | PyMuPDF(fitz)+ python-docx | 仅处理文字内容,跳过图片、公式、表格 |
| 后端框架 | FastAPI(Python) | 异步、高性能、自动生成 API 文档 |
| 前端界面 | HTML 静态页面 | 轻量级交互式 HTML 原型,后续由 FastAPI 托管 |
| 部署形态 | 压缩包 + 一键启动脚本 | 单机运行,无需公网 IP |

8. 数据流程设计

8.1 建库流程

PDF / Word / TXT 文本 → 提取纯文本 → 递归字符分块 → BGE-small-zh 向量化 → ChromaDB 向量存储

8.2 查询流程

用户提问 → 问题向量化(BGE-small-zh)→ 相似度检索 → 召回 Top-K 相关文本块 → 拼接 Prompt → DeepSeek API 生成答案 → 返回答案 + 来源标注

8.3 资料更新策略

建库后的资料变更采用「直接删除重建」方式,不做增量更新。当前版本不考虑在建库后对已有资料进行局部更新的场景。

9. 分块策略(Chunking Strategy)

9.1 分块方法

采用递归字符文本分割器(RecursiveCharacterTextSplitter),以中文标点符号作为自然分隔点,尽可能保持句子和段落的完整性。

9.2 核心参数

|---------------|---------------------------------------------------|--------------------------------------|
| 参数 | 默认值 | 说明 |
| chunk_size | 512 字符 | 每个文本块最大长度,约 200-300 个中文字,足够表达一个完整知识点 |
| chunk_overlap | 50 字符 | 相邻块间的重叠字符数,防止关键上下文被切断 |
| separators | "\\n\\n", "\\n", "。", "!", "?", ";", ",", " " | 按优先级依次尝试分割,优先保持段落完整性 |
| top_k | 5 | 每次检索返回最相关的 Top-5 文本块 |

9.3 元数据标注

每个分块(chunk)保存以下元数据,用于来源追溯:

  • 源文件名
  • 页码(以引用句子第一个字所在位置作为页码指向)
  • 段落序号

10. 部署方案

10.1 部署形态

单机版应用,无需公网 IP。最终产品以压缩包(ZIP)形式分发,用户下载后解压,双击一键启动脚本即可运行或安装。

10.2 分发渠道

上传至 GitHub 仓库供用户下载。

10.3 API Key 策略

压缩包中 API Key 为空白。用户首次启动时,需在设置页面自行填写 DeepSeek API Key。应用中提供引导说明。

10.4 一键启动流程

用户解压压缩包 → 双击启动脚本(.bat / PowerShell)→ 自动检查 Python 环境 → 自动安装依赖 → 启动服务 → 弹出浏览器访问页面

11. 版本规划(Roadmap)

|------------|---------------------|---------------------|
| 版本 | 功能范围 | 说明 |
| v1.0 | 单本 PDF 问答 + 来源引用 | 跑通 RAG 全链路,验证核心价值 |
| v1.1 | 多本 PDF 混合检索 + 删除/新增 | 解决资料库管理问题,支持多文档混合检索 |

12. 风险分析

|-----------------|------------|------------------------------|
| 风险 | 影响 | 应对策略 |
| AI 幻觉(边界场景半编半引) | 用户信任度下降 | 严格的测试验收;来源标注让用户可追溯核实 |
| 扫描件 PDF(纯图片无文字) | 解析结果为空 | 导入时检测并提示用户该文件为扫描件,不支持文字提取 |
| API Key 失效或余额不足 | 服务不可用 | 实时调用反馈,对话区直接提示 API 调用错误信息 |
| 联网搜索 API 不通 | 联网功能失效 | 静默降级为纯知识库模式,用户无感知 |
| 文档解析不完整(复杂排版) | 部分内容缺失 | 明确告知用户当前仅支持文字内容,公式/图表/表格暂不支持 |

13. 测试验收

13.1 正向测试

问一个书里明确有的问题(如「SLAM 中的李代数是什么」),验证回答是否准确、出处是否正确。

13.2 负向测试

问一个书里没有的问题(如「如何用 SLAM 做自动驾驶」),验证系统是否会提示「知识库无相关信息」,而不是胡编。

13.3 边界测试

问一个书里部分相关的问题(如「如何初始化 ORB-SLAM」),验证系统是否「半编半引」------这是最容易产生幻觉的场景。

项目地址:https://github.com/Jerry-Chu/AI-Reader

下载后直接使用,需要配置自己的APIkey。

14. 项目总结

本项目通过 RAG 技术将传统专业教材转化为智能知识助手,实现了从「人工检索资料」到「AI 辅助学习」的转变。

产品定位清晰------专注可靠来源的 AI 问答,以本地知识库为核心,联网搜索为补充。技术方案成熟稳定,采用 DeepSeek API(云端 LLM)+ BGE-small-zh(本地 Embedding)+ ChromaDB(本地向量库)+ LangChain(RAG 框架)的组合,兼顾了回答质量、中文能力和部署便捷性。

部署上采用压缩包 + 一键启动的单机模式,适合无公网 IP 的个人使用场景,并通过 GitHub 分发给目标用户。

相关推荐
_Jimmy_1 小时前
python性能分析工具
python
weixin_422329311 小时前
AgentScope Java ReActAgent 核心循环深度解析
java·开发语言·人工智能
SNKXD_11 小时前
2026年五款AI数字人系统效果差异:基于多维度横评的实证比较
大数据·人工智能
Lucky_5566881 小时前
山东捷瑞检测科技有限公司:政务信息化项目监理要点与收费标准解析
大数据·人工智能
2zcode1 小时前
低采样率ISAR成像的稀疏重建方法及其实时实现
图像处理·人工智能·计算机视觉
2501_930296991 小时前
驾驭大模型的对话艺术:深度拆解 OpenAI 官方 Prompt 指南与全场景实战心法
人工智能·prompt
DS随心转小程序1 小时前
deepseek 生成 word 文档指令搭配 AI 导出鸭高效完成各类文档批量输出
人工智能·word·豆包·deepseek·ai导出鸭
小墨同学boy1 小时前
WorkBuddy零基础教程进阶篇
人工智能·github·aigc
尽兴-2 小时前
传统 Java/Vue 系统如何一步步接入 AI 维护
java·vue.js·人工智能·ai·大模型