| 五段 | load → split → embed → retrieve → generate |
|---|---|
| 检索侧 | 粗排 top50 → 重排 top5 是常用配比 |
| 生成侧 | 上下文注入 + 引用要求 + 拒答约束 |
| 评测 | 召回率与答案忠实度分开度量 |
端到端伪代码(结构示意)
端到端伪代码(结构示意)
docs = load_documents("docs/") # 解析
chunks = split(docs, size=800, overlap=100) # 切分
store.add(embed(chunks), chunks) # 向量化入库
hits = store.search(embed(query), top_k=50) # 召回
hits = rerank(query, hits)[:5] # 重排
answer = llm(query, contexts=hits) # 生成(带引用)先修检索再换大模型:召回里没有的内容,再强的生成模型也变不出来。