def evaluate_retrieval()

in skills/retrieval_augmented_generation/evaluation/eval_retrieval.py [0:0]


def evaluate_retrieval(retrieved_links, correct_links):
    correct_links = ast.literal_eval(correct_links)
    true_positives = len(set(retrieved_links) & set(correct_links))
    precision = true_positives / len(retrieved_links) if retrieved_links else 0
    recall = true_positives / len(correct_links) if correct_links else 0
    f1 = 2 * (precision * recall) / (precision + recall) if (precision + recall) > 0 else 0
    mrr= calculate_mrr(retrieved_links, correct_links)
    return precision, recall, mrr, f1