import os import sys current_script_path = os.path.abspath(__file__) script_dir = os.path.dirname(current_script_path) project_root = os.path.abspath(os.path.join(script_dir, "../../")) if project_root not in sys.path: sys.path.insert(0, project_root) from foundation.ai.rag.retrieval.retrieval import retrieval_manager query = "实体:通风孔;背景:在箱梁腹板上设置通风孔,用于结构内部空气流通,需保证与预应力钢筋保护层满足间距要求,并水平设置" collection = "first_bfp_collection" # 你的 Milvus 集合名 # 二阶段:Milvus混合检索(向量+BM25) → BGE重排 results = retrieval_manager.multi_stage_recall( collection_name=collection, query_text=query, hybrid_top_k=50, # 第一阶段取多少候选 top_k=3, # 最终返回条数 ranker_type="weighted" # 或 "rrf" ) print(results) for item in results: print(item["rerank_score"], item["text_content"]) # 元数据在 item["metadata"](来自混合检索阶段)