管线骨架
管线骨架
def rag_retrieve(query):
dense = vector_store.search(embed(query), top_k=50)
sparse = bm25.search(query, top_k=50)
merged = rrf([dense, sparse])[:50] # 融合去重
ranked = cross_encoder_rerank(query, merged) # 精排
return ranked[:8] # 上下文条数各层取舍
| 层 | 调大收益 | 调大代价 |
|---|---|---|
| 召回池 | 重排可选择面更大 | 粗排与重排耗时上升 |
| 重排 top_n | 上下文更准 | 生成输入更长 |
| 上下文条数 | 信息更全 | 触达中间遗忘与超长风险 |
上线顺序建议:先调召回 → 再上重排 → 最后调上下文条数与提示词,避免多层同时改动。