)
Reranking重排序Reranking 是什么Reranking重排序是在检索之后、送给 LLM 之前额外加一步精排用户问题 → 检索 → 10个候选 → Reranker 精排 → top-3 → LLMReranker 对每个问题-文档对单独打分比向量余弦相似度更准确因为它能理解两段文字之间的语义交互。两种 Reranker类型 原理 代表 Cross-Encoder 问题文档一起输入模型直接打相关性分 bge-reranker、Cohere rerank LLM-based 让 LLM 打分或排序 RankGPT新概念关系第51课 向量检索单路 ↓ 第53课 混合检索多路召回量多但精度一般 ↓ 第54课 Reranking精排从多变精代码示例defrerank(embedding_api_key:str,query:str,documents:list[str],top_n:int3,)-list:urlhttps://api.siliconflow.cn/v1/rerankpayload{model:BAAI/bge-reranker-v2-m3,query:query,documents:documents,top_n:top_n,return_documents:True,}headers{Authorization:fBearer{embedding_api_key},Content-Type:application/json,}responserequests.post(urlurl,jsonpayload,headersheaders)response.raise_for_status()returnresponse.json().get(results,[])defretrieve_with_rerank(embedding_api_key:str,query:str,retriever:EnsembleRetriever,top_n:int3)-list:# 1. 粗召回candidatesretriever.invoke(query)ifnotcandidates:return[]# 2. 精排docs_text[c.page_contentforcincandidates]reranked_docsrerank(embedding_api_keyembedding_api_key,queryquery,documentsdocs_text,top_ntop_n,)# 3. 映射回 Documentreturn[(r.get(relevance_score),r.get(document).get(text))forrinreranked_docs]完整 HTTP 响应大致是{id:rerank-...,results:[...],//← reranked_docs 就是这个meta:{tokens:{...},billed_units:{...}}}results 响应大致是[{index:1,document:{text:人工智能AI是一门让机器模拟...},relevance_score:0.7782858610153198},{index:0,document:{text:的发展也带来隐私、偏见...},relevance_score:0.6578798890113831},{index:2,document:{text:# 天气\n\n## 早晨\n...},relevance_score:1.7809470591600984e-05}]