From 2ba7ebdd3376e74cf405693cfb9af275fd366b24 Mon Sep 17 00:00:00 2001 From: HuangHai <10402852@qq.com> Date: Tue, 19 Aug 2025 08:02:40 +0800 Subject: [PATCH] 'commit' --- dsSchoolBuddy/ElasticSearch/T2_BgeM3.py | 29 ++++++++++++++++++++----- 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/dsSchoolBuddy/ElasticSearch/T2_BgeM3.py b/dsSchoolBuddy/ElasticSearch/T2_BgeM3.py index 1e9937c7..370cedc6 100644 --- a/dsSchoolBuddy/ElasticSearch/T2_BgeM3.py +++ b/dsSchoolBuddy/ElasticSearch/T2_BgeM3.py @@ -78,12 +78,29 @@ if len(results) > 1: response.raise_for_status() # 检查请求是否成功 rerank_result = response.json() - # 处理重排结果,保留分数 - for item in rerank_result.get("results", []): - doc_idx = item.get("index") - score = item.get("score", 0.0) # 获取可信度分数 - if 0 <= doc_idx < len(results): - reranked_docs_with_scores.append((results[doc_idx], score)) + # 打印完整响应以调试 + print("重排API响应:", json.dumps(rerank_result, ensure_ascii=False, indent=2)) + + # 尝试提取分数,兼容不同的字段名称 + if "results" in rerank_result: + # 处理BAAI/bge-reranker-v2-m3模型的响应格式 + for item in rerank_result["results"]: + doc_idx = item.get("index") + # 尝试不同的分数字段名称 + score = item.get("score", item.get("relevance_score", 0.0)) + if 0 <= doc_idx < len(results): + reranked_docs_with_scores.append((results[doc_idx], score)) + elif "rankings" in rerank_result: + # 处理其他可能的响应格式 + for item in rerank_result["rankings"]: + doc_idx = item.get("index") + score = item.get("score", item.get("relevance_score", 0.0)) + if 0 <= doc_idx < len(results): + reranked_docs_with_scores.append((results[doc_idx], score)) + else: + print("警告: 无法识别重排API响应格式") + # 使用原始结果,分数设为0.0 + reranked_docs_with_scores = [(doc, 0.0) for doc in results] print("重排后结果数量:", len(reranked_docs_with_scores)) except Exception as e: