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