在线链路环节
| 环节 | 作用 | 常见实现 |
|---|---|---|
| 问题改写 | 补全指代、扩展同义说法 | LLM 改写提示词 / Multi-Query |
| 向量化 | 把问题编码为向量 | 与索引使用同一 embedding 模型 |
| 召回 | 取回 top-k 候选 | 向量检索 + BM25 混合 |
| 重排 | 对候选精排 | Cross-Encoder 重排模型 / 重排 API |
| 生成 | 带上下文作答 | LLM + 引用标注提示词 |
请求处理骨架
请求处理骨架
def answer(question, history):
q = rewrite(question, history) # 指代消解与改写
hits = hybrid_search(q, top_k=20) # 混合召回
hits = rerank(q, hits, top_n=5) # 重排
ctx = build_context(hits, max_tokens=3000)
return llm_answer(q, ctx, cite=hits) # 生成 + 引用在线链路要能逐段单测:先测检索命中,再测重排增益,最后测生成忠实度。