How-toSelected78°

How to build a 'grounded' document Q&A agent

Why we picked it

This is a practical guide for developers building RAG applications, showing how to make AI answers verifiable and auditable.

This guide explains how to build a document Q&A agent where each answer can be traced back to a specific page and original text. It uses a 'cloud parse, local iterate' approach with LlamaParse for layout-aware Markdown generation, Ollama for embeddings, and LlamaIndex for vector indexing and citation. The system includes a UI that displays page numbers, original text, and relevance scores to make the answer auditable.

Original · shao__meng

讲如何构建一个 “有据可查” 的文档问答 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 ⚡