RAG 对话原理:ReadAny 如何"读懂"你的书
什么是 RAG
RAG(Retrieval-Augmented Generation,检索增强生成)是当前 AI 问答系统的主流架构。简单说就是:不让 AI 凭空回答,而是先从你的书里找出相关内容,再让 AI 基于这些内容生成回答。
ReadAny 的核心价值不在于"能聊天",而在于聊天的上下文就是你正在读的那本书。
完整工作流
当你在 ReadAny 里对一本书提一个问题时,后台发生了这些事:
第一步:文档预处理(导入时完成)
在你导入书籍的时候,ReadAny 已经完成了这些工作:
- 语义分块——按段落和语义边界把全书切成 200-500 字的小块,保持每个分块的语义完整性
- 向量嵌入——调用你配置的嵌入模型(embedding model),为每个分块生成一个高维向量(通常 384-1024 维)
- 存储索引——把向量和原始文本分块一起存入本地 SQLite 数据库的向量索引表
这一步完成后,你的每本书就变成了一个可检索的向量数据库。
第二步:混合检索(你提问时)
你输入问题后,ReadAny 同时跑两路检索:
- 向量相似度检索——把你的问题也转成向量,用余弦相似度找最接近的分块。这解决了"你记得意思但记不住原话"的问题
- BM25 关键词检索——用传统搜索引擎的方式匹配关键词。这保证了专有名词、代码标识符等精确匹配不被漏掉
两路结果合并排序,取 Top-K(默认 8-12 个)最相关的分块。
第三步:上下文组装
ReadAny 把这些信息打包成一个 prompt 发送给 AI:
- 系统提示词:要求 AI 只基于提供的上下文回答,不知道就说不知道
- 当前阅读位置信息:章节名、页码、你正在看的段落
- 你选中的高亮文本(如果有的话)
- 检索召回的相关分块(带来源标注)
- 你输入的问题
第四步:生成回答并附带来源
AI 生成回答后,ReadAny 做两件事:
- 来源追溯——在回答中每个关键论点后面标注它来自哪个分块(章节号 + 大致位置)
- 对话记忆——当前会话内保留上下文,让追问成为可能("能展开说说你刚才提到的那个例子吗?")
为什么这比普通聊天强
普通 AI 聊天(比如直接问 GPT)的问题是:
- 它不知道你读的那本书的具体内容
- 它容易自信地编造不存在的段落
- 回答里没有来源引用,你很难核实
ReadAny 的 RAG 管道从根本上解决了这些问题——AI 的回答被严格限制在你这本书的内容范围内,还能追溯出处。