下载模型至本地
下载bge的rerank模型huggingface.co/BAAI/bge-re…
注意需要FQ
上代码
class SingletonFlagReranker:
def __init__(self, model_path, use_fp16):
self.reranker = FlagReranker(model_path, use_fp16=use_fp16)
def compute_score(self, pairs, normalize):
return self.reranker.compute_score(pairs, normalize=normalize)
reranker = SingletonFlagReranker('E:\model\bge-reranker-base', use_fp16=True) # 模型下载的地址
def rerank(question, documents):
# 构建 [question, document_text] 对
pairs = [[question, doc] for doc in documents]
# 计算得分
scores = reranker.compute_score(pairs, normalize=True)
# 将文档文本与得分组合
documents_with_scores = [{'document': doc, 'score': score} for doc, score in zip(documents, scores)]
return documents_with_scores
topic_tags = [] #文本数组
query_text = "伤病"
a = rerank(query_text,topic_tags)
# 使用 sorted() 函数按 score 字段降序排序
sorted_a = sorted(a, key=lambda x: x['score'], reverse=True)
就可以了