用 LlamaParse 和本地索引实现有据可查的文档问答 Agent
讲如何构建一个 “有据可查” 的文档问答 Agent ? RAG 应用的通病:上传一份长 PDF,AI 给出的答案看起来合理,但你无法验证。作者把“信任”拆成了可操作的工程要求——每个论断都要能追溯...
想用 RAG 做文档问答但怕答案不可信的朋友,可以看看这个方案,它把每个论断都和具体页码、原文片段绑定了,比单纯用模型生成答案更可靠。
本文提出一个 RAG 应用方案,通过 LlamaParse 生成带页码的 Markdown,用 ollama 的 nomic-embed-text 做本地嵌入和索引,再用 CitationQueryEngine 强制模型内联引用,最终通过 UI 展示页码、原文和相关性分数,让每个论断都能追溯到具体原文。
讲如何构建一个 “有据可查” 的文档问答 Agent ? RAG 应用的通病:上传一份长 PDF,AI 给出的答案看起来合理,但你无法验证。作者把“信任”拆成了可操作的工程要求——每个论断都要能追溯...
讲如何构建一个 “有据可查” 的文档问答 Agent ? RAG 应用的通病:上传一份长 PDF,AI 给出的答案看起来合理,但你无法验证。作者把“信任”拆成了可操作的工程要求——每个论断都要能追溯到具体页码和原文片段。这就是 "Grounded" 的含义:不是让模型更聪明,是让答案可审计。 技术方案:“云端解析一次,本地无限迭代” · 解析层(唯一云端环节):用 @llama_index LlamaParse 生成布局感知的 Markdown,保留页码元数据;文件哈希缓存,避免重复消耗解析额度。 · 本地层(免费可反复试错): @ollama 的 nomic-embed-text 做嵌入 → LlamaIndex 向量索引持久化 → 检索 top-4 片段 → 本地 qwen3:4b-instruct 生成回答。 · 引用层:用 LlamaIndex 的 CitationQueryEngine 把上下文切成编号块,强制模型以 [1]、[2] 格式内联引用。 · 验证层(UI):展示页码、检索到的原文、查询词高亮和相关性分数。 方案中三个有价值的技术点 1. 解析是天花板,而不是模型。 基础文本提取会把双栏论文串读、把财务表格打散成无主数字、对扫描件完全无能为力。答案质量的上限在管道最前端就定死了,多数人在后端调 prompt、换模型,方向本身就偏了。 2. 引用粒度是个权衡,没有标准答案。 引用块设为 512 字符:块越小引用越精确,但推理上下文越破碎。这个参数需要按文档类型实测。 3. 引用 ≠ 正确。 如果解析时表格数值配错了列头,即使引用页码完全正确,答案依然是错的。所以“可追溯”不等于“可信”。解法是把验证 UI 当作诊断工具:页码、原文、相关性分数全部可见,让任何一次失败都能被归因到解析、检索、生成三段之一。这是把黑盒 RAG 变成可调试管道的思路。 Sumanth @Sumanth_077 x.com/i/article/2099… 🔗 View Quoted Tweet 💬 0 🔄 0 ❤️ 1 👀 137 ⚡