通过前面我们介绍的方法,我们针对我们的项目获取一份用来做评测的数据集。需要注意的几个点: 1、多少数据集够用? 2、数据集怎么构成的? 3、如果是AI生成,使用什么模型?
多少数据集够用?
数据集的数量没有什么固定的要求,一般是根据不同的阶段来看, - 流程跑通阶段(10 - 20 条)如果你只是为了测试 Ragas 的代码能不能跑通,或者验证一下数据生成的格式对不对,生成 10 到 20 条就完全足够了。这能让你快速发现配置问题,且花费极低。 - 日常开发与快速迭代阶段(50 - 100 条)在开发 RAG 应用时,你需要频繁地调整切分策略(chunk size)、检索参数等。准备一个包含 50 到 100 条高质量问答对的“黄金测试集”,既能保证评估结果有一定的统计意义,又能在几分钟内跑完评估,非常适合敏捷迭代。 - 正式上线前的最终验收(200 - 500+ 条)如果你的知识库非常大(比如有几百上千个文档),且涉及金融、医疗等对准确率要求极高的领域,建议准备 200 条以上的测试集。这样可以更全面地覆盖各种边缘情况(Corner Cases)和复杂的多跳推理问题,确保系统上线后的稳定性。 在 RAG 测评中,100 条经过人工校验的高质量问答对,远比 1000 条 AI 自动生成但未经审核的数据有价值。 如果 AI 生成的题目本身逻辑有误,或者标准答案不准确,那么用再多的数据去评估也是没有意义的。因此,无论你生成了多少条数据,强烈建议抽出时间进行人工抽检,剔除掉那些质量差的样本。
数据集怎么构成的?
1、数据集的质量越高越好,所以我们应该优先选择线上的真实的对话(或者是之前的工单、常见Q&A、客诉、论坛中收集到的一些问题),从中标注出比较好的数据用来做测评。这种数据一般被称为黄金数据。 - 还有一类极具价值的数据——系统回答失败或无法回答的案例。在构建测试集时,不仅要收录成功的问答,还要刻意保留一部分“知识库里没有答案”的问题。这能用来测评系统的“拒答能力” - 直接使用线上数据前,务必进行个人敏感信息的脱敏,防止在测评过程中泄露用户隐私。 2、如果线上的数据不多,那么可以基于我们标注出的真实数据做扩展,一般是针对问题做扩展,比如让LLM帮你把原始的用户改成多种问法,这样就扩展出多份数据了。 - 除了换问法,还可以专门让 LLM 模拟一些带有错别字、口语化严重、甚至包含干扰信息的提问。这样能更真实地考验 RAG 系统的语义检索鲁棒性。 3、纯靠AI生成,基于上篇文章中我们介绍的利用ragas基于文档生成的方式。 - 这种数据必须有人工抽检。
如果是AI生成,使用什么模型?
如果是需要用AI生成一些测试集的话,选择模型也不能随便,最好是选择顶尖的闭源模型,如GPT、Claude这些旗舰模型。 这些顶尖模型的逻辑推理和指令遵循能力极强,能确保生成的问题和标准答案非常严谨、高质量。 如果用开源模型,也需要用参数量大一些的,至少要在70B以上。否则会出现比较严重的幻觉。
测试集for第一次评测——流程跑通
注,本测评集评测对应的知识文档: 为了跑通流程,我们准备15条数据集,大部分来源于用户反馈和常见Q&A。 比如我们的示例,使用智界R7的用户手册做知识库的,那么我们的就可以收集一些关于这辆车的用户反馈、常见Q&A作为评测的关键问题,如:https://www.12365auto.com/series/c-4056-1-0.shtml 、 https://auto.ifeng.com/c/8axBxPvtA4e 、https://news.qq.com/rain/a/20241116A03MT200 问题列表: | 常见问题 | 问题来源 | groud truth | | --- | --- | --- | | 智界R7这款车性价比怎么样?值得购买吗? | 用户反馈 | 您好!智界R7作为一款中大型SUV,整体性价比表现较为出色,值得考虑。它搭载了华为辅助驾驶系统,拥有出色的科技体验,纯电版800V高压平台带来了更快的充电速度和更强的动力输出。车内空间宽敞,豪华感与科技感并存,配备大尺寸屏幕和多项舒适配置,提升了驾乘体验。续航方面表现优秀,低温环境下也能保持良好表现,缓解用户续航焦虑。不过,其价格相对较高。综合来看,如果您追求科技和高品质出行体验,智界R7是一个值得购买的选择。建议您亲自试驾并对比其他同级别车型,以做出最适合自己的选择。 | | 智界R7的超级桌面如何开启? | 常见Q&A | 智界R7搭载超级桌面2.0功能,支持手机应用全量上车,车机界面也将以手机布局显示应用,并支持全屏准2000*1080显示。车机系统的应用生态丰富度大幅提升,用户无需等待应用逐一适配上车。例如可以在车机中控屏刷抖音等短视频软件、微信视频电话以及看到无人机的画面等。 | | 手机可以做车钥匙吗,只支持华为手机吗? | 常见Q&A | 智界R7支持通过手机鸿蒙智行App来实现手机控车功能,包括解闭锁、启动车辆等,手机车钥匙支持蓝牙和NFC两种方式,创建方法如下: | | 怎么给小艺改名字 | 常见Q&A | 车载语音助手的默认唤醒词为“小艺小艺”,同时也支持给小艺“改名字”,方法如下: | | 智界R7的行车记录仪视频如何查看和导出? | 常见Q&A | 查看方式 | | 智界R7那个行车记录仪拍的视频,平时怎么调出来看啊?想导出来又该咋整? | AI改写 | 查看方式 | | 智界R7的行车记录仪视频支持直接发到手机上吗?还是必须得拔卡用电脑读? | AI改写 | 查看方式 | | 智界R7有内置ETC吗?如何开通? | 常见Q&A | 智界专属内置ETC,原厂车规级品质,跟随整车质保,内置美观,不怕断电,全国高速费95折,无押金,先通行后扣费。 | | 智界R7有没有迎宾模式? | 常见Q&A | 我们的仪式感不仅在于全系前大灯、后尾灯的呼吸迎宾灯语,还可设置迎宾模式,空气悬架降低、主驾座椅迎宾、方向盘迎宾。 | | Does the Luxeed R7 have a welcome mode? | AI改写 | 我们的仪式感不仅在于全系前大灯、后尾灯的呼吸迎宾灯语,还可设置迎宾模式,空气悬架降低、主驾座椅迎宾、方向盘迎宾。 | | 智界R7可以用华为手表做车钥匙吗?支持手表控车吗? | 常见Q&A | 智界R7支持华为穿戴设备作为车钥匙。 | | 智届R7客服电话多少? | AI生成 | 您可以致电400-008-2888联系鸿蒙智行用户中心。 | | 智界R7车主维修保养必须使用原厂配件吗 私自改装影响保修吗 | AI生成 | 根据手册规定,在进行车辆保养或维修时,请务必使用智界原厂配件。使用非原厂配件可能对车辆性能和安全系统产生不利影响,由此产生的问题公司不承担责任。请不要私自改装车辆的任何零部件、车辆信息及标识,改装可能会影响车辆的安全性和可靠性,甚至违反国家法规,由此导致的损失公司不承担责任,且可能导致您丧失保养或保修权利。关于无线电设备,使用时应遵循所在地法律法规,切勿将车辆停放在变压器等电磁干扰较强的地方;使用电子医疗设备的人士应向制造商咨询无线电波对设备工作的影响。 | | 没带钥匙,如何启动车辆? | 人工提出 | | | 如何自定义智界R7的车机壁纸? | 常见Q&A | 智界R7支持自定义壁纸设置,设置手机图片为车机壁纸的方法如下: |
启动你的know-engine,然后运行以下脚本,将自动生成这些问题对应的测试集。
import requests
import csv
import urllib.parse
## --- 配置部分 ---
API_BASE_URL = "http://localhost:8009/dataset/generate"
OUTPUT_CSV_FILE = "generated_dataset.csv"
## 给定的问题与标准答案列表(请在此处补充你的实际数据)
qa_pairs = [
{
"question": "智界R7这款车性价比怎么样?值得购买吗?",
"reference": "您好!智界R7作为一款中大型SUV,整体性价比表现较为出色,值得考虑。它搭载了华为辅助驾驶系统,拥有出色的科技体验,纯电版800V高压平台带来了更快的充电速度和更强的动力输出。车内空间宽敞,豪华感与科技感并存,配备大尺寸屏幕和多项舒适配置,提升了驾乘体验。续航方面表现优秀,低温环境下也能保持良好表现,缓解用户续航焦虑。不过,其价格相对较高。综合来看,如果您追求科技和高品质出行体验,智界R7是一个值得购买的选择。建议您亲自试驾并对比其他同级别车型,以做出最适合自己的选择。"
},
{
"question": "智界R7的超级桌面如何开启?",
"reference": "智界R7搭载超级桌面2.0功能,支持手机应用全量上车,车机界面也将以手机布局显示应用,并支持全屏准2000*1080显示。车机系统的应用生态丰富度大幅提升,用户无需等待应用逐一适配上车。例如可以在车机中控屏刷抖音等短视频软件、微信视频电话以及看到无人机的画面等。\n\n开启方式如下:\n\n若您的手机与中控屏登录为同一华为帐号,您可以通过以下方式连接华为手机与中控屏,开启超级桌面。\n手机与中控屏开启 WLAN 与蓝牙;\n手机进入设置 > 超级终端 > 超级桌面,开启超级桌面开关;\n可在手机端或车机中控屏进行连接。\n手机端:上车后,从手机屏幕顶部右侧下滑出控制中心,在超级终端区域,点击车辆图标进行连接。您也可以点击超级终端右上角 ,将需要连接的车辆图标拉向手机。\n车机中控屏:在中控屏进入应用与服务 > 超级桌面,点击搜索附近满足条件的设备,根据界面提示完成连接。若您的手机与中控屏登录不是同一华为帐号、或者中控屏与手机登录为不同的华为帐号,请在中控屏进入应用与服务 > 超级桌面,点击连接其他华为设备,按照界面提示,扫码完成连接。超级桌面仅支持已升级 HarmonyOS 3 及以上版本的部分手机使用。"
},
{
"question": "手机可以做车钥匙吗,只支持华为手机吗?",
"reference": "智界R7支持通过手机鸿蒙智行App来实现手机控车功能,包括解闭锁、启动车辆等,手机车钥匙支持蓝牙和NFC两种方式,创建方法如下:\n在手机上打开鸿蒙智行App,点击我的 > 我的车辆 > 添加车辆,完成车辆绑定;\n车主或者被授权人,点击爱车 > 数字车钥匙 > 手机钥匙,申请手机钥匙。创建钥匙时需要手机处于联网状态。\n只要可以安装鸿蒙智行App,并且有蓝牙或者NFC功能的手机(不限品牌)都能作为智界R7的车钥匙。"
},
{
"question": "怎么给小艺改名字",
"reference": "车载语音助手的默认唤醒词为“小艺小艺”,同时也支持给小艺“改名字”,方法如下:\n\n在中控屏进入“设置 > 智慧助手 > 智慧语音 > 我的小艺”,点击“自定义唤醒词”。\n\n设置自定义唤醒词后,仅可以通过自定义唤醒词唤醒。"
},
{
"question": "智界R7的行车记录仪视频如何查看和导出?",
"reference": "查看方式:在中控屏,点击状态栏图标,或点击服务与应用 > 应用中心 > 行车记录仪,打开行车记录仪应用,就可以查看行车记录仪录制的抓拍视频、循环视频、图片。\n\n导出方式:\n打开副驾手套箱,拔出Micro SD卡槽中的Micro SD卡,通过读卡器插入电脑即可进行数据导出。\n导出至手机:可在行车记录仪应用内,进入编辑模式,选择视频或照片通过华为分享发送至华为手机。"
},
{
"question": "智界R7那个行车记录仪拍的视频,平时怎么调出来看啊?想导出来又该咋整?",
"reference": "查看方式:在中控屏,点击状态栏图标,或点击服务与应用 > 应用中心 > 行车记录仪,打开行车记录仪应用,就可以查看行车记录仪录制的抓拍视频、循环视频、图片。\n\n导出方式:\n打开副驾手套箱,拔出Micro SD卡槽中的Micro SD卡,通过读卡器插入电脑即可进行数据导出。\n导出至手机:可在行车记录仪应用内,进入编辑模式,选择视频或照片通过华为分享发送至华为手机。"
},
{
"question": "智界R7的行车记录仪视频支持直接发到手机上吗?还是必须得拔卡用电脑读?",
"reference": "查看方式:在中控屏,点击状态栏图标,或点击服务与应用 > 应用中心 > 行车记录仪,打开行车记录仪应用,就可以查看行车记录仪录制的抓拍视频、循环视频、图片。\n\n导出方式:\n打开副驾手套箱,拔出Micro SD卡槽中的Micro SD卡,通过读卡器插入电脑即可进行数据导出。\n导出至手机:可在行车记录仪应用内,进入编辑模式,选择视频或照片通过华为分享发送至华为手机。"
},
{
"question": "智界R7有内置ETC吗?如何开通?",
"reference": "智界专属内置ETC,原厂车规级品质,跟随整车质保,内置美观,不怕断电,全国高速费95折,无押金,先通行后扣费。\n开通方式:\n场景1:车主本人购买 - 手机端激活\n点击“服务”版块 > 进入“ETC服务”\n点击“立即激活”\n点击“个人客车办理ETC”\n依次完善个人信息 > 提交审核\n打开汽车中控屏 > “设置” > “连接” > 打开“ETC”\n审核成功后,打开手机蓝牙 > 选择设备\n激活成功,ETC可正常使用\n场景2:车主授权他人购买 - 车机端激活通过汽车中控屏 > 设置 > 连接 > ETC,扫码激活内置ETC"
},
{
"question": "智界R7有没有迎宾模式?",
"reference": "我们的仪式感不仅在于全系前大灯、后尾灯的呼吸迎宾灯语,还可设置迎宾模式,空气悬架降低、主驾座椅迎宾、方向盘迎宾。"
},
{
"question": "Does the Luxeed R7 have a welcome mode?",
"reference": "我们的仪式感不仅在于全系前大灯、后尾灯的呼吸迎宾灯语,还可设置迎宾模式,空气悬架降低、主驾座椅迎宾、方向盘迎宾。"
},
{
"question": "智界R7可以用华为手表做车钥匙吗?支持手表控车吗?",
"reference": "智界R7支持华为穿戴设备作为车钥匙。\n\n目前手表的鸿蒙智行App已支持HUAWEI Watch 3 和 HUAWEI Watch 4系列,针对HUAWEI Watch GT等运动表的鸿蒙智行App还在开发中,请关注后续上线的官方通知。"
},
{
"question": "智届R7客服电话多少?",
"reference": "您可以致电400-008-2888联系鸿蒙智行用户中心。"
},
{
"question": "智界R7车主维修保养必须使用原厂配件吗 私自改装影响保修吗 ",
"reference": "根据手册规定,在进行车辆保养或维修时,请务必使用智界原厂配件。使用非原厂配件可能对车辆性能和安全系统产生不利影响,由此产生的问题公司不承担责任。请不要私自改装车辆的任何零部件、车辆信息及标识,改装可能会影响车辆的安全性和可靠性,甚至违反国家法规,由此导致的损失公司不承担责任,且可能导致您丧失保养或保修权利。关于无线电设备,使用时应遵循所在地法律法规,切勿将车辆停放在变压器等电磁干扰较强的地方;使用电子医疗设备的人士应向制造商咨询无线电波对设备工作的影响。"
},
{
"question": "没带钥匙,如何启动车辆?",
"reference": "null"
},
{
"question": "如何自定义智界R7的车机壁纸?",
"reference": "智界R7支持自定义壁纸设置,设置手机图片为车机壁纸的方法如下:\n在车机侧打开华为分享,在手机侧通过华为手机的华为分享将图片发送至车机侧的图库中;\n在中控屏进入设置 > 显示 > 壁纸,选择本地壁纸,在我的壁纸点击+,添加图库图片至车机壁纸。除自定义壁纸以外,智界R7还支持勾选多个壁纸后在桌面滑动切换展示、设置随时间交替而自动变化风景状态的时光壁纸等,快去试试吧。"
}
]
def fetch_and_save():
print(f"开始处理 {len(qa_pairs)} 条数据...")
# 打开 CSV 文件准备写入
with open(OUTPUT_CSV_FILE, mode='w', newline='', encoding='utf-8-sig') as csvfile:
# 定义表头
fieldnames = ['user_input', 'response', 'retrieved_contexts', 'reference']
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
# 写入表头
writer.writeheader()
for index, pair in enumerate(qa_pairs):
question = pair['question']
reference = pair['reference']
try:
# 1. 对问题进行 URL 编码,防止特殊字符导致请求失败
encoded_question = urllib.parse.quote(question)
url = f"{API_BASE_URL}?question={encoded_question}"
# 2. 调用本地接口获取结果
response = requests.get(url)
response.raise_for_status() # 如果状态码不是 200,抛出异常
data = response.json()
# 3. 提取并处理数据
api_response_text = data.get("answer", "")
# 将 references 列表转换为一个长字符串(用换行符分隔),方便存入 CSV 单格
contexts_text = "\n\n".join(data.get("references", []))
# 4. 写入 CSV
writer.writerow({
'user_input': question,
'response': api_response_text,
'retrieved_contexts': contexts_text,
'reference': reference
})
print(f"[{index + 1}/{len(qa_pairs)}] 成功处理: {question}")
except Exception as e:
print(f"[{index + 1}/{len(qa_pairs)}] 处理失败: {question} -> 错误信息: {e}")
if __name__ == "__main__":
fetch_and_save()
print(f"\n✅ 全部处理完成!结果已保存至: {OUTPUT_CSV_FILE}")
使用uv run testset_generate.py 开始之后,可以看到进度:
运行完成后,可以得到一份评测数据:
这里面包含了我们评测需要的四个字段了,可以用来做评测了: