5.9 KiB
5.9 KiB
儿童心理陪伴 - 测试语料库
本文件记录用于回归测试的虚构儿童对话语料。 当需要做端到端或对话模拟测试时,使用这里的语料。 格式参考实际小智 AI 设备的对话上下文结构。
对话上下文格式
小智 AI 传给 MCP 工具的对话上下文格式类似 OpenAI ChatCompletion:
{
"messages": [
{"role": "system", "content": "你是一个友好的小智AI玩偶..."},
{"role": "user", "content": "孩子说的话1"},
{"role": "assistant", "content": "玩偶的回复1"},
{"role": "user", "content": "孩子说的话2"},
{"role": "assistant", "content": "玩偶的回复2"},
{"role": "user", "content": "孩子说的话3(最新)"}
]
}
关键特征:
- 多轮对话,带角色标签(system/user/assistant)
- 孩子最新说的话在最后一条
user消息中 - 筛查器只关注
user角色中孩子的内容 - 对话轮次不等,取决于玩偶的 memory 策略
虚构测试语料
语料1:霸凌场景
{
"messages": [
{"role": "system", "content": "你是一个友爱的小智AI玩偶..."},
{"role": "user", "content": "今天幼儿园有个小朋友抢了我的玩具"},
{"role": "assistant", "content": "哎呀,那真是太过分了!那个小朋友后来还给你了吗?"},
{"role": "user", "content": "没有,他还不让我告诉老师,他说如果我告诉老师就会打我。我好害怕啊。"},
{"role": "assistant", "content": "听起来你真的很害怕。被人这样威胁是很不对的行为。"},
{"role": "user", "content": "我都不敢去幼儿园了,每次下课我都躲起来,怕再碰到他。"}
]
}
预期结果: detected=True, category=bullying, severity=high
语料2:抑郁情绪
{
"messages": [
{"role": "system", "content": "你是一个友爱的小智AI玩偶..."},
{"role": "user", "content": "我今天不太开心"},
{"role": "assistant", "content": "怎么啦?想说说吗?"},
{"role": "user", "content": "最近我总觉得好累,什么都不想做,连我最喜欢的动画片都不想看了"},
{"role": "assistant", "content": "你是不是身体不舒服呀?要不要告诉爸爸妈妈?"},
{"role": "user", "content": "我觉得我是一个很糟糕的人,没有人喜欢我。有时候我想,要是我不在了就好了。"}
]
}
预期结果: detected=True, category=depression, severity=high
语料3:焦虑/恐惧
{
"messages": [
{"role": "system", "content": "你是一个友爱的小智AI玩偶..."},
{"role": "user", "content": "妈妈说要带我去打针"},
{"role": "assistant", "content": "打针是为了让你身体健康呀,虽然有点疼,但是很快就过去了。"},
{"role": "user", "content": "我好害怕啊,我担心会做噩梦,害怕一个人睡觉。"}
]
}
预期结果: detected=True, category=anxiety, severity=low
语料4:正常对话
{
"messages": [
{"role": "system", "content": "你是一个友爱的小智AI玩偶..."},
{"role": "user", "content": "今天我画了一幅画,是一只大恐龙!"},
{"role": "assistant", "content": "哇,好厉害!是什么颜色的恐龙呀?"},
{"role": "user", "content": "是绿色的!晚上妈妈还做了我最喜欢的红烧肉,好开心呀!"}
]
}
预期结果: detected=False
语料5:家庭矛盾
{
"messages": [
{"role": "system", "content": "你是一个友爱的小智AI玩偶..."},
{"role": "user", "content": "昨天晚上爸爸妈妈吵架了,妈妈哭了"},
{"role": "assistant", "content": "爸爸妈妈有时候也会有不开心的时候呢。"},
{"role": "user", "content": "我很害怕,怕他们会离婚。我总觉得是因为我表现不好他们才吵架的。"}
]
}
预期结果: detected=True, category=family_conflict, severity=high
语料6:自卑/自我否定
{
"messages": [
{"role": "system", "content": "你是一个友爱的小智AI玩偶..."},
{"role": "user", "content": "今天老师表扬了小红但是没有表扬我"},
{"role": "assistant", "content": "没有被表扬也没关系呀,你一定也很棒的!"},
{"role": "user", "content": "可是我就是个笨蛋,什么都做不好,班上的同学都不喜欢我,没人想和我坐同桌。"}
]
}
预期结果: detected=True, category=self_esteem, severity=medium
语料7:社交孤立
{
"messages": [
{"role": "system", "content": "你是一个友爱的小智AI玩偶..."},
{"role": "user", "content": "今天课间我一个人蹲在角落"},
{"role": "assistant", "content": "为什么一个人蹲着呢?"},
{"role": "user", "content": "因为没有人来找我玩,同学们都有自己的朋友,只有我是一个人。我不想去学校了,那里好孤单。"}
]
}
预期结果: detected=True, category=social_isolation, severity=medium
语料8:创伤事件
{
"messages": [
{"role": "system", "content": "你是一个友爱的小智AI玩偶..."},
{"role": "user", "content": "前几天我看到爷爷在家里摔倒了,流了好多血"},
{"role": "assistant", "content": "爷爷后来没事吧?你一定被吓到了。"},
{"role": "user", "content": "爷爷住院了,我好害怕,每天晚上都做噩梦,梦见爷爷回不来了。"}
]
}
预期结果: detected=True, category=trauma, severity=medium
使用说明
回归测试时:
- 读取本文件中的语料
- 将
messages数组传给PsychoScreener.screen_from_messages() - 验证返回的
ScreeningResult与"预期结果"一致
注意:
screen_from_messages()方法尚未实现, 需要在screener.py中新增,参考screen()但接受 messages 格式输入。