Open chenboju opened 2 hours ago
{
"name": "KeyError",
"message": "'data'",
"stack": "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[1;31mKeyError\u001b[0m Traceback (most recent call last)\nCell \u001b[1;32mIn[22], line 14\u001b[0m\n\u001b[0;32m 2\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mragas\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m evaluate\n\u001b[0;32m 3\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mragas\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mmetrics\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m (\n\u001b[0;32m 4\u001b[0m faithfulness,\n\u001b[0;32m 5\u001b[0m \u001b[38;5;66;03m# answer_relevancy,\u001b[39;00m\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 10\u001b[0m \u001b[38;5;66;03m# answer_similarity,\u001b[39;00m\n\u001b[0;32m 11\u001b[0m )\n\u001b[1;32m---> 14\u001b[0m result \u001b[38;5;241m=\u001b[39m \u001b[43mevaluate\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 15\u001b[0m \u001b[43m \u001b[49m\u001b[43mdataset\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m \u001b[49m\u001b[43mdataset\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\n\u001b[0;32m 16\u001b[0m \u001b[43m \u001b[49m\u001b[43mmetrics\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m[\u001b[49m\n\u001b[0;32m 17\u001b[0m \u001b[43m \u001b[49m\u001b[43mfaithfulness\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 18\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;66;43;03m# answer_relevancy,\u001b[39;49;00m\n\u001b[0;32m 19\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;66;43;03m# context_precision,\u001b[39;49;00m\n\u001b[0;32m 20\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;66;43;03m# context_recall,\u001b[39;49;00m\n\u001b[0;32m 21\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;66;43;03m# context_entity_recall,\u001b[39;49;00m\n\u001b[0;32m 22\u001b[0m \u001b[43m \u001b[49m\u001b[43manswer_correctness\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 23\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;66;43;03m# answer_similarity, \u001b[39;49;00m\n\u001b[0;32m 24\u001b[0m \u001b[43m \u001b[49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 25\u001b[0m \u001b[43m)\u001b[49m\n\nFile \u001b[1;32mD:\RAGAS\ragas\src\ragas\_analytics.py:130\u001b[0m, in \u001b[0;36mtrack_was_completed.
from datasets import Dataset
questions = ["恐龙是怎么被命名的?", "恐龙怎么分类的?", "体型最大的是哪种恐龙?", "体型最长的是哪种恐龙?它在哪里被发现?", "恐龙采样什么样的方式繁殖?", "恐龙是冷血动物吗?", "陨石撞击是导致恐龙灭绝的原因吗?", "恐龙是在什么时候灭绝的?", "鳄鱼是恐龙的近亲吗?", "恐龙在英语中叫什么?" ] ground_truths = [["1841年,英国科学家理查德·欧文在研究几块样子像蜥蜴骨头化石时,认为它们是某种史前动物留下来的,并命名为恐龙,意思是“恐怖的蜥蜴”。"], ["恐龙可分为鸟类和非鸟恐龙。"], ["恐龙整体而言的体型很大。以恐龙作为标准来看,蜥脚下目是其中的巨无霸。"], ["最长的恐龙是27米长的梁龙,是在1907年发现于美国怀俄明州。"], ["恐龙采样产卵、孵蛋的方式繁殖。"], ["恐龙是介于冷血和温血之间的动物"], ["科学家最新研究显示,0.65亿年前小行星碰撞地球时间或早或晚都可能不会导致恐龙灭绝,真实灭绝原因是当时恐龙处于较脆弱的生态系统中,环境剧变易导致灭绝。"], ["恐龙灭绝的时间是在距今约6500万年前,地质年代为中生代白垩纪末或新生代第三纪初。"], ["鳄鱼是另一群恐龙的现代近亲,但两者关系较非鸟恐龙与鸟类远。"], ["1842年,英国古生物学家理查德·欧文创建了“dinosaur”这一名词。英文的dinosaur来自希腊文deinos(恐怖的)Saurosc(蜥蜴或爬行动物)。对当时的欧文来说,这“恐怖的蜥蜴”或“恐怖的爬行动物”是指大的灭绝的爬行动物(实则不是)"]] answers = [] contexts = []
Inference
for query in questions: answers.append(rag_chain.invoke(query)) contexts.append([docs.page_content for docs in retriever.get_relevant_documents(query)])
To dict
data = { "question": questions, "answer": answers, "contexts": contexts, "ground_truths": ground_truths, "reference": [" ".join(gt) if isinstance(gt, list) else gt for gt in ground_truths]
}
Convert dict to dataset
dataset = Dataset.from_dict(data)
import os from ragas import evaluate from ragas.metrics import ( faithfulness, answer_relevancy, context_precision, context_recall, context_entity_recall, answer_correctness, answer_similarity, )
result = evaluate( dataset = dataset, metrics=[ faithfulness, answer_relevancy, context_precision, context_recall, context_entity_recall, answer_correctness, answer_similarity,
], )