就绪
成功: 0 失败: 0

# L1-S2-U14-L1 到你上学啦 (组件录入测试-全量)

生成时间: 2026-05-09 14:40:29 模型: doubao-seed-2.0-pro Wiki: AEPJwf0DUiDkWska4SbceSAbnyc
13
核心互动
30
中互动
43
总组件
42
成功
0
失败
1
跳过
1 对话朗读 cId: 0000800 mid_dialog_repeat
已保存 ▶
jsonData

cType |
cId |
title |
resourceMapping | { "Eva": 663, "Peter": 653, "Vicky": 658 }
preDialog | [ { "type": "user", "content": "Great!" }, { "type": "user", "content": "Oh, there's no time left." } ]
imgShowTimingList | [ "content" ]
img |
question | { "type": "user", "content": "Let's go to school now." }
postDialog | []

1234567891011121314151617181920212223242526272829
{ "cType": "mid_dialog_repeat", "cId": "0000800", "title": "表示大家一起上学", "resourceMapping": { "Eva": 663, "Peter": 653, "Vicky": 658 }, "preDialog": [ { "type": "user", "content": "Great!" }, { "type": "user", "content": "Oh, there's no time left." } ], "imgShowTimingList": [ "content" ], "img": "0000800.png", "question": { "type": "user", "content": "Let's go to school now." }, "postDialog": [] }
kpInfo JSON

pushType |
cType |
cId |
kpInfo | [ { "kpId": null, "kpType": "vocab", "kpTitle": "school", "kpSkill": "vocab_meaning", "kpSkillName": "词义" } ]

1234567891011121314
{ "pushType": "relationKp", "cType": "mid_dialog_repeat", "cId": "0000800", "kpInfo": [ { "kpId": null, "kpType": "vocab", "kpTitle": "school", "kpSkill": "vocab_meaning", "kpSkillName": "词义" } ] }
原始组件配置 (可编辑后点击"执行重新生成")
【任务标题】 表示大家一起上学 【资源配置】 图片时机： 互动内容 【情境引入】 User: Great! User: Oh, there's no time left. 【互动内容】 User: Let's go to school now. (朗读) 【后置对话】 无
2 对话挖空 cId: 0000801 mid_dialog_fillin
已保存 ▶
jsonData

cType |
cId |
title |
resourceMapping | { "Eva": 663, "Peter": 653, "Vicky": 658 }
preDialog | [ { "type": "user", "content": "Peter, Eva!" } ]
imgShowTimingList | []
question | { "type": "user", "desc": "Let's go to ___.", "content": "Let's go to school." }
optionGroupList | [ { "optionList": [ { "option": "school", "needAudio": true }, { "option": "zoo", "needAudio": true } ], "answer": [ 0 ] } ]
corFeedback | {}
errFeedback | { "type": "npc", "npcName": "Vicky", "content": "I don't think so." }
postDialog | []

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
{ "cType": "mid_dialog_fillin", "cId": "0000801", "title": "表示一起去上学", "resourceMapping": { "Eva": 663, "Peter": 653, "Vicky": 658 }, "preDialog": [ { "type": "user", "content": "Peter, Eva!" } ], "imgShowTimingList": [], "question": { "type": "user", "desc": "Let's go to ___.", "content": "Let's go to school." }, "optionGroupList": [ { "optionList": [ { "option": "school", "needAudio": true }, { "option": "zoo", "needAudio": true } ], "answer": [ 0 ] } ], "corFeedback": {}, "errFeedback": { "type": "npc", "npcName": "Vicky", "content": "I don't think so." }, "postDialog": [] }
kpInfo JSON

pushType |
cType |
cId |
kpInfo | [ { "kpId": null, "kpType": "vocab", "kpTitle": "school", "kpSkill": "vocab_meaning", "kpSkillName": "词义" } ]

1234567891011121314
{ "pushType": "relationKp", "cType": "mid_dialog_fillin", "cId": "0000801", "kpInfo": [ { "kpId": null, "kpType": "vocab", "kpTitle": "school", "kpSkill": "vocab_meaning", "kpSkillName": "词义" } ] }
原始组件配置 (可编辑后点击"执行重新生成")
【任务标题】 表示一起去上学 【资源配置】 无 【情境引入】 User: Peter, Eva! 【互动内容】 Let's go to ___.（音频） 选项1：school（正确） 选项2：zoo 【互动反馈】 正确：无 错误 Vicky: I don't think so. 【后置对话】 无
3 对话朗读 cId: 0000802 mid_dialog_repeat
已保存 ▶
jsonData

cType |
cId |
title |
resourceMapping | { "Eva": 663, "Peter": 653, "Vicky": 658 }
preDialog | []
imgShowTimingList | []
question | { "type": "user", "content": "You need to study." }
postDialog | [ { "type": "npc", "npcName": "Eva", "content": "No, we want to play!" } ]

1234567891011121314151617181920212223
{ "cType": "mid_dialog_repeat", "cId": "0000802", "title": "告诉 Eva 和 Peter 需要学习", "resourceMapping": { "Eva": 663, "Peter": 653, "Vicky": 658 }, "preDialog": [], "imgShowTimingList": [], "question": { "type": "user", "content": "You need to study." }, "postDialog": [ { "type": "npc", "npcName": "Eva", "content": "No, we want to play!" } ] }
kpInfo JSON

pushType |
cType |
cId |
kpInfo | [ { "kpId": "0107009", "kpType": "sentence", "kpTitle": "You need to...", "kpSkill": "sentence_meaning", "kpSkillName": "语义" }, { "kpId": "0112033", "kpType": "vocab", "kpTitle": "study", "kpSkill": "vocab_meaning", "kpSkillName": "词义" }, { "kpId": null, "kpType": "vocab", "kpTitle": "play", "kpSkill": "vocab_meaning", "kpSkillName": "词义" } ]

12345678910111213141516171819202122232425262728
{ "pushType": "relationKp", "cType": "mid_dialog_repeat", "cId": "0000802", "kpInfo": [ { "kpId": "0107009", "kpType": "sentence", "kpTitle": "You need to...", "kpSkill": "sentence_meaning", "kpSkillName": "语义" }, { "kpId": "0112033", "kpType": "vocab", "kpTitle": "study", "kpSkill": "vocab_meaning", "kpSkillName": "词义" }, { "kpId": null, "kpType": "vocab", "kpTitle": "play", "kpSkill": "vocab_meaning", "kpSkillName": "词义" } ] }
原始组件配置 (可编辑后点击"执行重新生成")
【任务标题】 告诉 Eva 和 Peter 需要学习 【资源配置】 无 【情境引入】 无 【互动内容】 User: You need to study. (朗读) 【后置对话】 Eva: No, we want to play!
4 对话朗读 cId: 0000803 mid_dialog_repeat
已保存 ▶
jsonData

cType |
cId |
title |
resourceMapping | { "Eva": 663, "Peter": 653, "Vicky": 658 }
preDialog | []
imgShowTimingList | []
question | { "type": "user", "content": "We can play at school." }
postDialog | [ { "type": "npc", "npcName": "Peter", "content": "That's not fun!" } ]

1234567891011121314151617181920212223
{ "cType": "mid_dialog_repeat", "cId": "0000803", "title": "表示在学校里也可以玩", "resourceMapping": { "Eva": 663, "Peter": 653, "Vicky": 658 }, "preDialog": [], "imgShowTimingList": [], "question": { "type": "user", "content": "We can play at school." }, "postDialog": [ { "type": "npc", "npcName": "Peter", "content": "That's not fun!" } ] }
kpInfo JSON

pushType |
cType |
cId |
kpInfo | [ { "kpId": "0112016", "kpType": "sentence", "kpTitle": "We can...", "kpSkill": "sentence_meaning", "kpSkillName": "语义" }, { "kpId": null, "kpType": "vocab", "kpTitle": "play", "kpSkill": "vocab_meaning", "kpSkillName": "词义" }, { "kpId": null, "kpType": "vocab", "kpTitle": "school", "kpSkill": "vocab_meaning", "kpSkillName": "词义" } ]

12345678910111213141516171819202122232425262728
{ "pushType": "relationKp", "cType": "mid_dialog_repeat", "cId": "0000803", "kpInfo": [ { "kpId": "0112016", "kpType": "sentence", "kpTitle": "We can...", "kpSkill": "sentence_meaning", "kpSkillName": "语义" }, { "kpId": null, "kpType": "vocab", "kpTitle": "play", "kpSkill": "vocab_meaning", "kpSkillName": "词义" }, { "kpId": null, "kpType": "vocab", "kpTitle": "school", "kpSkill": "vocab_meaning", "kpSkillName": "词义" } ] }
原始组件配置 (可编辑后点击"执行重新生成")
【任务标题】 表示在学校里也可以玩 【资源配置】 无 【情境引入】 无 【互动内容】 User: We can play at school. (朗读) 【后置对话】 Peter: That's not fun!
5 对话朗读 cId: 0000804 mid_dialog_repeat
已保存 ▶
jsonData

cType |
cId |
title |
resourceMapping | { "Eva": 663, "Peter": 653, "Vicky": 658 }
preDialog | []
imgShowTimingList | []
question | { "type": "user", "content": "Do you want to be a student?" }
postDialog | []

1234567891011121314151617
{ "cType": "mid_dialog_repeat", "cId": "0000804", "title": "询问 Eva 和 Peter 是否想做学生", "resourceMapping": { "Eva": 663, "Peter": 653, "Vicky": 658 }, "preDialog": [], "imgShowTimingList": [], "question": { "type": "user", "content": "Do you want to be a student?" }, "postDialog": [] }
kpInfo JSON

pushType |
cType |
cId |
kpInfo | [ { "kpId": null, "kpType": "vocab", "kpTitle": "student", "kpSkill": "vocab_meaning", "kpSkillName": "词义" } ]

1234567891011121314
{ "pushType": "relationKp", "cType": "mid_dialog_repeat", "cId": "0000804", "kpInfo": [ { "kpId": null, "kpType": "vocab", "kpTitle": "student", "kpSkill": "vocab_meaning", "kpSkillName": "词义" } ] }
原始组件配置 (可编辑后点击"执行重新生成")
【任务标题】 询问 Eva 和 Peter 是否想做学生 【资源配置】 无 【情境引入】 无 【互动内容】 User: Do you want to be a student? (朗读) 【后置对话】 无
6 对话组句 cId: 0000805 mid_dialog_sentence
已保存 ▶
jsonData

cType |
cId |
title |
resourceMapping | { "Eva": 663, "Peter": 653, "Vicky": 658 }
preDialog | [ { "type": "user", "content": "Hey, look at me." } ]
imgShowTimingList | []
question | { "desc": "表示我是一个学生。", "content": "I'm a student." }
optionList | [ { "option": "I'm", "needAudio": true }, { "option": "student", "needAudio": true }, { "option": "a", "needAudio": true } ]
answer | [ 0, 2, 1 ]
tip |
corFeedback | {}
errFeedback | { "type": "npc", "npcName": "Vicky", "content": "Try again." }
postDialog | []

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
{ "cType": "mid_dialog_sentence", "cId": "0000805", "title": "表示自己是学生", "resourceMapping": { "Eva": 663, "Peter": 653, "Vicky": 658 }, "preDialog": [ { "type": "user", "content": "Hey, look at me." } ], "imgShowTimingList": [], "question": { "desc": "表示我是一个学生。", "content": "I'm a student." }, "optionList": [ { "option": "I'm", "needAudio": true }, { "option": "student", "needAudio": true }, { "option": "a", "needAudio": true } ], "answer": [ 0, 2, 1 ], "tip": "student 指“学生”。", "corFeedback": {}, "errFeedback": { "type": "npc", "npcName": "Vicky", "content": "Try again." }, "postDialog": [] }
kpInfo JSON

pushType |
cType |
cId |
kpInfo | [ { "kpId": null, "kpType": "vocab", "kpTitle": "student", "kpSkill": "vocab_meaning", "kpSkillName": "词义" } ]

1234567891011121314
{ "pushType": "relationKp", "cType": "mid_dialog_sentence", "cId": "0000805", "kpInfo": [ { "kpId": null, "kpType": "vocab", "kpTitle": "student", "kpSkill": "vocab_meaning", "kpSkillName": "词义" } ] }
原始组件配置 (可编辑后点击"执行重新生成")
【任务标题】 表示自己是学生 【资源配置】 无 【情境引入】 User: Hey, look at me. 【互动内容】 题目：表示我是一个学生。 （音频） 选项1：I'm 选项2：student 选项3：a 答案：I'm a student. 辅助信息：student 指“学生”。 【互动反馈】 正确：无 错误 Vicky: Try again. 【后置对话】 无
7 对话朗读 cId: 0000806 mid_dialog_repeat
已保存 ▶
jsonData

cType |
cId |
title |
resourceMapping | { "Eva": 663, "Peter": 653, "Vicky": 658 }
preDialog | []
imgShowTimingList | [ "content" ]
img |
question | { "type": "user", "content": "I study at school." }
postDialog | []

1234567891011121314151617181920
{ "cType": "mid_dialog_repeat", "cId": "0000806", "title": "表示自己在学校学习", "resourceMapping": { "Eva": 663, "Peter": 653, "Vicky": 658 }, "preDialog": [], "imgShowTimingList": [ "content" ], "img": "0000806.png", "question": { "type": "user", "content": "I study at school." }, "postDialog": [] }
原始组件配置 (可编辑后点击"执行重新生成")
【任务标题】 表示自己在学校学习 【资源配置】 图片时机： 互动内容 【情境引入】 无 【互动内容】 User: I study at school. (朗读) 【后置对话】 无
8 对话朗读 cId: 0000807 mid_dialog_repeat
已保存 ▶
jsonData

cType |
cId |
title |
resourceMapping | { "Eva": 663, "Peter": 653, "Vicky": 658 }
preDialog | []
imgShowTimingList | [ "content" ]
img |
question | { "type": "user", "content": "And I play too." }
postDialog | []

1234567891011121314151617181920
{ "cType": "mid_dialog_repeat", "cId": "0000807", "title": "表示自己也玩", "resourceMapping": { "Eva": 663, "Peter": 653, "Vicky": 658 }, "preDialog": [], "imgShowTimingList": [ "content" ], "img": "0000807.png", "question": { "type": "user", "content": "And I play too." }, "postDialog": [] }
原始组件配置 (可编辑后点击"执行重新生成")
【任务标题】 表示自己也玩 【资源配置】 图片时机： 互动内容 【情境引入】 无 【互动内容】 User: And I play too. (朗读) 【后置对话】 无
9 对话挖空 cId: 0000808 mid_dialog_fillin
已保存 ▶
jsonData

cType |
cId |
title |
resourceMapping | { "Eva": 663, "Peter": 653, "Vicky": 658 }
preDialog | []
imgShowTimingList | []
question | { "type": "user", "desc": "We're not here to ___.", "content": "We're not here to study." }
optionGroupList | [ { "optionList": [ { "option": "study", "needAudio": true }, { "option": "student", "needAudio": true } ], "answer": [ 0 ] } ]
corFeedback | {}
errFeedback | { "type": "npc", "npcName": "Grace", "content": "Are you sure?" }
postDialog | []

1234567891011121314151617181920212223242526272829303132333435363738394041
{ "cType": "mid_dialog_fillin", "cId": "0000808", "title": "表示并不是要学习", "resourceMapping": { "Eva": 663, "Peter": 653, "Vicky": 658 }, "preDialog": [], "imgShowTimingList": [], "question": { "type": "user", "desc": "We're not here to ___.", "content": "We're not here to study." }, "optionGroupList": [ { "optionList": [ { "option": "study", "needAudio": true }, { "option": "student", "needAudio": true } ], "answer": [ 0 ] } ], "corFeedback": {}, "errFeedback": { "type": "npc", "npcName": "Grace", "content": "Are you sure?" }, "postDialog": [] }
kpInfo JSON

pushType |
cType |
cId |
kpInfo | [ { "kpId": "0112033", "kpType": "vocab", "kpTitle": "study", "kpSkill": "vocab_meaning", "kpSkillName": "词义" } ]

1234567891011121314
{ "pushType": "relationKp", "cType": "mid_dialog_fillin", "cId": "0000808", "kpInfo": [ { "kpId": "0112033", "kpType": "vocab", "kpTitle": "study", "kpSkill": "vocab_meaning", "kpSkillName": "词义" } ] }
原始组件配置 (可编辑后点击"执行重新生成")
【任务标题】 表示并不是要学习 【资源配置】 无 【情境引入】 无 【互动内容】 We're not here to ___.（音频） 选项1：study（正确） 选项2：student 【互动反馈】 正确：无 错误 Grace: Are you sure? 【后置对话】 无
10 对话朗读 cId: 0000809 mid_dialog_repeat
已保存 ▶
jsonData

cType |
cId |
title |
resourceMapping | { "Eva": 663, "Peter": 653, "Vicky": 658 }
preDialog | []
imgShowTimingList | [ "content" ]
img |
question | { "type": "user", "content": "It's \"Go to School\"." }
postDialog | []

1234567891011121314151617181920
{ "cType": "mid_dialog_repeat", "cId": "0000809", "title": "说出书名", "resourceMapping": { "Eva": 663, "Peter": 653, "Vicky": 658 }, "preDialog": [], "imgShowTimingList": [ "content" ], "img": "0000809.png", "question": { "type": "user", "content": "It's \"Go to School\"." }, "postDialog": [] }
原始组件配置 (可编辑后点击"执行重新生成")
【任务标题】 说出书名 【资源配置】 图片时机： 互动内容 【情境引入】 无 【互动内容】 User: It's "Go to School". (朗读) 【后置对话】 无
11 对话朗读 cId: 0000810 mid_dialog_repeat
已保存 ▶
jsonData

cType |
cId |
title |
resourceMapping | { "Eva": 663, "Peter": 653, "Vicky": 658 }
preDialog | []
imgShowTimingList | [ "content" ]
img |
question | { "type": "user", "content": "" }
postDialog | []

1234567891011121314151617181920
{ "cType": "mid_dialog_repeat", "cId": "0000810", "title": "说出书名", "resourceMapping": { "Eva": 663, "Peter": 653, "Vicky": 658 }, "preDialog": [], "imgShowTimingList": [ "content" ], "img": "0000810.png", "question": { "type": "user", "content": "" }, "postDialog": [] }
原始组件配置 (可编辑后点击"执行重新生成")
【任务标题】 说出书名 【资源配置】 图片时机： 互动内容 【情境引入】 无 【互动形式】 User: It's "Go to School". (朗读) 【后面对话】 无
12 核心听力选择 cId: 0000810 core_listening_choose
已保存 ▶
中间结果: 学习过程配置

    无

中间结果: 互动描述

    请你提供完整的题目材料相关内容哦，目前缺少具体的听力材料内容、核心信息以及相关的正确对应内容，我没办法生成符合要求的叙事描述。

原始组件配置 (可编辑后点击"执行重新生成")
Where are Kimi and Jimmy going? 0：学校 1：动物园 2：烘焙坊
13 对话组句 cId: 0000811 mid_dialog_sentence
已保存 ▶
jsonData

cType |
cId |
title |
resourceMapping | { "Eva": 663, "Peter": 653, "Vicky": 658 }
preDialog | []
imgShowTimingList | []
question | { "desc": "表示你们需要学习。", "content": "You need to study." }
optionList | [ { "option": "need to", "needAudio": true }, { "option": "you", "needAudio": true }, { "option": "study", "needAudio": true } ]
answer | [ 1, 0, 2 ]
tip |
corFeedback | {}
errFeedback | { "type": "npc", "npcName": "Peter", "content": "Huh?" }
postDialog | []

12345678910111213141516171819202122232425262728293031323334353637383940414243
{ "cType": "mid_dialog_sentence", "cId": "0000811", "title": "表示你们需要学习", "resourceMapping": { "Eva": 663, "Peter": 653, "Vicky": 658 }, "preDialog": [], "imgShowTimingList": [], "question": { "desc": "表示你们需要学习。", "content": "You need to study." }, "optionList": [ { "option": "need to", "needAudio": true }, { "option": "you", "needAudio": true }, { "option": "study", "needAudio": true } ], "answer": [ 1, 0, 2 ], "tip": "study 指“学习”。", "corFeedback": {}, "errFeedback": { "type": "npc", "npcName": "Peter", "content": "Huh?" }, "postDialog": [] }
kpInfo JSON

pushType |
cType |
cId |
kpInfo | [ { "kpId": "0107009", "kpType": "sentence", "kpTitle": "You need to...", "kpSkill": "sentence_meaning", "kpSkillName": "语义" }, { "kpId": "0112033", "kpType": "vocab", "kpTitle": "study", "kpSkill": "vocab_meaning", "kpSkillName": "词义" } ]

123456789101112131415161718192021
{ "pushType": "relationKp", "cType": "mid_dialog_sentence", "cId": "0000811", "kpInfo": [ { "kpId": "0107009", "kpType": "sentence", "kpTitle": "You need to...", "kpSkill": "sentence_meaning", "kpSkillName": "语义" }, { "kpId": "0112033", "kpType": "vocab", "kpTitle": "study", "kpSkill": "vocab_meaning", "kpSkillName": "词义" } ] }
原始组件配置 (可编辑后点击"执行重新生成")
【任务标题】 表示你们需要学习 【资源配置】 无 【情境引入】 无 【互动内容】 题目：表示你们需要学习。 （音频） 选项1：need to 选项2：you 选项3：study 答案：You need to study. 辅助信息：study 指“学习”。 【互动反馈】 正确：无 错误 Peter: Huh? 【后置对话】 无
14 对话组句 cId: 0000812 mid_dialog_sentence
已保存 ▶
jsonData

cType |
cId |
title |
resourceMapping | { "Eva": 663, "Peter": 653, "Vicky": 658 }
preDialog | []
imgShowTimingList | []
question | { "desc": "表示你们需要上学。", "content": "You need to go to school." }
optionList | [ { "option": "need to", "needAudio": true }, { "option": "go to school", "needAudio": true }, { "option": "you", "needAudio": true } ]
answer | [ 2, 0, 1 ]
tip |
corFeedback | {}
errFeedback | { "type": "npc", "npcName": "Grace", "content": "Try again." }
postDialog | []

12345678910111213141516171819202122232425262728293031323334353637383940414243
{ "cType": "mid_dialog_sentence", "cId": "0000812", "title": "表示你们需要上学", "resourceMapping": { "Eva": 663, "Peter": 653, "Vicky": 658 }, "preDialog": [], "imgShowTimingList": [], "question": { "desc": "表示你们需要上学。", "content": "You need to go to school." }, "optionList": [ { "option": "need to", "needAudio": true }, { "option": "go to school", "needAudio": true }, { "option": "you", "needAudio": true } ], "answer": [ 2, 0, 1 ], "tip": "go to school 指“上学”。", "corFeedback": {}, "errFeedback": { "type": "npc", "npcName": "Grace", "content": "Try again." }, "postDialog": [] }
kpInfo JSON

pushType |
cType |
cId |
kpInfo | [ { "kpId": "0107009", "kpType": "sentence", "kpTitle": "You need to...", "kpSkill": "sentence_meaning", "kpSkillName": "语义" }, { "kpId": null, "kpType": "vocab", "kpTitle": "school", "kpSkill": "vocab_meaning", "kpSkillName": "词义" } ]

123456789101112131415161718192021
{ "pushType": "relationKp", "cType": "mid_dialog_sentence", "cId": "0000812", "kpInfo": [ { "kpId": "0107009", "kpType": "sentence", "kpTitle": "You need to...", "kpSkill": "sentence_meaning", "kpSkillName": "语义" }, { "kpId": null, "kpType": "vocab", "kpTitle": "school", "kpSkill": "vocab_meaning", "kpSkillName": "词义" } ] }
原始组件配置 (可编辑后点击"执行重新生成")
【任务标题】 表示你们需要上学 【资源配置】 无 【情境引入】 无 【互动内容】 题目：表示你们需要上学。 （音频） 选项1：need to 选项2：go to school 选项3：you 答案：You need to go to school. 辅助信息：go to school 指“上学”。 【互动反馈】 正确：无 错误 Grace: Try again. 【后置对话】 无
15 对话挖空 cId: 0000813 mid_dialog_fillin
已保存 ▶
jsonData

cType |
cId |
title |
resourceMapping | { "Eva": 663, "Peter": 653, "Vicky": 658 }
preDialog | []
imgShowTimingList | []
question | { "type": "user", "desc": "Then you can ___ there.", "content": "Then you can play there." }
optionGroupList | [ { "optionList": [ { "option": "play", "needAudio": true }, { "option": "catch", "needAudio": true } ], "answer": [ 0 ] } ]
corFeedback | {}
errFeedback | { "type": "npc", "npcName": "Grace", "content": "I don't think so." }
postDialog | []

1234567891011121314151617181920212223242526272829303132333435363738394041
{ "cType": "mid_dialog_fillin", "cId": "0000813", "title": "表示可以在学校玩耍", "resourceMapping": { "Eva": 663, "Peter": 653, "Vicky": 658 }, "preDialog": [], "imgShowTimingList": [], "question": { "type": "user", "desc": "Then you can ___ there.", "content": "Then you can play there." }, "optionGroupList": [ { "optionList": [ { "option": "play", "needAudio": true }, { "option": "catch", "needAudio": true } ], "answer": [ 0 ] } ], "corFeedback": {}, "errFeedback": { "type": "npc", "npcName": "Grace", "content": "I don't think so." }, "postDialog": [] }
kpInfo JSON

pushType |
cType |
cId |
kpInfo | [ { "kpId": null, "kpType": "vocab", "kpTitle": "play", "kpSkill": "vocab_meaning", "kpSkillName": "词义" } ]

1234567891011121314
{ "pushType": "relationKp", "cType": "mid_dialog_fillin", "cId": "0000813", "kpInfo": [ { "kpId": null, "kpType": "vocab", "kpTitle": "play", "kpSkill": "vocab_meaning", "kpSkillName": "词义" } ] }
原始组件配置 (可编辑后点击"执行重新生成")
【任务标题】 表示可以在学校玩耍 【资源配置】 无 【情境引入】 无 【互动内容】 Then you can ___ there.（音频） 选项1：play（正确） 选项2：catch 【互动反馈】 正确：无 错误 Grace: I don't think so. 【后置对话】 无
16 对话组句 cId: 0000814 mid_dialog_sentence
已保存 ▶
jsonData

cType |
cId |
title |
resourceMapping | { "Peter": 739, "Eva": 738 }
preDialog | []
imgShowTimingList | []
question | { "desc": "表示我们可以坐校车上学。", "content": "We can take the school bus." }
optionList | [ { "option": "we can", "needAudio": true }, { "option": "the school bus", "needAudio": true }, { "option": "take", "needAudio": true } ]
answer | [ 0, 2, 1 ]
tip |
corFeedback | {}
errFeedback | { "type": "npc", "npcName": "Vicky", "content": "No, try again." }
postDialog | []

123456789101112131415161718192021222324252627282930313233343536373839404142
{ "cType": "mid_dialog_sentence", "cId": "0000814", "title": "表示可以坐校车上学", "resourceMapping": { "Peter": 739, "Eva": 738 }, "preDialog": [], "imgShowTimingList": [], "question": { "desc": "表示我们可以坐校车上学。", "content": "We can take the school bus." }, "optionList": [ { "option": "we can", "needAudio": true }, { "option": "the school bus", "needAudio": true }, { "option": "take", "needAudio": true } ], "answer": [ 0, 2, 1 ], "tip": "句子以 we can 开头。", "corFeedback": {}, "errFeedback": { "type": "npc", "npcName": "Vicky", "content": "No, try again." }, "postDialog": [] }
kpInfo JSON

pushType |
cType |
cId |
kpInfo | [ { "kpId": "0112016", "kpType": "sentence", "kpTitle": "We can...", "kpSkill": "sentence_meaning", "kpSkillName": "语义" } ]

1234567891011121314
{ "pushType": "relationKp", "cType": "mid_dialog_sentence", "cId": "0000814", "kpInfo": [ { "kpId": "0112016", "kpType": "sentence", "kpTitle": "We can...", "kpSkill": "sentence_meaning", "kpSkillName": "语义" } ] }
原始组件配置 (可编辑后点击"执行重新生成")
【任务标题】 表示可以坐校车上学 【资源配置】 无 【情境引入】 无 【互动内容】 题目：表示我们可以坐校车上学。 （音频） 选项1：we can 选项2：the school bus 选项3：take 答案：We can take the school bus. 辅助信息：句子以 we can 开头。 【互动反馈】 正确：无 错误 Vicky: No, try again. 【后置对话】 无
17 对话挖空 cId: 0000815 mid_dialog_fillin
已保存 ▶
jsonData

cType |
cId |
title |
resourceMapping | { "Peter": 739, "Eva": 738 }
preDialog | []
imgShowTimingList | []
question | { "type": "user", "desc": "You are a ___ now.", "content": "You are a student now." }
optionGroupList | [ { "optionList": [ { "option": "play", "needAudio": true }, { "option": "student", "needAudio": true } ], "answer": [ 1 ] } ]
corFeedback | {}
errFeedback | { "type": "npc", "npcName": "Grace", "content": "Try again." }
postDialog | []

12345678910111213141516171819202122232425262728293031323334353637383940
{ "cType": "mid_dialog_fillin", "cId": "0000815", "title": "表示 Peter 是学生了", "resourceMapping": { "Peter": 739, "Eva": 738 }, "preDialog": [], "imgShowTimingList": [], "question": { "type": "user", "desc": "You are a ___ now.", "content": "You are a student now." }, "optionGroupList": [ { "optionList": [ { "option": "play", "needAudio": true }, { "option": "student", "needAudio": true } ], "answer": [ 1 ] } ], "corFeedback": {}, "errFeedback": { "type": "npc", "npcName": "Grace", "content": "Try again." }, "postDialog": [] }
kpInfo JSON

pushType |
cType |
cId |
kpInfo | [ { "kpId": null, "kpType": "vocab", "kpTitle": "student", "kpSkill": "vocab_meaning", "kpSkillName": "词义" } ]

1234567891011121314
{ "pushType": "relationKp", "cType": "mid_dialog_fillin", "cId": "0000815", "kpInfo": [ { "kpId": null, "kpType": "vocab", "kpTitle": "student", "kpSkill": "vocab_meaning", "kpSkillName": "词义" } ] }
原始组件配置 (可编辑后点击"执行重新生成")
【任务标题】 表示 Peter 是学生了 【资源配置】 无 【情境引入】 无 【互动内容】 You are a ___ now.（音频） 选项1：play 选项2：student（正确） 【互动反馈】 正确：无 错误 Grace: Try again. 【后置对话】 无
18 核心合作阅读 cId: 0000800 core_reading_order
已保存 ▶
taskInfo

cType |
cId |
title |
sceneDesc | 你们听说 Vala 学院没有考试，正在欢呼雀跃。突然发现 Pioneer 的一项重要任务：加入社团！为什么 Pioneer 一定要加入社团呢？快来阅读 Brainy 的介绍吧。
img |

key

[ { "desc": "词汇类", "keyList": [ { "type": "default", "content": "plant", "desc": "n. 植物" }, { "type": "default", "content": "club", "desc": "n. 俱乐部" }, { "type": "default", "content": "join", "desc": "v. 加入" }, { "type": "default", "content": "member", "desc": "n. 成员" }, { "type": "default", "content": "choose", "desc": "v. 选择" }, { "type": "default", "content": "interested", "desc": "adj. 感兴趣的" } ] } ]

resourceMapping | { "Peter": 739, "Eva": 738 }

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
{ "cType": "core_reading_order", "cId": "0000800", "title": "阅读 《在 Vala 学院，为什么要加入社团》", "sceneDesc": "你们听说 Vala 学院没有考试，正在欢呼雀跃。突然发现 Pioneer 的一项重要任务：加入社团！为什么 Pioneer 一定要加入社团呢？快来阅读 Brainy 的介绍吧。", "img": "", "key": [ { "desc": "词汇类", "keyList": [ { "type": "default", "content": "plant", "desc": "n. 植物" }, { "type": "default", "content": "club", "desc": "n. 俱乐部" }, { "type": "default", "content": "join", "desc": "v. 加入" }, { "type": "default", "content": "member", "desc": "n. 成员" }, { "type": "default", "content": "choose", "desc": "v. 选择" }, { "type": "default", "content": "interested", "desc": "adj. 感兴趣的" } ] } ], "resourceMapping": { "Peter": 739, "Eva": 738 } }
materialInfo

text

[ { "textType": "Lcd", "textTitle": "How to Join Clubs?", "textBody": "<sp>You can choose your favourite club to join. If you are interested in something, you can find a club for it. The robot club, the plant club, the sports club, and the reading club are all popular choices.<br>If you are not interested in any club, you can start a new one with friends!<br><sp>图片:[0101106_core reading2]" } ]

question

[ { "type": "npc", "npcName": "Brainy", "content": "At Vala Academy, how can Pioneers get points?", "optionList": [ { "option": "Take many exams.", "feedback": { "type": "npc", "npcName": "Otis", "content": "No! We have no exams!" } }, { "option": "Join clubs.", "feedback": { "type": "npc", "npcName": "Otis", "content": "Right. We need to join a club to get points." } }, { "option": "Level up.", "feedback": { "type": "npc", "npcName": "Otis", "content": "We have to get points first, then we can level up." } } ], "answer": [ 1 ], "meaning": "", "explain": "" }, { "type": "npc", "npcName": "Brainy", "content": "What can you do in a club?", "optionList": [ { "option": "We can earn some money.", "feedback": { "type": "npc", "npcName": "Skylar", "content": "No, that's not right." } }, { "option": "We can play, study and work together.", "feedback": { "type": "npc", "npcName": "Skylar", "content": "That's right! That's what clubs are for!" } }, { "option": "We can only play.", "feedback": { "type": "npc", "npcName": "Skylar", "content": "Hmm… We play, but we also study and work." } } ], "answer": [ 1 ], "meaning": "", "explain": "" }, { "type": "npc", "npcName": "Otis", "content": "How can we choose a club?", "optionList": [ { "option": "We can only choose the plant club and the robot club.", "feedback": { "type": "npc", "npcName": "Skylar", "content": "Nope! We can choose from many clubs." } }, { "option": "We can choose a club we are interested in.", "feedback": { "type": "npc", "npcName": "Skylar", "content": "Yes, exactly! Choose what you like!" } }, { "option": "We must start a new club.", "feedback": { "type": "npc", "npcName": "Skylar", "content": "No, not must. Only if you want to." } } ], "answer": [ 1 ], "meaning": "", "explain": "" }, { "type": "npc", "npcName": "Skylar", "content": "If we are not interested in any club, what should we do?", "optionList": [ { "option": "We can't join any clubs.", "feedback": { "type": "npc", "npcName": "Otis", "content": "Uh… That sounds bad." } }, { "option": "We can start a new club.", "feedback": { "type": "npc", "npcName": "Otis", "content": "Yes! That sounds okay." } }, { "option": "We can only join the plant club.", "feedback": { "type": "npc", "npcName": "Otis", "content": "I don't think so… We have other choices." } } ], "answer": [ 1 ], "meaning": "", "explain": "" } ]

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
{ "text": [ { "textType": "Lcd", "textTitle": "How to Join Clubs?", "textBody": "<sp>You can choose your favourite club to join. If you are interested in something, you can find a club for it. The robot club, the plant club, the sports club, and the reading club are all popular choices.<br>If you are not interested in any club, you can start a new one with friends!<br><sp>图片:[0101106_core reading2]" } ], "question": [ { "type": "npc", "npcName": "Brainy", "content": "At Vala Academy, how can Pioneers get points?", "optionList": [ { "option": "Take many exams.", "feedback": { "type": "npc", "npcName": "Otis", "content": "No! We have no exams!" } }, { "option": "Join clubs.", "feedback": { "type": "npc", "npcName": "Otis", "content": "Right. We need to join a club to get points." } }, { "option": "Level up.", "feedback": { "type": "npc", "npcName": "Otis", "content": "We have to get points first, then we can level up." } } ], "answer": [ 1 ], "meaning": "", "explain": "" }, { "type": "npc", "npcName": "Brainy", "content": "What can you do in a club?", "optionList": [ { "option": "We can earn some money.", "feedback": { "type": "npc", "npcName": "Skylar", "content": "No, that's not right." } }, { "option": "We can play, study and work together.", "feedback": { "type": "npc", "npcName": "Skylar", "content": "That's right! That's what clubs are for!" } }, { "option": "We can only play.", "feedback": { "type": "npc", "npcName": "Skylar", "content": "Hmm… We play, but we also study and work." } } ], "answer": [ 1 ], "meaning": "", "explain": "" }, { "type": "npc", "npcName": "Otis", "content": "How can we choose a club?", "optionList": [ { "option": "We can only choose the plant club and the robot club.", "feedback": { "type": "npc", "npcName": "Skylar", "content": "Nope! We can choose from many clubs." } }, { "option": "We can choose a club we are interested in.", "feedback": { "type": "npc", "npcName": "Skylar", "content": "Yes, exactly! Choose what you like!" } }, { "option": "We must start a new club.", "feedback": { "type": "npc", "npcName": "Skylar", "content": "No, not must. Only if you want to." } } ], "answer": [ 1 ], "meaning": "", "explain": "" }, { "type": "npc", "npcName": "Skylar", "content": "If we are not interested in any club, what should we do?", "optionList": [ { "option": "We can't join any clubs.", "feedback": { "type": "npc", "npcName": "Otis", "content": "Uh… That sounds bad." } }, { "option": "We can start a new club.", "feedback": { "type": "npc", "npcName": "Otis", "content": "Yes! That sounds okay." } }, { "option": "We can only join the plant club.", "feedback": { "type": "npc", "npcName": "Otis", "content": "I don't think so… We have other choices." } } ], "answer": [ 1 ], "meaning": "", "explain": "" } ] }
flowInfo

sequence | [ { "text": [ 0 ] }, { "dialog": { "type": "npc", "npcName": "Brainy", "content": "Now, let’s make sure you understand everything." } }, { "question": [ 0 ] }, { "question": [ 1 ] }, { "text": [ 1 ] }, { "question": [ 2 ] }, { "question": [ 3 ] } ]

1234567891011121314151617181920212223242526272829303132333435363738394041
{ "sequence": [ { "text": [ 0 ] }, { "dialog": { "type": "npc", "npcName": "Brainy", "content": "Now, let’s make sure you understand everything." } }, { "question": [ 0 ] }, { "question": [ 1 ] }, { "text": [ 1 ] }, { "question": [ 2 ] }, { "question": [ 3 ] } ] }
studyInfo

closing | { "type": "npc", "content": "恭喜你完成了所有内容的学习！你对知识点的掌握越来越扎实啦，继续加油哦～", "npcName": "Brainy" }

learningPart

[ { "leadIn": { "desc": "At Vala Academy, Pioneers don't have exams. But you need points to level up!" }, "type": "npc", "content": "我们来认识一下这段话中的关键单词 points。points 在这里是积分的意思，积攒积分可以兑换物品、提升等级哦。", "npcName": "Brainy", "learning": [ { "answer": [ 1 ], "meaning": "句意选择题", "optionList": [ { "feedback": { "type": "npc", "content": "不对哦，句子里说的是需要points，也就是积分，而且前半句还提到先锋们没有考试，再仔细确认下吧。", "npcName": "Brainy" }, "option": "但是你需要通过考试来升级。" }, { "feedback": { "type": "npc", "content": "太棒了！你已经掌握了关键单词 points 和整个句子的意思啦～", "npcName": "Brainy" }, "option": "但是你需要积分来升级。" } ], "question": { "type": "npc", "npcName": "Brainy", "content": "接下来，我们来看下包含 points 的句子 But you need points to level up! 是什么意思呢？" } }, { "answer": [ 0 ], "meaning": "句意选择题", "optionList": [ { "feedback": { "type": "npc", "content": "回答正确！你已经准确理解了exams的含义和这句话的意思啦～", "npcName": "Brainy" }, "option": "在瓦拉学院，先锋们没有考试。" }, { "feedback": { "type": "npc", "content": "不对哦，exams是考试的意思，不是俱乐部，再看看正确的释义吧。", "npcName": "Brainy" }, "option": "在瓦拉学院，先锋们没有俱乐部。" } ], "question": { "type": "npc", "npcName": "Brainy", "content": "我们来看看包含 exams 的句子 At Vala Academy, Pioneers don't have exams. 是什么意思呢？" } }, { "answer": [ 0 ], "meaning": "段落大意题", "optionList": [ { "feedback": { "type": "npc", "content": "太厉害啦！你完全抓住了这段的两个核心信息点哦～", "npcName": "Brainy" }, "option": "瓦拉学院的先锋不需要考试，但是需要用积分升级。" }, { "feedback": { "type": "npc", "content": "不对哦，这段明确说了先锋们没有考试，再仔细读读段落内容吧。", "npcName": "Brainy" }, "option": "瓦拉学院的先锋需要通过考试获得积分来升级。" } ], "question": { "type": "npc", "npcName": "Brainy", "content": "了解了关键单词和句子的意思，我们来看看这一段主要讲了什么吧？" } } ] }, { "leadIn": { "desc": "You can choose your favourite club to join. If you are interested in something, you can find a club for it." }, "type": "npc", "content": "我们来认识一下这段话中的关键单词 club。club 是俱乐部的意思，大家可以根据自己的爱好加入不同的club哦。", "npcName": "Brainy", "learning": [ { "answer": [ 0 ], "meaning": "句意选择题", "optionList": [ { "feedback": { "type": "npc", "content": "完美回答！你已经掌握了club的意思和这个句子的含义啦～", "npcName": "Brainy" }, "option": "你可以选择自己最喜欢的俱乐部加入。" }, { "feedback": { "type": "npc", "content": "不对哦，club是俱乐部的意思，不是课程，再看看正确的解释吧。", "npcName": "Brainy" }, "option": "你可以选择自己最喜欢的课程学习。" } ], "question": { "type": "npc", "npcName": "Brainy", "content": "接下来，我们来看下包含 club 的句子 You can choose your favourite club to join. 是什么意思呢？" } }, { "answer": [ 1 ], "meaning": "句意选择题", "optionList": [ { "feedback": { "type": "npc", "content": "不对哦，interested是感兴趣的意思，不是擅长，句子里也没有说要开俱乐部，再确认下吧。", "npcName": "Brainy" }, "option": "如果你对某件事很擅长，你可以为它开一个俱乐部。" }, { "feedback": { "type": "npc", "content": "太棒啦！你已经理解了interested的含义和这个句子的意思啦～", "npcName": "Brainy" }, "option": "如果你对某件事感兴趣，你可以找到对应的俱乐部。" } ], "question": { "type": "npc", "npcName": "Brainy", "content": "我们来看看包含 interested 的句子 If you are interested in something, you can find a club for it. 是什么意思呢？" } }, { "answer": [ 0 ], "meaning": "段落大意题", "optionList": [ { "feedback": { "type": "npc", "content": "答得真好！你完全get到了这段的核心内容哦～", "npcName": "Brainy" }, "option": "你可以选择感兴趣的俱乐部加入。" }, { "feedback": { "type": "npc", "content": "不对哦，这段并没有提到俱乐部是否受欢迎的内容，再仔细看看段落吧。", "npcName": "Brainy" }, "option": "所有的俱乐部都非常受欢迎。" } ], "question": { "type": "npc", "npcName": "Brainy", "content": "了解了关键单词和句子，我们来看看这一段主要讲了什么吧？" } } ] } ]

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203
{ "closing": { "type": "npc", "content": "恭喜你完成了所有内容的学习！你对知识点的掌握越来越扎实啦，继续加油哦～", "npcName": "Brainy" }, "learningPart": [ { "leadIn": { "desc": "At Vala Academy, Pioneers don't have exams. But you need points to level up!" }, "type": "npc", "content": "我们来认识一下这段话中的关键单词 points。points 在这里是积分的意思，积攒积分可以兑换物品、提升等级哦。", "npcName": "Brainy", "learning": [ { "answer": [ 1 ], "meaning": "句意选择题", "optionList": [ { "feedback": { "type": "npc", "content": "不对哦，句子里说的是需要points，也就是积分，而且前半句还提到先锋们没有考试，再仔细确认下吧。", "npcName": "Brainy" }, "option": "但是你需要通过考试来升级。" }, { "feedback": { "type": "npc", "content": "太棒了！你已经掌握了关键单词 points 和整个句子的意思啦～", "npcName": "Brainy" }, "option": "但是你需要积分来升级。" } ], "question": { "type": "npc", "npcName": "Brainy", "content": "接下来，我们来看下包含 points 的句子 But you need points to level up! 是什么意思呢？" } }, { "answer": [ 0 ], "meaning": "句意选择题", "optionList": [ { "feedback": { "type": "npc", "content": "回答正确！你已经准确理解了exams的含义和这句话的意思啦～", "npcName": "Brainy" }, "option": "在瓦拉学院，先锋们没有考试。" }, { "feedback": { "type": "npc", "content": "不对哦，exams是考试的意思，不是俱乐部，再看看正确的释义吧。", "npcName": "Brainy" }, "option": "在瓦拉学院，先锋们没有俱乐部。" } ], "question": { "type": "npc", "npcName": "Brainy", "content": "我们来看看包含 exams 的句子 At Vala Academy, Pioneers don't have exams. 是什么意思呢？" } }, { "answer": [ 0 ], "meaning": "段落大意题", "optionList": [ { "feedback": { "type": "npc", "content": "太厉害啦！你完全抓住了这段的两个核心信息点哦～", "npcName": "Brainy" }, "option": "瓦拉学院的先锋不需要考试，但是需要用积分升级。" }, { "feedback": { "type": "npc", "content": "不对哦，这段明确说了先锋们没有考试，再仔细读读段落内容吧。", "npcName": "Brainy" }, "option": "瓦拉学院的先锋需要通过考试获得积分来升级。" } ], "question": { "type": "npc", "npcName": "Brainy", "content": "了解了关键单词和句子的意思，我们来看看这一段主要讲了什么吧？" } } ] }, { "leadIn": { "desc": "You can choose your favourite club to join. If you are interested in something, you can find a club for it." }, "type": "npc", "content": "我们来认识一下这段话中的关键单词 club。club 是俱乐部的意思，大家可以根据自己的爱好加入不同的club哦。", "npcName": "Brainy", "learning": [ { "answer": [ 0 ], "meaning": "句意选择题", "optionList": [ { "feedback": { "type": "npc", "content": "完美回答！你已经掌握了club的意思和这个句子的含义啦～", "npcName": "Brainy" }, "option": "你可以选择自己最喜欢的俱乐部加入。" }, { "feedback": { "type": "npc", "content": "不对哦，club是俱乐部的意思，不是课程，再看看正确的解释吧。", "npcName": "Brainy" }, "option": "你可以选择自己最喜欢的课程学习。" } ], "question": { "type": "npc", "npcName": "Brainy", "content": "接下来，我们来看下包含 club 的句子 You can choose your favourite club to join. 是什么意思呢？" } }, { "answer": [ 1 ], "meaning": "句意选择题", "optionList": [ { "feedback": { "type": "npc", "content": "不对哦，interested是感兴趣的意思，不是擅长，句子里也没有说要开俱乐部，再确认下吧。", "npcName": "Brainy" }, "option": "如果你对某件事很擅长，你可以为它开一个俱乐部。" }, { "feedback": { "type": "npc", "content": "太棒啦！你已经理解了interested的含义和这个句子的意思啦～", "npcName": "Brainy" }, "option": "如果你对某件事感兴趣，你可以找到对应的俱乐部。" } ], "question": { "type": "npc", "npcName": "Brainy", "content": "我们来看看包含 interested 的句子 If you are interested in something, you can find a club for it. 是什么意思呢？" } }, { "answer": [ 0 ], "meaning": "段落大意题", "optionList": [ { "feedback": { "type": "npc", "content": "答得真好！你完全get到了这段的核心内容哦～", "npcName": "Brainy" }, "option": "你可以选择感兴趣的俱乐部加入。" }, { "feedback": { "type": "npc", "content": "不对哦，这段并没有提到俱乐部是否受欢迎的内容，再仔细看看段落吧。", "npcName": "Brainy" }, "option": "所有的俱乐部都非常受欢迎。" } ], "question": { "type": "npc", "npcName": "Brainy", "content": "了解了关键单词和句子，我们来看看这一段主要讲了什么吧？" } } ] } ] }
kpInfo JSON

pushType |
cType |
cId |

kpInfo

[ { "kpId": null, "kpType": "vocab", "kpTitle": "plant n. 植物", "kpSkill": "vocab_meaning", "kpSkillName": "词义" }, { "kpId": null, "kpType": "vocab", "kpTitle": "club n. 俱乐部", "kpSkill": "vocab_meaning", "kpSkillName": "词义" }, { "kpId": null, "kpType": "vocab", "kpTitle": "join v. 加入", "kpSkill": "vocab_meaning", "kpSkillName": "词义" }, { "kpId": null, "kpType": "vocab", "kpTitle": "member n. 成员", "kpSkill": "vocab_meaning", "kpSkillName": "词义" }, { "kpId": null, "kpType": "vocab", "kpTitle": "choose v. 选择", "kpSkill": "vocab_meaning", "kpSkillName": "词义" }, { "kpId": null, "kpType": "vocab", "kpTitle": "interested adj. 感兴趣的", "kpSkill": "vocab_meaning", "kpSkillName": "词义" } ]

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
{ "pushType": "relationKp", "cType": "core_reading_order", "cId": "0000800", "kpInfo": [ { "kpId": null, "kpType": "vocab", "kpTitle": "plant n. 植物", "kpSkill": "vocab_meaning", "kpSkillName": "词义" }, { "kpId": null, "kpType": "vocab", "kpTitle": "club n. 俱乐部", "kpSkill": "vocab_meaning", "kpSkillName": "词义" }, { "kpId": null, "kpType": "vocab", "kpTitle": "join v. 加入", "kpSkill": "vocab_meaning", "kpSkillName": "词义" }, { "kpId": null, "kpType": "vocab", "kpTitle": "member n. 成员", "kpSkill": "vocab_meaning", "kpSkillName": "词义" }, { "kpId": null, "kpType": "vocab", "kpTitle": "choose v. 选择", "kpSkill": "vocab_meaning", "kpSkillName": "词义" }, { "kpId": null, "kpType": "vocab", "kpTitle": "interested adj. 感兴趣的", "kpSkill": "vocab_meaning", "kpSkillName": "词义" } ] }
中间结果: 阅读材料格式化

    ```
    # 材料2
    类型：电子屏
    标题：How to Join Clubs?
    正文:
    <sp>You can choose your favourite club to join. If you are interested in something, you can find a club for it. The robot club, the plant club, the sports club, and the reading club are all popular choices.<br>If you are not interested in any club, you can start a new one with friends!<br>
    <sp>图片:[0101106_core reading2]
    ```

中间结果: 学习材料格式化

    ```
    # 段落1
    重点词汇:
    正文:
    ---
    At Vala Academy, Pioneers don't have exams. But you need points to level up!
    ---
    # 段落2
    重点词汇:
    正文:
    ---
    You can choose your favourite club to join. If you are interested in something, you can find a club for it.
    ---
    ```

中间结果: 学习过程配置

    ```
    # 段落1
    ## 段落内容
    ---
    At Vala Academy, Pioneers don't have exams. But you need points to level up!
    ---
    ## 互动题目
    Brainy：我们来认识一下这段话中的关键单词 points。points 在这里是积分的意思，积攒积分可以兑换物品、提升等级哦。
    1. 句意选择题
    Brainy：接下来，我们来看下包含 points 的句子 But you need points to level up! 是什么意思呢？
    - 但是你需要通过考试来升级。
      Brainy：不对哦，句子里说的是需要points，也就是积分，而且前半句还提到先锋们没有考试，再仔细确认下吧。
    - 但是你需要积分来升级。[正确]
      Brainy：太棒了！你已经掌握了关键单词 points 和整个句子的意思啦～

    Brainy：我们再来认识另一个关键单词 exams。exams 是考试的意思，上学的时候我们通常需要参加 exams 来检验学习成果哦。
    2. 句意选择题
    Brainy：我们来看看包含 exams 的句子 At Vala Academy, Pioneers don't have exams. 是什么意思呢？
    - 在瓦拉学院，先锋们没有考试。[正确]
      Brainy：回答正确！你已经准确理解了exams的含义和这句话的意思啦～
    - 在瓦拉学院，先锋们没有俱乐部。
      Brainy：不对哦，exams是考试的意思，不是俱乐部，再看看正确的释义吧。

    3. 段落大意题
    Brainy：了解了关键单词和句子的意思，我们来看看这一段主要讲了什么吧？
    - 瓦拉学院的先锋不需要考试，但是需要用积分升级。[正确]
      Brainy：太厉害啦！你完全抓住了这段的两个核心信息点哦～
    - 瓦拉学院的先锋需要通过考试获得积分来升级。
      Brainy：不对哦，这段明确说了先锋们没有考试，再仔细读读段落内容吧。
    # 段落2
    ## 段落内容
    ---
    You can choose your favourite club to join. If you are interested in something, you can find a club for it.
    ---
    ## 互动题目
    Brainy：我们来认识一下这段话中的关键单词 club。club 是俱乐部的意思，大家可以根据自己的爱好加入不同的club哦。
    1. 句意选择题
    Brainy：接下来，我们来看下包含 club 的句子 You can choose your favourite club to join. 是什么意思呢？
    - 你可以选择自己最喜欢的俱乐部加入。[正确]
      Brainy：完美回答！你已经掌握了club的意思和这个句子的含义啦～
    - 你可以选择自己最喜欢的课程学习。
      Brainy：不对哦，club是俱乐部的意思，不是课程，再看看正确的解释吧。

    Brainy：我们再来认识另一个关键单词 interested。interested 是感兴趣的意思，我们通常说 be interested in 来表示对某件事有兴趣。
    2. 句意选择题
    Brainy：我们来看看包含 interested 的句子 If you are interested in something, you can find a club for it. 是什么意思呢？
    - 如果你对某件事很擅长，你可以为它开一个俱乐部。
      Brainy：不对哦，interested是感兴趣的意思，不是擅长，句子里也没有说要开俱乐部，再确认下吧。
    - 如果你对某件事感兴趣，你可以找到对应的俱乐部。[正确]
      Brainy：太棒啦！你已经理解了interested的含义和这个句子的意思啦～

    3. 段落大意题
    Brainy：了解了关键单词和句子，我们来看看这一段主要讲了什么吧？
    - 你可以选择感兴趣的俱乐部加入。[正确]
      Brainy：答得真好！你完全get到了这段的核心内容哦～
    - 所有的俱乐部都非常受欢迎。
      Brainy：不对哦，这段并没有提到俱乐部是否受欢迎的内容，再仔细看看段落吧。
    # 完结反馈
    Brainy：恭喜你完成了所有内容的学习！你对知识点的掌握越来越扎实啦，继续加油哦～
    ```

原始组件配置 (可编辑后点击"执行重新生成")
【任务标题】 阅读 《在 Vala 学院，为什么要加入社团》 【任务背景】 你们听说 Vala 学院没有考试，正在欢呼雀跃。突然发现 Pioneer 的一项重要任务：加入社团！为什么 Pioneer 一定要加入社团呢？快来阅读 Brainy 的介绍吧。 【通关知识】 plant n. 植物 club n. 俱乐部 join v. 加入 member n. 成员 choose v. 选择 interested adj. 感兴趣的 【阅读材料】 # 材料 1 ## 材料类型 电子屏 ## 材料内容 1. 标题 Why Join Clubs at Vala Academy? 2. 正文 At Vala Academy, Pioneers don't have exams. But you need points to level up! Pioneers can join clubs to get points. A club is like a small family. You can play and study in clubs. Also, you need to help each other and work as a team. 图片:[0101106_core reading1] 【阅读材料】 # 材料 2 ## 材料类型 电子屏 ## 材料内容 1. 标题 How to Join Clubs? 2. 正文 You can choose your favourite club to join. If you are interested in something, you can find a club for it. The robot club, the plant club, the sports club, and the reading club are all popular choices. If you are not interested in any club, you can start a new one with friends! 图片:[0101106_core reading2] 【题目部分】 Brainy: At Vala Academy, how can Pioneers get points? A. Take many exams. 错误 Otis: No! We have no exams! B. Join clubs. 正确 Otis: Right. We need to join a club to get points. C. Level up. 错误 Otis: We have to get points first, then we can level up. [题目2] Brainy: What can you do in a club? A. We can earn some money. 错误 Skylar: No, that's not right. B. We can play, study and work together. 正确 Skylar: That's right! That's what clubs are for! C. We can only play. 错误 Skylar: Hmm… We play, but we also study and work. [题目3] Otis: How can we choose a club? A. We can only choose the plant club and the robot club. 错误 Skylar: Nope! We can choose from many clubs. B. We can choose a club we are interested in. 正确 Skylar: Yes, exactly! Choose what you like! C. We must start a new club. 错误 Skylar: No, not must. Only if you want to. [题目4] Skylar: If we are not interested in any club, what should we do? A. We can't join any clubs. 错误 Otis: Uh… That sounds bad. B. We can start a new club. 正确 Otis: Yes! That sounds okay. C. We can only join the plant club. 错误 Otis: I don't think so… We have other choices. 【流程编排】 [材料1] Brainy: Now, let’s make sure you understand everything. [题目1] [题目2] [材料2] [题目3] [题目4] 【学习过程】 段落 1 At Vala Academy, Pioneers don't have exams. But you need points to level up! 段落 2 You can choose your favourite club to join. If you are interested in something, you can find a club for it.
19 核心看图选词 cId: 0000800 core_reading_imageDrag
已保存 ▶
taskInfo

cId |
cType |
title |
taskDesc |
sceneDesc |
key | [ { "desc": "", "keyList": [ { "type": "default", "content": "lake", "desc": "n. 湖" }, { "type": "default", "content": "monkey", "desc": "n. 猴子" }, { "type": "default", "content": "three", "desc": "num. 三" }, { "type": "default", "content": "How many ...?", "desc": "多少……？" }, { "type": "default", "content": "There be ...", "desc": "有……" } ] } ]
resourceMapping | { "Peter": 739, "Eva": 738 }
cDesc | As we explore the word castle, we first meet Ben who asks where hippos live, and we find out hippos live in the lake to fill the blank on the wall.（我们在单词城堡探索时，首先遇到本询问河马住在哪里，我们得知河马住在湖里，补全了墙上的空缺。）Next, Brainy asks what other animals are in the zoo, and we find trees are the relevant content to help us continue unlocking the castle gate.（接着布莱恩询问动物园里还有什么其他动物，我们找到树木是相关内容，帮我们继续解锁城堡大门。）

1234567891011121314151617181920212223242526272829303132333435363738394041424344
{ "cId": "0000800", "cType": "core_reading_imageDrag", "title": "看图选词填句", "taskDesc": "观察主图内容，将下方选项池中的单词拖拽到对应句子的空白处，补全所有句子。", "sceneDesc": "你来到了神奇的单词城堡，城堡的墙上有很多缺了单词的句子，你需要找到正确的单词把它们补全，才能打开城堡的大门哦！", "key": [ { "desc": "", "keyList": [ { "type": "default", "content": "lake", "desc": "n. 湖" }, { "type": "default", "content": "monkey", "desc": "n. 猴子" }, { "type": "default", "content": "three", "desc": "num. 三" }, { "type": "default", "content": "How many ...?", "desc": "多少……？" }, { "type": "default", "content": "There be ...", "desc": "有……" } ] } ], "resourceMapping": { "Peter": 739, "Eva": 738 }, "cDesc": "As we explore the word castle, we first meet Ben who asks where hippos live, and we find out hippos live in the lake to fill the blank on the wall.（我们在单词城堡探索时，首先遇到本询问河马住在哪里，我们得知河马住在湖里，补全了墙上的空缺。）Next, Brainy asks what other animals are in the zoo, and we find trees are the relevant content to help us continue unlocking the castle gate.（接着布莱恩询问动物园里还有什么其他动物，我们找到树木是相关内容，帮我们继续解锁城堡大门。）" }
questionGroup
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
[ { "image": "1201001_02.png", "questionList": [ { "type": "npc", "npcName": "Brainy", "content": "Ben: Where do hippos live？", "desc": "in the ___", "optionList": [ { "option": "lake" }, { "option": "tree" }, { "option": "grass" } ], "answer": [ 0 ] }, { "type": "npc", "npcName": "Brainy", "title": "Brainy: What other animals are there in the zoo？", "desc": "___", "optionList": [ { "option": "lake" }, { "option": "tree" }, { "option": "grass" } ], "answer": [ 1 ] } ] } ]
studyInfo

learningPart

[ { "image": "1201001_02.png", "learning": [ { "question": { "type": "npc", "npcName": "Brainy", "content": "小朋友，这道题我们要认识三个表示地点/事物的名词哦，分别是lake、tree和grass，我们先来看看它们的意思，选出表示“湖”的单词吧~" }, "optionList": [ { "option": "tree", "feedback": { "type": "npc", "npcName": "Brainy", "content": "tree的意思是“树”，河马不住在树上哦，再想想哪个是“湖”的意思吧，你可以的！" } }, { "option": "lake", "feedback": { "type": "npc", "npcName": "Brainy", "content": "太棒啦！lake的意思就是“湖”，你已经记住这个单词啦，真厉害~" } }, { "option": "grass", "feedback": { "type": "npc", "npcName": "Brainy", "content": "grass的意思是“草”，河马不是生活在草里哦，再选一次试试吧~" } } ], "answer": [ 1 ] }, { "question": { "type": "npc", "npcName": "Brainy", "content": "Ben问“河马住在哪里呀？”，你要选一个合适的单词填到句子里，回答“在____里”，想想河马的生活环境哦。" }, "optionList": [ { "option": "lake", "feedback": { "type": "npc", "npcName": "Brainy", "content": "答对啦！河马是生活在湖里的，所以答案就是in the lake，跟着大声读一遍这个句子吧：Where do hippos live? In the lake." } }, { "option": "tree", "feedback": { "type": "npc", "npcName": "Brainy", "content": "tree是树哦，河马不会爬到树上生活的，结合河马的生活习性再想想吧~" } }, { "option": "grass", "feedback": { "type": "npc", "npcName": "Brainy", "content": "grass是草，河马不是住在草里面的哦，再选一次试试吧~" } } ], "answer": [ 0 ] } ] }, { "image": "1201001_02.png", "learning": [ { "question": { "type": "npc", "npcName": "Brainy", "content": "小朋友，这道题我们要选能表示动物园里动物相关的内容哦，先来回忆下这几个单词的意思，选出符合“动物园里有的事物”的选项吧。" }, "optionList": [ { "option": "lake", "feedback": { "type": "npc", "npcName": "Brainy", "content": "lake是湖，湖是自然景观，不是动物园里的动物哦，再想想吧~" } }, { "option": "tree", "feedback": { "type": "npc", "npcName": "Brainy", "content": "你选对啦！动物园里会有树，很多小动物会在树上活动，这个选项是符合的哦~" } }, { "option": "grass", "feedback": { "type": "npc", "npcName": "Brainy", "content": "grass是草，虽然动物园里也有草，但它不是和动物相关的典型事物哦，再选一次试试吧~" } } ], "answer": [ 1 ] }, { "question": { "type": "npc", "npcName": "Brainy", "content": "Brainy问“动物园里还有什么其他的东西？”，你要选出符合动物园场景的答案哦。" }, "optionList": [ { "option": "lake", "feedback": { "type": "npc", "npcName": "Brainy", "content": "lake是湖，一般动物园里不会有大面积的湖作为常规配置哦，再想想动物园里常见的东西吧~" } }, { "option": "tree", "feedback": { "type": "npc", "npcName": "Brainy", "content": "答对啦！动物园里会种植很多树，给动物们提供贴近自然的生活环境，非常符合题意~ 跟着大声读一遍这个问答吧：What other animals are there in the zoo? Tree." } }, { "option": "grass", "feedback": { "type": "npc", "npcName": "Brainy", "content": "grass是草，草地更多是在公园或者野外哦，不是动物园里的典型事物，再选一次吧~" } } ], "answer": [ 1 ] } ] } ]

closing | { "type": "npc", "npcName": "Brainy", "content": "太棒了！你完成了所有的对话任务，还学会了lake、tree、grass这些单词的用法，也知道了河马的生活环境和动物园里的常见事物，下次遇到类似的对话你肯定能轻松应对啦，为你点赞！" }

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
{ "learningPart": [ { "image": "1201001_02.png", "learning": [ { "question": { "type": "npc", "npcName": "Brainy", "content": "小朋友，这道题我们要认识三个表示地点/事物的名词哦，分别是lake、tree和grass，我们先来看看它们的意思，选出表示“湖”的单词吧~" }, "optionList": [ { "option": "tree", "feedback": { "type": "npc", "npcName": "Brainy", "content": "tree的意思是“树”，河马不住在树上哦，再想想哪个是“湖”的意思吧，你可以的！" } }, { "option": "lake", "feedback": { "type": "npc", "npcName": "Brainy", "content": "太棒啦！lake的意思就是“湖”，你已经记住这个单词啦，真厉害~" } }, { "option": "grass", "feedback": { "type": "npc", "npcName": "Brainy", "content": "grass的意思是“草”，河马不是生活在草里哦，再选一次试试吧~" } } ], "answer": [ 1 ] }, { "question": { "type": "npc", "npcName": "Brainy", "content": "Ben问“河马住在哪里呀？”，你要选一个合适的单词填到句子里，回答“在____里”，想想河马的生活环境哦。" }, "optionList": [ { "option": "lake", "feedback": { "type": "npc", "npcName": "Brainy", "content": "答对啦！河马是生活在湖里的，所以答案就是in the lake，跟着大声读一遍这个句子吧：Where do hippos live? In the lake." } }, { "option": "tree", "feedback": { "type": "npc", "npcName": "Brainy", "content": "tree是树哦，河马不会爬到树上生活的，结合河马的生活习性再想想吧~" } }, { "option": "grass", "feedback": { "type": "npc", "npcName": "Brainy", "content": "grass是草，河马不是住在草里面的哦，再选一次试试吧~" } } ], "answer": [ 0 ] } ] }, { "image": "1201001_02.png", "learning": [ { "question": { "type": "npc", "npcName": "Brainy", "content": "小朋友，这道题我们要选能表示动物园里动物相关的内容哦，先来回忆下这几个单词的意思，选出符合“动物园里有的事物”的选项吧。" }, "optionList": [ { "option": "lake", "feedback": { "type": "npc", "npcName": "Brainy", "content": "lake是湖，湖是自然景观，不是动物园里的动物哦，再想想吧~" } }, { "option": "tree", "feedback": { "type": "npc", "npcName": "Brainy", "content": "你选对啦！动物园里会有树，很多小动物会在树上活动，这个选项是符合的哦~" } }, { "option": "grass", "feedback": { "type": "npc", "npcName": "Brainy", "content": "grass是草，虽然动物园里也有草，但它不是和动物相关的典型事物哦，再选一次试试吧~" } } ], "answer": [ 1 ] }, { "question": { "type": "npc", "npcName": "Brainy", "content": "Brainy问“动物园里还有什么其他的东西？”，你要选出符合动物园场景的答案哦。" }, "optionList": [ { "option": "lake", "feedback": { "type": "npc", "npcName": "Brainy", "content": "lake是湖，一般动物园里不会有大面积的湖作为常规配置哦，再想想动物园里常见的东西吧~" } }, { "option": "tree", "feedback": { "type": "npc", "npcName": "Brainy", "content": "答对啦！动物园里会种植很多树，给动物们提供贴近自然的生活环境，非常符合题意~ 跟着大声读一遍这个问答吧：What other animals are there in the zoo? Tree." } }, { "option": "grass", "feedback": { "type": "npc", "npcName": "Brainy", "content": "grass是草，草地更多是在公园或者野外哦，不是动物园里的典型事物，再选一次吧~" } } ], "answer": [ 1 ] } ] } ], "closing": { "type": "npc", "npcName": "Brainy", "content": "太棒了！你完成了所有的对话任务，还学会了lake、tree、grass这些单词的用法，也知道了河马的生活环境和动物园里的常见事物，下次遇到类似的对话你肯定能轻松应对啦，为你点赞！" } }
kpInfo JSON

pushType |
cType |
cId |

kpInfo

[ { "kpId": null, "kpType": "vocab", "kpTitle": "lake n. 湖", "kpSkill": "vocab_meaning", "kpSkillName": "词义" }, { "kpId": null, "kpType": "vocab", "kpTitle": "monkey n. 猴子", "kpSkill": "vocab_meaning", "kpSkillName": "词义" }, { "kpId": null, "kpType": "vocab", "kpTitle": "three num. 三", "kpSkill": "vocab_meaning", "kpSkillName": "词义" }, { "kpId": null, "kpType": "sentence", "kpTitle": "How many ...? 多少……？", "kpSkill": "sentence_meaning", "kpSkillName": "语义" }, { "kpId": null, "kpType": "sentence", "kpTitle": "There be ... 有……", "kpSkill": "sentence_meaning", "kpSkillName": "语义" } ]

123456789101112131415161718192021222324252627282930313233343536373839404142
{ "pushType": "relationKp", "cType": "core_reading_imageDrag", "cId": "0000800", "kpInfo": [ { "kpId": null, "kpType": "vocab", "kpTitle": "lake n. 湖", "kpSkill": "vocab_meaning", "kpSkillName": "词义" }, { "kpId": null, "kpType": "vocab", "kpTitle": "monkey n. 猴子", "kpSkill": "vocab_meaning", "kpSkillName": "词义" }, { "kpId": null, "kpType": "vocab", "kpTitle": "three num. 三", "kpSkill": "vocab_meaning", "kpSkillName": "词义" }, { "kpId": null, "kpType": "sentence", "kpTitle": "How many ...? 多少……？", "kpSkill": "sentence_meaning", "kpSkillName": "语义" }, { "kpId": null, "kpType": "sentence", "kpTitle": "There be ... 有……", "kpSkill": "sentence_meaning", "kpSkillName": "语义" } ] }
中间结果: 学习流程配置

    ```
    # 小题 4
    ## 材料内容
    【展示该小题对应的图片 ID：1201001_02.png】

    ## 互动题目
    ### 1. 句意选词题
    Brainy：小朋友，这道题我们要认识三个表示地点/事物的名词哦，分别是lake、tree和grass，我们先来看看它们的意思，选出表示“湖”的单词吧~
    - 选项 A：tree
      Brainy：tree的意思是“树”，河马不住在树上哦，再想想哪个是“湖”的意思吧，你可以的！
    - 选项 B：lake[正确]
      Brainy：太棒啦！lake的意思就是“湖”，你已经记住这个单词啦，真厉害~
    - 选项 C：grass
      Brainy：grass的意思是“草”，河马不是生活在草里哦，再选一次试试吧~

    ### 2. 原题降级
    Brainy：Ben问“河马住在哪里呀？”，你要选一个合适的单词填到句子里，回答“在____里”，想想河马的生活环境哦。
    - 选项 A：lake[正确]
      Brainy：答对啦！河马是生活在湖里的，所以答案就是in the lake，跟着大声读一遍这个句子吧：Where do hippos live? In the lake.
    - 选项 B：tree
      Brainy：tree是树哦，河马不会爬到树上生活的，结合河马的生活习性再想想吧~
    - 选项 C：grass
      Brainy：grass是草，河马不是住在草里面的哦，再选一次试试吧~

    ---
    # 小题 5
    ## 材料内容
    【展示该小题对应的图片 ID：1201001_02.png】

    ## 互动题目
    ### 1. 句意选词题
    Brainy：小朋友，这道题我们要选能表示动物园里动物相关的内容哦，先来回忆下这几个单词的意思，选出符合“动物园里有的事物”的选项吧。
    - 选项 A：lake
      Brainy：lake是湖，湖是自然景观，不是动物园里的动物哦，再想想吧~
    - 选项 B：tree[正确]
      Brainy：你选对啦！动物园里会有树，很多小动物会在树上活动，这个选项是符合的哦~
    - 选项 C：grass
      Brainy：grass是草，虽然动物园里也有草，但它不是和动物相关的典型事物哦，再选一次试试吧~

    ### 2. 原题降级
    Brainy：Brainy问“动物园里还有什么其他的东西？”，你要选出符合动物园场景的答案哦。
    - 选项 A：lake
      Brainy：lake是湖，一般动物园里不会有大面积的湖作为常规配置哦，再想想动物园里常见的东西吧~
    - 选项 B：tree[正确]
      Brainy：答对啦！动物园里会种植很多树，给动物们提供贴近自然的生活环境，非常符合题意~ 跟着大声读一遍这个问答吧：What other animals are there in the zoo? Tree.
    - 选项 C：grass
      Brainy：grass是草，草地更多是在公园或者野外哦，不是动物园里的典型事物，再选一次吧~

    ---
    # 完结反馈
    Brainy：太棒了！你完成了所有的对话任务，还学会了lake、tree、grass这些单词的用法，也知道了河马的生活环境和动物园里的常见事物，下次遇到类似的对话你肯定能轻松应对啦，为你点赞！
    ```

中间结果: 互动描述

    As we explore the word castle, we first meet Ben who asks where hippos live, and we find out hippos live in the lake to fill the blank on the wall.（我们在单词城堡探索时，首先遇到本询问河马住在哪里，我们得知河马住在湖里，补全了墙上的空缺。）
    Next, Brainy asks what other animals are in the zoo, and we find trees are the relevant content to help us continue unlocking the castle gate.（接着布莱恩询问动物园里还有什么其他动物，我们找到树木是相关内容，帮我们继续解锁城堡大门。）

原始组件配置 (可编辑后点击"执行重新生成")
【任务标题】看图选词填句 【任务背景】你来到了神奇的单词城堡，城堡的墙上有很多缺了单词的句子，你需要找到正确的单词把它们补全，才能打开城堡的大门哦！ 【任务描述】观察主图内容，将下方选项池中的单词拖拽到对应句子的空白处，补全所有句子。 【通关知识】 lake n. 湖 monkey n. 猴子 three num. 三 How many ...? 多少……？ There be ... 有…… 【阅读材料1】 【材料部分】 #标题 动物园里的一天 #正文 图片：[1201001_01.png] 【互动问题】 #题目1 ##题干： Brainy: What's near the trees？（音频） 注意：若需要音频，加（音频） ##答题区： （默认 无） ##选项 tree（正确） #题目2 ##题干： Brainy: Where do zebras live? ##答题区： in the ___ ##选项 tree grass（正确） #题目3 ##题干： Alex: How many monkeys are near the lake? ##答题区： （默认 无） ##选项 lake tree（正确） grass 【阅读材料2】 【材料部分】 #正文 图片：[1201001_02.png] 【互动问题】 #题目4 ##题干： Ben: Where do hippos live？（音频） ##答题区： in the ___ ##选项 lake（正确） tree grass #题目5 ##题干： Brainy: What other animals are there in the zoo？ ##答题区： （默认 无） ##选项 lake tree（正确） grass
20 核心口语快答 cId: 0000800 core_speaking_reply
已保存 ▶
taskInfo

cType |
cId |
title |
taskDesc |
sceneDesc | 你是Logan，在 Wander Port 的清洁站工作。清洁站附近有一只大象，人们都很喜欢她，喂她吃香蕉，帮她洗澡。这天你接到电话，几个孩子说大象需要洗澡，你意识到一定是饲养员粗心忘记了！孩子们说愿意帮助大象洗澡，需要借一些干净的水，你立刻答应。
img |
key | [ { "desc": "", "keyList": [ { "type": "default", "content": "Let's...", "desc": "让我们……" }, { "type": "default", "content": "Instead of..., we'd better...", "desc": "与其……，我们不如……" }, { "type": "default", "content": "... love(s) to...", "desc": "……很乐意……" } ] } ]
resourceMapping | { "Peter": 739, "Eva": 738 }

12345678910111213141516171819202122232425262728293031323334
{ "cType": "core_speaking_reply", "cId": "0000800", "title": "求助清洁工人为大象洗澡", "taskDesc": "请你告诉清洁站的工人，大象需要洗澡，你们乐意帮助，希望送一些干净的水过来。", "sceneDesc": "你是Logan，在 Wander Port 的清洁站工作。清洁站附近有一只大象，人们都很喜欢她，喂她吃香蕉，帮她洗澡。这天你接到电话，几个孩子说大象需要洗澡，你意识到一定是饲养员粗心忘记了！孩子们说愿意帮助大象洗澡，需要借一些干净的水，你立刻答应。", "img": "", "key": [ { "desc": "", "keyList": [ { "type": "default", "content": "Let's...", "desc": "让我们……" }, { "type": "default", "content": "Instead of..., we'd better...", "desc": "与其……，我们不如……" }, { "type": "default", "content": "... love(s) to...", "desc": "……很乐意……" } ] } ], "resourceMapping": { "Peter": 739, "Eva": 738 } }
dialogSetting

setting | { "npcName": "Logan", "round": 5, "checkRound": 3 }

1234567
{ "setting": { "npcName": "Logan", "round": 5, "checkRound": 3 } }
dialogConfig

config

{ "asrPrompt": "elephant,shower,water,keepers,help,Wander Port,banana", "promptInfo": { "default": "\n# 1. 角色（你要扮演谁）\n你是Logan，在Wander Port的清洁站工作。你的语言风格亲切自然，简单易懂，适合儿童理解。\n# 2. 任务（你如何参与对话）\n1. 开场主动询问大象的情况，确认大象是否需要洗澡。\n2. 当用户说明大象需要洗澡后，你要表达疑惑，告诉用户可以先等一等，或许饲养员很快会来。\n3. 接下来询问用户是否愿意帮忙给大象洗澡。\n4. 如果用户表示愿意帮忙，你要先表达感谢，再告诉用户你会马上送干净的水过去，对话自然结束。\n5. 如果用户表示不愿意帮忙，你要表示没关系，说你会联系饲养员来处理，对话自然结束。\n6. 如果用户回答跑题或者表述不清楚，你可以用简单的话重复当前的问题，引导用户回答。\n7. 整个对话过程不要提及设定外的无关内容，严格围绕给大象洗澡的相关事项展开。\n# 3. 背景信息\n你是Logan，在 Wander Port 的清洁站工作。清洁站附近有一只大象，人们都很喜欢她，喂她吃香蕉，帮她洗澡。这天你接到电话，几个孩子说大象需要洗澡，你意识到一定是饲养员粗心忘记了！孩子们说愿意帮助大象洗澡，需要借一些干净的水，你立刻答应。\n# 4. 语言风格\n- 使用 CEFR A1-A2 等级英语，避免复杂句，每句话不超过 10 个词，比如\n \"目的地\" 可以用句子 Where are you going？，不用 destination，确保小学2-4年级的孩子能听懂\n- 回答一般不超过两句话\n- 避免重复表达，适当变换措辞\n# 5. 开场白 (仅用于首轮)\n由你开始对话，你会问用户：\"Hi. What happened to the elephant?\"\n# 6. 回应方式\n- 无论用户如何对话，你都应基于你的身份做出合理反应。\n- 每次最多只提问一个问题，等待用户回答后再继续。\n- 除开场轮次外，每次回应，可以先基于用户的话给一句反馈。然后再推进你的任务。\n", "scene": "你是Logan，在 Wander Port 的清洁站工作。清洁站附近有一只大象，人们都很喜欢她，喂她吃香蕉，帮她洗澡。这天你接到电话，几个孩子说大象需要洗澡，你意识到一定是饲养员粗心忘记了！孩子们说愿意帮助大象洗澡，需要借一些干净的水，你立刻答应。", "in_progress_goal": "用户告诉清洁站的工人，大象需要洗澡，并且表示乐意帮助，要求 Logan 送一些干净的水过来。", "final_goal": "用户告诉清洁站的工人，大象需要洗澡，并提出需要一些水。", "reference_dialog": "Logan: Hi. What happened to the elephant?\nUser: The elephant needs a shower. Let's set up a shower for her.\nLogan: Are you saying she hasn't had a shower yet? Maybe someone will probably come soon.\nUser: Instead of waiting here, we'd better get some water for her first.\nLogan: The keepers are too careless! Thank you! Can you help her shower?\nUser: We'd love to help.\nLogan: Great. We will send some water to her right away.", "user_task": "请你告诉清洁站的工人，大象需要洗澡，你们乐意帮助，希望送一些干净的水过来。", "user_scene": "你是Logan，在 Wander Port 的清洁站工作。清洁站附近有一只大象，人们都很喜欢她，喂她吃香蕉，帮她洗澡。这天你接到电话，几个孩子说大象需要洗澡，你意识到一定是饲养员粗心忘记了！孩子们说愿意帮助大象洗澡，需要借一些干净的水，你立刻答应。", "user_knowledge": "Let's... 让我们……\nInstead of..., we'd better... 与其……，我们不如……\n... love(s) to... ……很乐意……" } }

123456789101112131415
{ "config": { "asrPrompt": "elephant,shower,water,keepers,help,Wander Port,banana", "promptInfo": { "default": "\n# 1. 角色（你要扮演谁）\n你是Logan，在Wander Port的清洁站工作。你的语言风格亲切自然，简单易懂，适合儿童理解。\n# 2. 任务（你如何参与对话）\n1. 开场主动询问大象的情况，确认大象是否需要洗澡。\n2. 当用户说明大象需要洗澡后，你要表达疑惑，告诉用户可以先等一等，或许饲养员很快会来。\n3. 接下来询问用户是否愿意帮忙给大象洗澡。\n4. 如果用户表示愿意帮忙，你要先表达感谢，再告诉用户你会马上送干净的水过去，对话自然结束。\n5. 如果用户表示不愿意帮忙，你要表示没关系，说你会联系饲养员来处理，对话自然结束。\n6. 如果用户回答跑题或者表述不清楚，你可以用简单的话重复当前的问题，引导用户回答。\n7. 整个对话过程不要提及设定外的无关内容，严格围绕给大象洗澡的相关事项展开。\n# 3. 背景信息\n你是Logan，在 Wander Port 的清洁站工作。清洁站附近有一只大象，人们都很喜欢她，喂她吃香蕉，帮她洗澡。这天你接到电话，几个孩子说大象需要洗澡，你意识到一定是饲养员粗心忘记了！孩子们说愿意帮助大象洗澡，需要借一些干净的水，你立刻答应。\n# 4. 语言风格\n- 使用 CEFR A1-A2 等级英语，避免复杂句，每句话不超过 10 个词，比如\n \"目的地\" 可以用句子 Where are you going？，不用 destination，确保小学2-4年级的孩子能听懂\n- 回答一般不超过两句话\n- 避免重复表达，适当变换措辞\n# 5. 开场白 (仅用于首轮)\n由你开始对话，你会问用户：\"Hi. What happened to the elephant?\"\n# 6. 回应方式\n- 无论用户如何对话，你都应基于你的身份做出合理反应。\n- 每次最多只提问一个问题，等待用户回答后再继续。\n- 除开场轮次外，每次回应，可以先基于用户的话给一句反馈。然后再推进你的任务。\n", "scene": "你是Logan，在 Wander Port 的清洁站工作。清洁站附近有一只大象，人们都很喜欢她，喂她吃香蕉，帮她洗澡。这天你接到电话，几个孩子说大象需要洗澡，你意识到一定是饲养员粗心忘记了！孩子们说愿意帮助大象洗澡，需要借一些干净的水，你立刻答应。", "in_progress_goal": "用户告诉清洁站的工人，大象需要洗澡，并且表示乐意帮助，要求 Logan 送一些干净的水过来。", "final_goal": "用户告诉清洁站的工人，大象需要洗澡，并提出需要一些水。", "reference_dialog": "Logan: Hi. What happened to the elephant?\nUser: The elephant needs a shower. Let's set up a shower for her.\nLogan: Are you saying she hasn't had a shower yet? Maybe someone will probably come soon.\nUser: Instead of waiting here, we'd better get some water for her first.\nLogan: The keepers are too careless! Thank you! Can you help her shower?\nUser: We'd love to help.\nLogan: Great. We will send some water to her right away.", "user_task": "请你告诉清洁站的工人，大象需要洗澡，你们乐意帮助，希望送一些干净的水过来。", "user_scene": "你是Logan，在 Wander Port 的清洁站工作。清洁站附近有一只大象，人们都很喜欢她，喂她吃香蕉，帮她洗澡。这天你接到电话，几个孩子说大象需要洗澡，你意识到一定是饲养员粗心忘记了！孩子们说愿意帮助大象洗澡，需要借一些干净的水，你立刻答应。", "user_knowledge": "Let's... 让我们……\nInstead of..., we'd better... 与其……，我们不如……\n... love(s) to... ……很乐意……" } } }
studyInfo

learningPart

{ "opening": { "type": "npc", "npcName": "Logan", "content": "Hi. What happened to the elephant?" }, "wrongReadLeadIn": { "type": "npc", "content": "请根据提词框内的内容大声地朗读这句话", "npcName": "Brainy" }, "learning": [ { "question": { "type": "npc", "npcName": "Brainy", "content": "清洁站的Logan问你大象怎么啦，现在你需要告诉对方大象需要洗澡，你们想给她安排洗澡哦。" }, "optionList": [ { "option": "The elephant needs a shower. Let's set up a shower for her.", "feedback": { "type": "npc", "npcName": "Brainy", "content": "太棒啦，你选对了！试着把这句话大声读出来吧~" } }, { "option": "The elephant is hungry. We want to give her some bananas.", "feedback": { "type": "npc", "npcName": "Brainy", "content": "现在我们要说明大象需要洗澡哦，这句话是说大象饿了想喂香蕉，和当前场景不匹配，再试一次吧~" } }, { "option": "The keepers are very careful, we don't need to help.", "feedback": { "type": "npc", "npcName": "Brainy", "content": "我们是来请求帮忙给大象洗澡的，这句话说饲养员很细心不需要帮忙，不符合现在的情况，再选一次哦~" } } ], "answer": [ 0 ], "read": { "type": "user", "content": "The elephant needs a shower. Let's set up a shower for her." }, "feedback": { "type": "npc", "npcName": "Logan", "content": "Are you saying she hasn't had a shower yet? Maybe someone will probably come soon." } }, { "question": { "type": "npc", "npcName": "Brainy", "content": "Logan说“你是说她还没洗澡吗？可能很快就有人来了”，现在你要回应对方，比起在这里等，我们最好先去给她拿点水。" }, "optionList": [ { "option": "We can wait for the keepers to come and help her.", "feedback": { "type": "npc", "npcName": "Brainy", "content": "现在我们要表达不等了先去拿水哦，这句话说我们可以等饲养员来帮忙，和我们要表达的意思相反，再试一次吧~" } }, { "option": "Instead of waiting here, we'd better get some water for her first.", "feedback": { "type": "npc", "npcName": "Brainy", "content": "选得太对啦，试着把这句话大声读出来吧~" } }, { "option": "We don't have enough time to help the elephant.", "feedback": { "type": "npc", "npcName": "Brainy", "content": "这句话是说我们没时间帮大象，可我们是想要帮忙的，不符合情境哦，再选一次吧~" } } ], "answer": [ 1 ], "read": { "type": "user", "content": "Instead of waiting here, we'd better get some water for her first." }, "feedback": { "type": "npc", "npcName": "Logan", "content": "The keepers are too careless! Thank you! Can you help her shower?" } }, { "question": { "type": "npc", "npcName": "Brainy", "content": "Logan说“饲养员太粗心了！谢谢你们！你们能帮她洗澡吗？”，现在你要告诉对方你们很乐意帮忙哦。" }, "optionList": [ { "option": "We'd love to help.", "feedback": { "type": "npc", "npcName": "Brainy", "content": "完全正确！试着把这句话大声读出来吧~" } }, { "option": "We are too busy to help her.", "feedback": { "type": "npc", "npcName": "Brainy", "content": "我们本来就是来帮忙的哦，这句话说我们太忙了帮不了，不符合现在的情况，再试一次吧~" } }, { "option": "We have no idea how to shower an elephant.", "feedback": { "type": "npc", "npcName": "Brainy", "content": "现在要回应对方我们乐意帮忙，这句话说我们不知道怎么给大象洗澡，和要表达的意思不符哦，再选一次~" } } ], "answer": [ 0 ], "read": { "type": "user", "content": "We'd love to help." }, "feedback": { "type": "npc", "npcName": "Logan", "content": "Great. We will send some water to her right away." } } ], "closing": { "type": "npc", "npcName": "Brainy", "content": "太棒啦！你成功和清洁站的工人沟通好了，对方马上会送水过来，你们可以一起给大象洗澡啦，本次任务完成~" } }

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
{ "learningPart": { "opening": { "type": "npc", "npcName": "Logan", "content": "Hi. What happened to the elephant?" }, "wrongReadLeadIn": { "type": "npc", "content": "请根据提词框内的内容大声地朗读这句话", "npcName": "Brainy" }, "learning": [ { "question": { "type": "npc", "npcName": "Brainy", "content": "清洁站的Logan问你大象怎么啦，现在你需要告诉对方大象需要洗澡，你们想给她安排洗澡哦。" }, "optionList": [ { "option": "The elephant needs a shower. Let's set up a shower for her.", "feedback": { "type": "npc", "npcName": "Brainy", "content": "太棒啦，你选对了！试着把这句话大声读出来吧~" } }, { "option": "The elephant is hungry. We want to give her some bananas.", "feedback": { "type": "npc", "npcName": "Brainy", "content": "现在我们要说明大象需要洗澡哦，这句话是说大象饿了想喂香蕉，和当前场景不匹配，再试一次吧~" } }, { "option": "The keepers are very careful, we don't need to help.", "feedback": { "type": "npc", "npcName": "Brainy", "content": "我们是来请求帮忙给大象洗澡的，这句话说饲养员很细心不需要帮忙，不符合现在的情况，再选一次哦~" } } ], "answer": [ 0 ], "read": { "type": "user", "content": "The elephant needs a shower. Let's set up a shower for her." }, "feedback": { "type": "npc", "npcName": "Logan", "content": "Are you saying she hasn't had a shower yet? Maybe someone will probably come soon." } }, { "question": { "type": "npc", "npcName": "Brainy", "content": "Logan说“你是说她还没洗澡吗？可能很快就有人来了”，现在你要回应对方，比起在这里等，我们最好先去给她拿点水。" }, "optionList": [ { "option": "We can wait for the keepers to come and help her.", "feedback": { "type": "npc", "npcName": "Brainy", "content": "现在我们要表达不等了先去拿水哦，这句话说我们可以等饲养员来帮忙，和我们要表达的意思相反，再试一次吧~" } }, { "option": "Instead of waiting here, we'd better get some water for her first.", "feedback": { "type": "npc", "npcName": "Brainy", "content": "选得太对啦，试着把这句话大声读出来吧~" } }, { "option": "We don't have enough time to help the elephant.", "feedback": { "type": "npc", "npcName": "Brainy", "content": "这句话是说我们没时间帮大象，可我们是想要帮忙的，不符合情境哦，再选一次吧~" } } ], "answer": [ 1 ], "read": { "type": "user", "content": "Instead of waiting here, we'd better get some water for her first." }, "feedback": { "type": "npc", "npcName": "Logan", "content": "The keepers are too careless! Thank you! Can you help her shower?" } }, { "question": { "type": "npc", "npcName": "Brainy", "content": "Logan说“饲养员太粗心了！谢谢你们！你们能帮她洗澡吗？”，现在你要告诉对方你们很乐意帮忙哦。" }, "optionList": [ { "option": "We'd love to help.", "feedback": { "type": "npc", "npcName": "Brainy", "content": "完全正确！试着把这句话大声读出来吧~" } }, { "option": "We are too busy to help her.", "feedback": { "type": "npc", "npcName": "Brainy", "content": "我们本来就是来帮忙的哦，这句话说我们太忙了帮不了，不符合现在的情况，再试一次吧~" } }, { "option": "We have no idea how to shower an elephant.", "feedback": { "type": "npc", "npcName": "Brainy", "content": "现在要回应对方我们乐意帮忙，这句话说我们不知道怎么给大象洗澡，和要表达的意思不符哦，再选一次~" } } ], "answer": [ 0 ], "read": { "type": "user", "content": "We'd love to help." }, "feedback": { "type": "npc", "npcName": "Logan", "content": "Great. We will send some water to her right away." } } ], "closing": { "type": "npc", "npcName": "Brainy", "content": "太棒啦！你成功和清洁站的工人沟通好了，对方马上会送水过来，你们可以一起给大象洗澡啦，本次任务完成~" } } }
kpInfo JSON

pushType |
cType |
cId |

kpInfo

[ { "kpId": null, "kpType": "sentence", "kpTitle": "Let's... 让我们……", "kpSkill": "sentence_meaning", "kpSkillName": "语义" }, { "kpId": null, "kpType": "sentence", "kpTitle": "Instead of..., we'd better... 与其……，我们不如……", "kpSkill": "sentence_meaning", "kpSkillName": "语义" }, { "kpId": null, "kpType": "sentence", "kpTitle": "... love(s) to... ……很乐意……", "kpSkill": "sentence_meaning", "kpSkillName": "语义" } ]

12345678910111213141516171819202122232425262728
{ "pushType": "relationKp", "cType": "core_speaking_reply", "cId": "0000800", "kpInfo": [ { "kpId": null, "kpType": "sentence", "kpTitle": "Let's... 让我们……", "kpSkill": "sentence_meaning", "kpSkillName": "语义" }, { "kpId": null, "kpType": "sentence", "kpTitle": "Instead of..., we'd better... 与其……，我们不如……", "kpSkill": "sentence_meaning", "kpSkillName": "语义" }, { "kpId": null, "kpType": "sentence", "kpTitle": "... love(s) to... ……很乐意……", "kpSkill": "sentence_meaning", "kpSkillName": "语义" } ] }
中间结果: 学习流程配置

    ```
    # 开场回合
    Logan：Hi. What happened to the elephant?

    # 中间回合1
    Brainy：清洁站的Logan问你大象怎么啦，现在你需要告诉对方大象需要洗澡，你们想给她安排洗澡哦。
    用户选项:
    （A）The elephant needs a shower. Let's set up a shower for her.✅
      Brainy：太棒啦，你选对了！试着把这句话大声读出来吧~
    （B）The elephant is hungry. We want to give her some bananas.
      Brainy：现在我们要说明大象需要洗澡哦，这句话是说大象饿了想喂香蕉，和当前场景不匹配，再试一次吧~
    （C）The keepers are very careful, we don't need to help.
      Brainy：我们是来请求帮忙给大象洗澡的，这句话说饲养员很细心不需要帮忙，不符合现在的情况，再选一次哦~
    Logan：Are you saying she hasn't had a shower yet? Maybe someone will probably come soon.

    # 中间回合2
    Brainy：Logan说“你是说她还没洗澡吗？可能很快就有人来了”，现在你要回应对方，比起在这里等，我们最好先去给她拿点水。
    用户选项:
    （A）We can wait for the keepers to come and help her.
      Brainy：现在我们要表达不等了先去拿水哦，这句话说我们可以等饲养员来帮忙，和我们要表达的意思相反，再试一次吧~
    （B）Instead of waiting here, we'd better get some water for her first.✅
      Brainy：选得太对啦，试着把这句话大声读出来吧~
    （C）We don't have enough time to help the elephant.
      Brainy：这句话是说我们没时间帮大象，可我们是想要帮忙的，不符合情境哦，再选一次吧~
    Logan：The keepers are too careless! Thank you! Can you help her shower?

    # 中间回合3
    Brainy：Logan说“饲养员太粗心了！谢谢你们！你们能帮她洗澡吗？”，现在你要告诉对方你们很乐意帮忙哦。
    用户选项:
    （A）We'd love to help.✅
      Brainy：完全正确！试着把这句话大声读出来吧~
    （B）We are too busy to help her.
      Brainy：我们本来就是来帮忙的哦，这句话说我们太忙了帮不了，不符合现在的情况，再试一次吧~
    （C）We have no idea how to shower an elephant.
      Brainy：现在要回应对方我们乐意帮忙，这句话说我们不知道怎么给大象洗澡，和要表达的意思不符哦，再选一次~
    Logan：Great. We will send some water to her right away.

    # 结尾回合
    Brainy：太棒啦！你成功和清洁站的工人沟通好了，对方马上会送水过来，你们可以一起给大象洗澡啦，本次任务完成~
    ```

中间结果: promptInfo配置

    ```
    # 1. 角色（你要扮演谁）
    你是Logan，在Wander Port的清洁站工作。你的语言风格亲切自然，简单易懂，适合儿童理解。
    # 2. 任务（你如何参与对话）
    1. 开场主动询问大象的情况，确认大象是否需要洗澡。
    2. 当用户说明大象需要洗澡后，你要表达疑惑，告诉用户可以先等一等，或许饲养员很快会来。
    3. 接下来询问用户是否愿意帮忙给大象洗澡。
    4. 如果用户表示愿意帮忙，你要先表达感谢，再告诉用户你会马上送干净的水过去，对话自然结束。
    5. 如果用户表示不愿意帮忙，你要表示没关系，说你会联系饲养员来处理，对话自然结束。
    6. 如果用户回答跑题或者表述不清楚，你可以用简单的话重复当前的问题，引导用户回答。
    7. 整个对话过程不要提及设定外的无关内容，严格围绕给大象洗澡的相关事项展开。
    # 3. 背景信息
    你是Logan，在 Wander Port 的清洁站工作。清洁站附近有一只大象，人们都很喜欢她，喂她吃香蕉，帮她洗澡。这天你接到电话，几个孩子说大象需要洗澡，你意识到一定是饲养员粗心忘记了！孩子们说愿意帮助大象洗澡，需要借一些干净的水，你立刻答应。
    # 4. 语言风格
    - 使用 CEFR A1-A2 等级英语，避免复杂句，每句话不超过 10 个词，比如
      "目的地" 可以用句子 Where are you going？，不用 destination，确保小学2-4年级的孩子能听懂
    - 回答一般不超过两句话
    - 避免重复表达，适当变换措辞
    # 5. 开场白 (仅用于首轮)
    由你开始对话，你会问用户："Hi. What happened to the elephant?"
    # 6. 回应方式
    - 无论用户如何对话，你都应基于你的身份做出合理反应。
    - 每次最多只提问一个问题，等待用户回答后再继续。
    - 除开场轮次外，每次回应，可以先基于用户的话给一句反馈。然后再推进你的任务。
    ```

中间结果: 语音识别热词

    elephant,shower,water,keepers,help,Wander Port,banana

原始组件配置 (可编辑后点击"执行重新生成")
【任务标题】 求助清洁工人为大象洗澡 【任务背景】 你们了解到大象想要洗澡，哪里可以找到干净的水呢？你们想起了清洁中心一定有水！快求助工作人员，顺利让大象洗个痛快澡！ 【任务描述】 请你告诉清洁站的工人，大象需要洗澡，你们乐意帮助，希望送一些干净的水过来。 【通关知识】 Let's... 让我们…… Instead of..., we'd better... 与其……，我们不如…… ... love(s) to... ……很乐意…… 【对话角色】 Logan 【任务背景】 你是Logan，在 Wander Port 的清洁站工作。清洁站附近有一只大象，人们都很喜欢她，喂她吃香蕉，帮她洗澡。这天你接到电话，几个孩子说大象需要洗澡，你意识到一定是饲养员粗心忘记了！孩子们说愿意帮助大象洗澡，需要借一些干净的水，你立刻答应。 【任务设定】 你询问大象的情况，确认大象是不是没洗澡 请用户等一等，或许饲养员会来。 你询问用户是否愿意帮大象洗澡。 如果用户愿意帮助大象洗澡，你要表示感谢，并答应提供干净的水。 【回合设定】 检测回合：3 最大回合：5 【通过规则】 过程：用户告诉清洁站的工人，大象需要洗澡，并且表示乐意帮助，要求 Logan 送一些干净的水过来。 结果：用户用户告诉清洁站的工人，大象需要洗澡，并提出需要一些水。 【示例对话】 Logan: Hi. What happened to the elephant? User: The elephant needs a shower. Let's set up a shower for her. Logan: Are you saying she hasn't had a shower yet? Maybe someone will probably come soon. User: Instead of waiting here, we'd better get some water for her first. Logan: The keepers are too careless! Thank you! Can you help her shower? User: We'd love to help. Logan: Great. We will send some water to her right away.
21 口语独白 cId: 0000800 ?
跳过 ▶
跳过: 类型 '口语独白' 尚未实现生成器
原始组件配置 (可编辑后点击"执行重新生成")
【任务标题】 向朋友们讲述你最难忘的经历 【任务背景】 在 Skylar 的生日聚会上，大家提议玩一个分享最难忘经历的小游戏。Skylar 和 Otis 都分享完了，现在轮到你啦。快和朋友们说说你最难忘的经历吧！ 【任务描述】 当你分享时，可以这样做： 1. 先告诉大家，你要讲述一段最难忘的经历 2. 再说说这段经历发生的时间和地点 3. 然后说说你都做了什么 4. 最后说说为什么让你难以忘怀 【知识】 Last summer, I went to... 去年夏天，我去了...... I taught... 我教了…… That day made me feel... 那一天，我感到...... 【切分句数设定】 句数下限：3 句数上限：6 【通过规则】 用户说出： 1. 一件难忘的经历 2. 描述了1-2件具体的事情 3. 表达了自己的感受 【示例独白】 Hello everyone! I have an unforgettable story to share. Last summer, I went to a small school in the countryside. I taught kids easy English words about animals. A little boy gave me a nice drawing on my last day there. That day made me feel really warm and happy.
22 核心口语妙问 cId: 0000800 core_speaking_inquiry
已保存 ▶
taskInfo

cType |
cId |
title |
taskDesc |
sceneDesc | 你是 Chloe，是 Twilight 的空乘，服务好每一位乘客是你的使命。用户之前帮你在另一位乘客面前解了围，你很感谢用户的帮忙，对用户的态度也格外友善热情。你发现用完餐的用户正在东张西望，似乎在寻找什么，你确认用户需要帮助，于是上前询问。你发现用户想去健身房消消食，但是不知道方向，于是回答了用户的问题，提供了你的帮助。
img |
key | [ { "desc": "", "keyList": [ { "type": "default", "content": "Where can I find the gym？", "desc": "我在哪里能找到健身房？" }, { "type": "default", "content": "Can I have a towel please?？", "desc": "我能要一条毛巾吗？" }, { "type": "default", "content": "What else can I do there?", "desc": "我在那儿还能做些什么？" } ] } ]
resourceMapping | { "Peter": 739, "Eva": 738 }

12345678910111213141516171819202122232425262728293031323334
{ "cType": "core_speaking_inquiry", "cId": "0000800", "title": "询问空乘关于健身房的信息", "taskDesc": "你要向 Chloe 询问健身房的位置，以及讨要毛巾，做好开始运动的准备。", "sceneDesc": "你是 Chloe，是 Twilight 的空乘，服务好每一位乘客是你的使命。用户之前帮你在另一位乘客面前解了围，你很感谢用户的帮忙，对用户的态度也格外友善热情。你发现用完餐的用户正在东张西望，似乎在寻找什么，你确认用户需要帮助，于是上前询问。你发现用户想去健身房消消食，但是不知道方向，于是回答了用户的问题，提供了你的帮助。", "img": "", "key": [ { "desc": "", "keyList": [ { "type": "default", "content": "Where can I find the gym？", "desc": "我在哪里能找到健身房？" }, { "type": "default", "content": "Can I have a towel please?？", "desc": "我能要一条毛巾吗？" }, { "type": "default", "content": "What else can I do there?", "desc": "我在那儿还能做些什么？" } ] } ], "resourceMapping": { "Peter": 739, "Eva": 738 } }
dialogSetting

setting | { "npcName": "Chloe", "round": 5, "checkRound": 3 }

1234567
{ "setting": { "npcName": "Chloe", "round": 5, "checkRound": 3 } }
dialogConfig

config

{ "asrPrompt": "gym,towel,exercise,sightseeing,relax,walkway", "promptInfo": { "default": "# 1. 角色（你要扮演谁）\n- 你是 Chloe，是 Twilight 的空乘，服务好每一位乘客是你的使命。\n- 你对之前帮你解过围的用户格外友善热情，会耐心回答对方的所有问题。\n\n# 2. 任务（你如何参与到整个对话）\n- 你只在用户提问时提供特定信息，不主动透露知识库中的信息。\n- 如果用户提问的内容在知识库范围内，你会准确回答。\n- 如果用户的问题不清晰，你会尝试确认问题。\n- 一般情况下，一次最多只回答知识库中的一条信息，除非用户明确地分别提问到多条信息。\n- 如果用户不提问，你会温和、自然地进行交谈。\n\n# 3. 背景信息\n你是 Chloe，是 Twilight 的空乘，服务好每一位乘客是你的使命。\n用户之前帮你在另一位乘客面前解了围，你很感谢用户的帮忙，对用户的态度也格外友善热情。\n你发现用完餐的用户正在东张西望，似乎在寻找什么，你确认用户需要帮助，于是上前询问。你发现用户想去健身房消消食，但是不知道方向，于是回答了用户的问题，提供了你的帮助。\n\n# 4. 知识库（你知道的信息）\n- 健身房就在前方过道的尽头。\n- 你会为有需要的用户准备一条新毛巾。\n- 在健身房可以进行的活动：运动、看宇宙风光（sightseeing），或者可以拉伸放松、进行休息。\n- 对用户的任何提问，你都耐心安抚并一一回答。\n\n# 5. 语言风格\n- 使用 CEFR A1-A2 等级英语，避免复杂句，每句话不超过 10 个词，比如\n \"我要去...\" 可以用句子 I am going to ...，不用 My destination is ...，确保小学2-4年级的孩子能听懂\n- 回答一般不超过两句话\n- 避免重复表达，适当变换措辞\n\n# 6. 开场白\n你由你开始对话，你会说：\"Can I help you?\"\n\n# 7. 回应方式（固定内容）\n- 你只在用户提问时才根据知识库中的信息回答。其他时候，以符合你身份的方式，自然地进行交谈。\n- 不主动提供知识库的信息\n- 不主动提问题", "scene": "你是 Chloe，是 Twilight 的空乘，服务好每一位乘客是你的使命。\n用户之前帮你在另一位乘客面前解了围，你很感谢用户的帮忙，对用户的态度也格外友善热情。\n你发现用完餐的用户正在东张西望，似乎在寻找什么，你确认用户需要帮助，于是上前询问。你发现用户想去健身房消消食，但是不知道方向，于是回答了用户的问题，提供了你的帮助。", "in_progress_goal": "用户成功问出“健身房在哪里”、“可以给我一条毛巾吗”以及“在哪儿我还能做什么”的三个问题。", "final_goal": "Chloe回答了用户关于健身房的问题，提供了耐心友好的帮助。", "reference_dialog": "Chloe: Can I help you?\nUser: Where can I find the gym?\nChloe: Look, it's over there at the end of this walkway.\nUser: Oh, and can I have a towel please? \nChloe: Of course! I'll bring a new one for you soon.\nUser: What else can I do there? \nChloe: Well, you can do some exercise and enjoy sightseeing there. Or you can just relax.", "user_task": "你要向 Chloe 询问健身房的位置，以及讨要毛巾，做好开始运动的准备。", "user_scene": "你是 Chloe，是 Twilight 的空乘，服务好每一位乘客是你的使命。\n用户之前帮你在另一位乘客面前解了围，你很感谢用户的帮忙，对用户的态度也格外友善热情。\n你发现用完餐的用户正在东张西望，似乎在寻找什么，你确认用户需要帮助，于是上前询问。你发现用户想去健身房消消食，但是不知道方向，于是回答了用户的问题，提供了你的帮助。", "user_knowledge": "Where can I find the gym？我在哪里能找到健身房？\nCan I have a towel please?？我能要一条毛巾吗？\nWhat else can I do there? 我在那儿还能做些什么？" } }

123456789101112131415
{ "config": { "asrPrompt": "gym,towel,exercise,sightseeing,relax,walkway", "promptInfo": { "default": "# 1. 角色（你要扮演谁）\n- 你是 Chloe，是 Twilight 的空乘，服务好每一位乘客是你的使命。\n- 你对之前帮你解过围的用户格外友善热情，会耐心回答对方的所有问题。\n\n# 2. 任务（你如何参与到整个对话）\n- 你只在用户提问时提供特定信息，不主动透露知识库中的信息。\n- 如果用户提问的内容在知识库范围内，你会准确回答。\n- 如果用户的问题不清晰，你会尝试确认问题。\n- 一般情况下，一次最多只回答知识库中的一条信息，除非用户明确地分别提问到多条信息。\n- 如果用户不提问，你会温和、自然地进行交谈。\n\n# 3. 背景信息\n你是 Chloe，是 Twilight 的空乘，服务好每一位乘客是你的使命。\n用户之前帮你在另一位乘客面前解了围，你很感谢用户的帮忙，对用户的态度也格外友善热情。\n你发现用完餐的用户正在东张西望，似乎在寻找什么，你确认用户需要帮助，于是上前询问。你发现用户想去健身房消消食，但是不知道方向，于是回答了用户的问题，提供了你的帮助。\n\n# 4. 知识库（你知道的信息）\n- 健身房就在前方过道的尽头。\n- 你会为有需要的用户准备一条新毛巾。\n- 在健身房可以进行的活动：运动、看宇宙风光（sightseeing），或者可以拉伸放松、进行休息。\n- 对用户的任何提问，你都耐心安抚并一一回答。\n\n# 5. 语言风格\n- 使用 CEFR A1-A2 等级英语，避免复杂句，每句话不超过 10 个词，比如\n \"我要去...\" 可以用句子 I am going to ...，不用 My destination is ...，确保小学2-4年级的孩子能听懂\n- 回答一般不超过两句话\n- 避免重复表达，适当变换措辞\n\n# 6. 开场白\n你由你开始对话，你会说：\"Can I help you?\"\n\n# 7. 回应方式（固定内容）\n- 你只在用户提问时才根据知识库中的信息回答。其他时候，以符合你身份的方式，自然地进行交谈。\n- 不主动提供知识库的信息\n- 不主动提问题", "scene": "你是 Chloe，是 Twilight 的空乘，服务好每一位乘客是你的使命。\n用户之前帮你在另一位乘客面前解了围，你很感谢用户的帮忙，对用户的态度也格外友善热情。\n你发现用完餐的用户正在东张西望，似乎在寻找什么，你确认用户需要帮助，于是上前询问。你发现用户想去健身房消消食，但是不知道方向，于是回答了用户的问题，提供了你的帮助。", "in_progress_goal": "用户成功问出“健身房在哪里”、“可以给我一条毛巾吗”以及“在哪儿我还能做什么”的三个问题。", "final_goal": "Chloe回答了用户关于健身房的问题，提供了耐心友好的帮助。", "reference_dialog": "Chloe: Can I help you?\nUser: Where can I find the gym?\nChloe: Look, it's over there at the end of this walkway.\nUser: Oh, and can I have a towel please? \nChloe: Of course! I'll bring a new one for you soon.\nUser: What else can I do there? \nChloe: Well, you can do some exercise and enjoy sightseeing there. Or you can just relax.", "user_task": "你要向 Chloe 询问健身房的位置，以及讨要毛巾，做好开始运动的准备。", "user_scene": "你是 Chloe，是 Twilight 的空乘，服务好每一位乘客是你的使命。\n用户之前帮你在另一位乘客面前解了围，你很感谢用户的帮忙，对用户的态度也格外友善热情。\n你发现用完餐的用户正在东张西望，似乎在寻找什么，你确认用户需要帮助，于是上前询问。你发现用户想去健身房消消食，但是不知道方向，于是回答了用户的问题，提供了你的帮助。", "user_knowledge": "Where can I find the gym？我在哪里能找到健身房？\nCan I have a towel please?？我能要一条毛巾吗？\nWhat else can I do there? 我在那儿还能做些什么？" } } }
studyInfo

learningPart

{ "opening": { "type": "npc", "npcName": "Chloe", "content": "Can I help you?" }, "wrongReadLeadIn": { "type": "npc", "content": "请根据提词框内的内容大声地朗读这句话", "npcName": "Brainy" }, "learning": [ { "question": { "type": "npc", "npcName": "Brainy", "content": "空乘Chloe主动询问你是否需要帮助，你现在需要向她询问健身房的位置。" }, "optionList": [ { "option": "Where can I find the gym?", "feedback": { "type": "npc", "npcName": "Brainy", "content": "太棒了！你正确地说出了想要询问健身房位置的句子。请大声朗读这句话！" } }, { "option": "Can I have a towel please?", "feedback": { "type": "npc", "npcName": "Brainy", "content": "这句话是用来索要毛巾的，现在你还没问健身房的位置哦，请再选一次，问问Chloe健身房在哪里吧。" } }, { "option": "What else can I do there?", "feedback": { "type": "npc", "npcName": "Brainy", "content": "这句话是询问健身房还有什么其他功能的，现在你首先需要问的是健身房的位置，请再试一次。" } } ], "answer": [ 0 ], "read": { "type": "user", "content": "Where can I find the gym?" }, "feedback": { "type": "npc", "npcName": "Chloe", "content": "Look, it's over there at the end of this walkway." } }, { "question": { "type": "npc", "npcName": "Brainy", "content": "Chloe已经告诉你健身房在走道的尽头了，接下来你需要向她讨要毛巾，为运动做准备。" }, "optionList": [ { "option": "Where can I find the gym?", "feedback": { "type": "npc", "npcName": "Brainy", "content": "你已经问过健身房的位置啦，Chloe也回答你了，现在你需要向她要毛巾，再选一次吧。" } }, { "option": "Oh, and can I have a towel please?", "feedback": { "type": "npc", "npcName": "Brainy", "content": "太对啦！你准确地表达了想要毛巾的请求。请大声朗读这句话！" } }, { "option": "What else can I do there?", "feedback": { "type": "npc", "npcName": "Brainy", "content": "这句话是问在健身房还能做什么的，现在你需要先索要毛巾哦，请再试一次。" } } ], "answer": [ 1 ], "read": { "type": "user", "content": "Oh, and can I have a towel please?" }, "feedback": { "type": "npc", "npcName": "Chloe", "content": "Of course! I'll bring a new one for you soon." } }, { "question": { "type": "npc", "npcName": "Brainy", "content": "Chloe同意给你拿新毛巾啦，现在你可以问问她在健身房还能做些什么。" }, "optionList": [ { "option": "Where can I find the gym?", "feedback": { "type": "npc", "npcName": "Brainy", "content": "你已经知道健身房的位置啦，这个问题不需要再问啦，现在问问Chloe在健身房还能做什么吧。" } }, { "option": "Can I have a towel please?", "feedback": { "type": "npc", "npcName": "Brainy", "content": "你已经要过毛巾了，Chloe也答应给你拿了，换一个问题问问吧。" } }, { "option": "What else can I do there?", "feedback": { "type": "npc", "npcName": "Brainy", "content": "非常好！你准确问出了健身房的其他用途。请大声朗读这句话！" } } ], "answer": [ 2 ], "read": { "type": "user", "content": "What else can I do there?" }, "feedback": { "type": "npc", "npcName": "Chloe", "content": "Well, you can do some exercise and enjoy sightseeing there. Or you can just relax." } } ], "closing": { "type": "npc", "npcName": "Brainy", "content": "你已经问清楚了健身房的位置、拿到了毛巾，也知道了在健身房可以做的事，这次询问空乘关于健身房信息的任务圆满完成啦！" } }

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
{ "learningPart": { "opening": { "type": "npc", "npcName": "Chloe", "content": "Can I help you?" }, "wrongReadLeadIn": { "type": "npc", "content": "请根据提词框内的内容大声地朗读这句话", "npcName": "Brainy" }, "learning": [ { "question": { "type": "npc", "npcName": "Brainy", "content": "空乘Chloe主动询问你是否需要帮助，你现在需要向她询问健身房的位置。" }, "optionList": [ { "option": "Where can I find the gym?", "feedback": { "type": "npc", "npcName": "Brainy", "content": "太棒了！你正确地说出了想要询问健身房位置的句子。请大声朗读这句话！" } }, { "option": "Can I have a towel please?", "feedback": { "type": "npc", "npcName": "Brainy", "content": "这句话是用来索要毛巾的，现在你还没问健身房的位置哦，请再选一次，问问Chloe健身房在哪里吧。" } }, { "option": "What else can I do there?", "feedback": { "type": "npc", "npcName": "Brainy", "content": "这句话是询问健身房还有什么其他功能的，现在你首先需要问的是健身房的位置，请再试一次。" } } ], "answer": [ 0 ], "read": { "type": "user", "content": "Where can I find the gym?" }, "feedback": { "type": "npc", "npcName": "Chloe", "content": "Look, it's over there at the end of this walkway." } }, { "question": { "type": "npc", "npcName": "Brainy", "content": "Chloe已经告诉你健身房在走道的尽头了，接下来你需要向她讨要毛巾，为运动做准备。" }, "optionList": [ { "option": "Where can I find the gym?", "feedback": { "type": "npc", "npcName": "Brainy", "content": "你已经问过健身房的位置啦，Chloe也回答你了，现在你需要向她要毛巾，再选一次吧。" } }, { "option": "Oh, and can I have a towel please?", "feedback": { "type": "npc", "npcName": "Brainy", "content": "太对啦！你准确地表达了想要毛巾的请求。请大声朗读这句话！" } }, { "option": "What else can I do there?", "feedback": { "type": "npc", "npcName": "Brainy", "content": "这句话是问在健身房还能做什么的，现在你需要先索要毛巾哦，请再试一次。" } } ], "answer": [ 1 ], "read": { "type": "user", "content": "Oh, and can I have a towel please?" }, "feedback": { "type": "npc", "npcName": "Chloe", "content": "Of course! I'll bring a new one for you soon." } }, { "question": { "type": "npc", "npcName": "Brainy", "content": "Chloe同意给你拿新毛巾啦，现在你可以问问她在健身房还能做些什么。" }, "optionList": [ { "option": "Where can I find the gym?", "feedback": { "type": "npc", "npcName": "Brainy", "content": "你已经知道健身房的位置啦，这个问题不需要再问啦，现在问问Chloe在健身房还能做什么吧。" } }, { "option": "Can I have a towel please?", "feedback": { "type": "npc", "npcName": "Brainy", "content": "你已经要过毛巾了，Chloe也答应给你拿了，换一个问题问问吧。" } }, { "option": "What else can I do there?", "feedback": { "type": "npc", "npcName": "Brainy", "content": "非常好！你准确问出了健身房的其他用途。请大声朗读这句话！" } } ], "answer": [ 2 ], "read": { "type": "user", "content": "What else can I do there?" }, "feedback": { "type": "npc", "npcName": "Chloe", "content": "Well, you can do some exercise and enjoy sightseeing there. Or you can just relax." } } ], "closing": { "type": "npc", "npcName": "Brainy", "content": "你已经问清楚了健身房的位置、拿到了毛巾，也知道了在健身房可以做的事，这次询问空乘关于健身房信息的任务圆满完成啦！" } } }
kpInfo JSON

pushType |
cType |
cId |

kpInfo

[ { "kpId": null, "kpType": "sentence", "kpTitle": "Where can I find the gym？我在哪里能找到健身房？", "kpSkill": "sentence_meaning", "kpSkillName": "语义" }, { "kpId": null, "kpType": "sentence", "kpTitle": "Can I have a towel please?？我能要一条毛巾吗？", "kpSkill": "sentence_meaning", "kpSkillName": "语义" }, { "kpId": null, "kpType": "sentence", "kpTitle": "What else can I do there? 我在那儿还能做些什么？", "kpSkill": "sentence_meaning", "kpSkillName": "语义" } ]

12345678910111213141516171819202122232425262728
{ "pushType": "relationKp", "cType": "core_speaking_inquiry", "cId": "0000800", "kpInfo": [ { "kpId": null, "kpType": "sentence", "kpTitle": "Where can I find the gym？我在哪里能找到健身房？", "kpSkill": "sentence_meaning", "kpSkillName": "语义" }, { "kpId": null, "kpType": "sentence", "kpTitle": "Can I have a towel please?？我能要一条毛巾吗？", "kpSkill": "sentence_meaning", "kpSkillName": "语义" }, { "kpId": null, "kpType": "sentence", "kpTitle": "What else can I do there? 我在那儿还能做些什么？", "kpSkill": "sentence_meaning", "kpSkillName": "语义" } ] }
中间结果: 学习流程配置

    ```
    # 开场回合
    Chloe: Can I help you?

    # 中间回合1
    Brainy: 空乘Chloe主动询问你是否需要帮助，你现在需要向她询问健身房的位置。
    用户选项:
    （选项 A）Where can I find the gym? [正确]
      Brainy: 太棒了！你正确地说出了想要询问健身房位置的句子。请大声朗读这句话！
    （选项 B）Can I have a towel please?
      Brainy: 这句话是用来索要毛巾的，现在你还没问健身房的位置哦，请再选一次，问问Chloe健身房在哪里吧。
    （选项 C）What else can I do there?
      Brainy: 这句话是询问健身房还有什么其他功能的，现在你首先需要问的是健身房的位置，请再试一次。

    Chloe: Look, it's over there at the end of this walkway.

    # 中间回合2
    Brainy: Chloe已经告诉你健身房在走道的尽头了，接下来你需要向她讨要毛巾，为运动做准备。
    用户选项:
    （选项 A）Where can I find the gym?
      Brainy: 你已经问过健身房的位置啦，Chloe也回答你了，现在你需要向她要毛巾，再选一次吧。
    （选项 B）Oh, and can I have a towel please? [正确]
      Brainy: 太对啦！你准确地表达了想要毛巾的请求。请大声朗读这句话！
    （选项 C）What else can I do there?
      Brainy: 这句话是问在健身房还能做什么的，现在你需要先索要毛巾哦，请再试一次。

    Chloe: Of course! I'll bring a new one for you soon.

    # 中间回合3
    Brainy: Chloe同意给你拿新毛巾啦，现在你可以问问她在健身房还能做些什么。
    用户选项:
    （选项 A）Where can I find the gym?
      Brainy: 你已经知道健身房的位置啦，这个问题不需要再问啦，现在问问Chloe在健身房还能做什么吧。
    （选项 B）Can I have a towel please?
      Brainy: 你已经要过毛巾了，Chloe也答应给你拿了，换一个问题问问吧。
    （选项 C）What else can I do there? [正确]
      Brainy: 非常好！你准确问出了健身房的其他用途。请大声朗读这句话！

    Chloe: Well, you can do some exercise and enjoy sightseeing there. Or you can just relax.

    # 结尾回合
    Brainy: 你已经问清楚了健身房的位置、拿到了毛巾，也知道了在健身房可以做的事，这次询问空乘关于健身房信息的任务圆满完成啦！
    ```

中间结果: promptInfo配置

    ```
    # 1. 角色（你要扮演谁）
    - 你是 Chloe，是 Twilight 的空乘，服务好每一位乘客是你的使命。
    - 你对之前帮你解过围的用户格外友善热情，会耐心回答对方的所有问题。

    # 2. 任务（你如何参与到整个对话）
    - 你只在用户提问时提供特定信息，不主动透露知识库中的信息。
    - 如果用户提问的内容在知识库范围内，你会准确回答。
    - 如果用户的问题不清晰，你会尝试确认问题。
    - 一般情况下，一次最多只回答知识库中的一条信息，除非用户明确地分别提问到多条信息。
    - 如果用户不提问，你会温和、自然地进行交谈。

    # 3. 背景信息
    你是 Chloe，是 Twilight 的空乘，服务好每一位乘客是你的使命。
    用户之前帮你在另一位乘客面前解了围，你很感谢用户的帮忙，对用户的态度也格外友善热情。
    你发现用完餐的用户正在东张西望，似乎在寻找什么，你确认用户需要帮助，于是上前询问。你发现用户想去健身房消消食，但是不知道方向，于是回答了用户的问题，提供了你的帮助。

    # 4. 知识库（你知道的信息）
    - 健身房就在前方过道的尽头。
    - 你会为有需要的用户准备一条新毛巾。
    - 在健身房可以进行的活动：运动、看宇宙风光（sightseeing），或者可以拉伸放松、进行休息。
    - 对用户的任何提问，你都耐心安抚并一一回答。

    # 5. 语言风格
    - 使用 CEFR A1-A2 等级英语，避免复杂句，每句话不超过 10 个词，比如
      "我要去..." 可以用句子 I am going to ...，不用 My destination is ...，确保小学2-4年级的孩子能听懂
    - 回答一般不超过两句话
    - 避免重复表达，适当变换措辞

    # 6. 开场白
    你由你开始对话，你会说："Can I help you?"

    # 7. 回应方式（固定内容）
    - 你只在用户提问时才根据知识库中的信息回答。其他时候，以符合你身份的方式，自然地进行交谈。
    - 不主动提供知识库的信息
    - 不主动提问题
    ```

中间结果: 语音识别热词

    gym,towel,exercise,sightseeing,relax,walkway

原始组件配置 (可编辑后点击"执行重新生成")
【任务标题】 询问空乘关于健身房的信息 【任务背景】 吃太饱，头晕晕，连刚刚去过的健身房都不记得怎么走了。好在 Chole 永远笑意盈盈地准备提供帮助，赶紧问问她怎么去！以及记得向她要一条新毛巾哦！ 【任务描述】 你要向 Chloe 询问健身房的位置，以及讨要毛巾，做好开始运动的准备。 【通关知识】 Where can I find the gym？我在哪里能找到健身房？ Can I have a towel please?？我能要一条毛巾吗？ What else can I do there? 我在那儿还能做些什么？ 【对话角色】 Chloe 【任务背景】 你是 Chloe，是 Twilight 的空乘，服务好每一位乘客是你的使命。 用户之前帮你在另一位乘客面前解了围，你很感谢用户的帮忙，对用户的态度也格外友善热情。 你发现用完餐的用户正在东张西望，似乎在寻找什么，你确认用户需要帮助，于是上前询问。你发现用户想去健身房消消食，但是不知道方向，于是回答了用户的问题，提供了你的帮助。 【知识库】 你知道健身房就在前方过道的尽头。 你会为有需要的用户准备一条新毛巾。 你会解答用户的问题，告诉用户在健身房可以进行的活动：运动、看宇宙风光（sightseeing），或者可以拉伸放松、进行休息。 对用户的任何提问，你都耐心安抚并一一回答。 【回合设定】 检测回合：3 最大回合：5 【通过规则】 过程：用户成功问出“健身房在哪里”、“可以给我一条毛巾吗”以及“在哪儿我还能做什么”的三个问题。 结果：Chloe回答了用户关于健身房的问题，提供了耐心友好的帮助。 【示例对话】 Chloe: Can I help you? User: Where can I find the gym? Chloe: Look, it's over there at the end of this walkway. User: Oh, and can I have a towel please? Chloe: Of course! I'll bring a new one for you soon. User: What else can I do there? Chloe: Well, you can do some exercise and enjoy sightseeing there. Or you can just relax.
23 核心看图说话 cId: 0000800 core_speaking_image
已保存 ▶
taskInfo

cType |
cId |
title |
taskDesc |
sceneDesc |
key | [ { "desc": "", "keyList": [ { "type": "default", "content": "winter", "desc": "n. 冬天" }, { "type": "default", "content": "cold", "desc": "adj. 冷的" }, { "type": "default", "content": "snow", "desc": "n. 雪" } ] } ]
resourceMapping | { "Peter": 739, "Eva": 738 }
cDesc | NPC: What season is it? User: Winter. NPC: Is it hot or cold? User: Cold. NPC: What do you see in winter? User: Snow.

12345678910111213141516171819202122232425262728293031323334
{ "cType": "core_speaking_image", "cId": "0000800", "title": "和 Mr Rock 分享在 Winter Island 的所见所得", "taskDesc": "回答 Mr Rock 的问题", "sceneDesc": "Mr Rock 要给我们煮东西吃，看着暖腾腾的热气，听着咕咚咚的水声，闻着香飘飘的味道，心里美滋滋。等待开饭的时间里，和 Mr Rock 聊聊天吧。", "key": [ { "desc": "", "keyList": [ { "type": "default", "content": "winter", "desc": "n. 冬天" }, { "type": "default", "content": "cold", "desc": "adj. 冷的" }, { "type": "default", "content": "snow", "desc": "n. 雪" } ] } ], "resourceMapping": { "Peter": 739, "Eva": 738 }, "cDesc": "NPC: What season is it?\nUser: Winter.\nNPC: Is it hot or cold?\nUser: Cold.\nNPC: What do you see in winter?\nUser: Snow." }
dialogConfig

config

{ "asrPrompt": "Mr Rock,Winter Island,winter,cold,snow", "promptInfo": { "user_scene": "Mr Rock 要给我们煮东西吃，看着暖腾腾的热气，听着咕咚咚的水声，闻着香飘飘的味道，心里美滋滋。等待开饭的时间里，和 Mr Rock 聊聊天吧。", "user_task": "回答 Mr Rock 的问题", "user_knowledge": "winter 冬天\ncold 冷的\nsnow 雪", "pass_condition": "用户说出：\n1. 冬天\n2. 冷的\n3. 雪", "reference_dialog": "NPC: What season is it?\nUser: Winter.\nNPC: Is it hot or cold?\nUser: Cold.\nNPC: What do you see in winter?\nUser: Snow.", "questionList": [ { "type": "npc", "npcName": "Rock", "content": "What season is it?", "index": 0, "answerText": "Winter." }, { "type": "npc", "npcName": "Rock", "content": "Is it hot or cold?", "index": 1, "answerText": "Cold." }, { "type": "npc", "npcName": "Rock", "content": "What do you see in winter?", "index": 2, "answerText": "Snow." } ] } }

1234567891011121314151617181920212223242526272829303132333435
{ "config": { "asrPrompt": "Mr Rock,Winter Island,winter,cold,snow", "promptInfo": { "user_scene": "Mr Rock 要给我们煮东西吃，看着暖腾腾的热气，听着咕咚咚的水声，闻着香飘飘的味道，心里美滋滋。等待开饭的时间里，和 Mr Rock 聊聊天吧。", "user_task": "回答 Mr Rock 的问题", "user_knowledge": "winter 冬天\ncold 冷的\nsnow 雪", "pass_condition": "用户说出：\n1. 冬天\n2. 冷的\n3. 雪", "reference_dialog": "NPC: What season is it?\nUser: Winter.\nNPC: Is it hot or cold?\nUser: Cold.\nNPC: What do you see in winter?\nUser: Snow.", "questionList": [ { "type": "npc", "npcName": "Rock", "content": "What season is it?", "index": 0, "answerText": "Winter." }, { "type": "npc", "npcName": "Rock", "content": "Is it hot or cold?", "index": 1, "answerText": "Cold." }, { "type": "npc", "npcName": "Rock", "content": "What do you see in winter?", "index": 2, "answerText": "Snow." } ] } } }
studyInfo

learningPart

[ { "leadIn": { "type": "npc", "npcName": "Rock", "content": "What season is it?" }, "learning": [ { "question": { "type": "npc", "npcName": "Brainy", "content": "Mr Rock 现在问你现在是什么季节，你需要告诉他现在所处的季节。", "index": 0 }, "optionList": [ { "option": "Winter.", "feedback": { "type": "npc", "npcName": "Brainy", "content": "太棒了！你正确回答了现在是冬季。请大声朗读这句话！" } }, { "option": "Cold.", "feedback": { "type": "npc", "npcName": "Brainy", "content": "这句话的意思是“寒冷的”，是用来描述天气感受的，而Mr Rock现在问的是季节是什么。请再仔细听清问题，告诉Mr Rock现在的季节。" } }, { "option": "Snow.", "feedback": { "type": "npc", "npcName": "Brainy", "content": "这句话的意思是“雪”，是冬天会出现的事物，而Mr Rock现在问的是季节是什么。请再仔细听清问题，告诉Mr Rock现在的季节。" } } ], "answer": [ 0 ], "read": { "type": "npc", "npcName": "User", "content": "Winter." } } ] }, { "leadIn": { "type": "npc", "npcName": "Rock", "content": "Is it hot or cold?" }, "learning": [ { "question": { "type": "npc", "npcName": "Brainy", "content": "Mr Rock 现在问你天气是热还是冷，你需要告诉他冬季岛屿的天气感受。", "index": 1 }, "optionList": [ { "option": "Winter.", "feedback": { "type": "npc", "npcName": "Brainy", "content": "这句话的意思是“冬季”，是现在的季节，而Mr Rock现在问的是天气是热还是冷。请再仔细听清问题，告诉Mr Rock天气的感受。" } }, { "option": "Cold.", "feedback": { "type": "npc", "npcName": "Brainy", "content": "太棒了！你正确回答了天气很冷。请大声朗读这句话！" } }, { "option": "Snow.", "feedback": { "type": "npc", "npcName": "Brainy", "content": "这句话的意思是“雪”，是冬天会出现的事物，而Mr Rock现在问的是天气是热还是冷。请再仔细听清问题，告诉Mr Rock天气的感受。" } } ], "answer": [ 1 ], "read": { "type": "npc", "npcName": "User", "content": "Cold." } } ] }, { "leadIn": { "type": "npc", "npcName": "Rock", "content": "What do you see in winter?" }, "learning": [ { "question": { "type": "npc", "npcName": "Brainy", "content": "Mr Rock 现在问你在冬天能看到什么，你需要告诉他冬季岛屿上能见到的事物。", "index": 2 }, "optionList": [ { "option": "Winter.", "feedback": { "type": "npc", "npcName": "Brainy", "content": "这句话的意思是“冬季”，是现在的季节，而Mr Rock现在问的是你在冬天能看到什么事物。请再仔细听清问题，告诉Mr Rock你看到的东西。" } }, { "option": "Cold.", "feedback": { "type": "npc", "npcName": "Brainy", "content": "这句话的意思是“寒冷的”，是天气的感受，而Mr Rock现在问的是你在冬天能看到什么事物。请再仔细听清问题，告诉Mr Rock你看到的东西。" } }, { "option": "Snow.", "feedback": { "type": "npc", "npcName": "Brainy", "content": "太棒了！你正确回答了在冬天能看到雪。请大声朗读这句话！" } } ], "answer": [ 2 ], "read": { "type": "npc", "npcName": "User", "content": "Snow." }, "feedback": { "type": "npc", "npcName": "Rock", "content": "You know winter very well! Great sharing!" } } ] } ]

closing | { "type": "npc", "npcName": "Brainy", "content": "你已经顺利回答了Mr Rock的三个问题，和他分享了冬季的季节、天气特征以及典型事物，圆满完成了本次对话任务，可以去享用热乎的食物啦！" }

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
{ "learningPart": [ { "leadIn": { "type": "npc", "npcName": "Rock", "content": "What season is it?" }, "learning": [ { "question": { "type": "npc", "npcName": "Brainy", "content": "Mr Rock 现在问你现在是什么季节，你需要告诉他现在所处的季节。", "index": 0 }, "optionList": [ { "option": "Winter.", "feedback": { "type": "npc", "npcName": "Brainy", "content": "太棒了！你正确回答了现在是冬季。请大声朗读这句话！" } }, { "option": "Cold.", "feedback": { "type": "npc", "npcName": "Brainy", "content": "这句话的意思是“寒冷的”，是用来描述天气感受的，而Mr Rock现在问的是季节是什么。请再仔细听清问题，告诉Mr Rock现在的季节。" } }, { "option": "Snow.", "feedback": { "type": "npc", "npcName": "Brainy", "content": "这句话的意思是“雪”，是冬天会出现的事物，而Mr Rock现在问的是季节是什么。请再仔细听清问题，告诉Mr Rock现在的季节。" } } ], "answer": [ 0 ], "read": { "type": "npc", "npcName": "User", "content": "Winter." } } ] }, { "leadIn": { "type": "npc", "npcName": "Rock", "content": "Is it hot or cold?" }, "learning": [ { "question": { "type": "npc", "npcName": "Brainy", "content": "Mr Rock 现在问你天气是热还是冷，你需要告诉他冬季岛屿的天气感受。", "index": 1 }, "optionList": [ { "option": "Winter.", "feedback": { "type": "npc", "npcName": "Brainy", "content": "这句话的意思是“冬季”，是现在的季节，而Mr Rock现在问的是天气是热还是冷。请再仔细听清问题，告诉Mr Rock天气的感受。" } }, { "option": "Cold.", "feedback": { "type": "npc", "npcName": "Brainy", "content": "太棒了！你正确回答了天气很冷。请大声朗读这句话！" } }, { "option": "Snow.", "feedback": { "type": "npc", "npcName": "Brainy", "content": "这句话的意思是“雪”，是冬天会出现的事物，而Mr Rock现在问的是天气是热还是冷。请再仔细听清问题，告诉Mr Rock天气的感受。" } } ], "answer": [ 1 ], "read": { "type": "npc", "npcName": "User", "content": "Cold." } } ] }, { "leadIn": { "type": "npc", "npcName": "Rock", "content": "What do you see in winter?" }, "learning": [ { "question": { "type": "npc", "npcName": "Brainy", "content": "Mr Rock 现在问你在冬天能看到什么，你需要告诉他冬季岛屿上能见到的事物。", "index": 2 }, "optionList": [ { "option": "Winter.", "feedback": { "type": "npc", "npcName": "Brainy", "content": "这句话的意思是“冬季”，是现在的季节，而Mr Rock现在问的是你在冬天能看到什么事物。请再仔细听清问题，告诉Mr Rock你看到的东西。" } }, { "option": "Cold.", "feedback": { "type": "npc", "npcName": "Brainy", "content": "这句话的意思是“寒冷的”，是天气的感受，而Mr Rock现在问的是你在冬天能看到什么事物。请再仔细听清问题，告诉Mr Rock你看到的东西。" } }, { "option": "Snow.", "feedback": { "type": "npc", "npcName": "Brainy", "content": "太棒了！你正确回答了在冬天能看到雪。请大声朗读这句话！" } } ], "answer": [ 2 ], "read": { "type": "npc", "npcName": "User", "content": "Snow." }, "feedback": { "type": "npc", "npcName": "Rock", "content": "You know winter very well! Great sharing!" } } ] } ], "closing": { "type": "npc", "npcName": "Brainy", "content": "你已经顺利回答了Mr Rock的三个问题，和他分享了冬季的季节、天气特征以及典型事物，圆满完成了本次对话任务，可以去享用热乎的食物啦！" } }
imageInfo

questionImg |

123
{ "questionImg": "0000800_question.png" }
questionList
1234567891011121314151617181920212223
[ { "type": "npc", "npcName": "Rock", "content": "What season is it?", "index": 0, "answerText": "Winter." }, { "type": "npc", "npcName": "Rock", "content": "Is it hot or cold?", "index": 1, "answerText": "Cold." }, { "type": "npc", "npcName": "Rock", "content": "What do you see in winter?", "index": 2, "answerText": "Snow." } ]
optionList
1234567891011
[ { "option": "0000800_option_00.png" }, { "option": "0000800_option_01.png" }, { "option": "0000800_option_02.png" } ]
kpInfo JSON

pushType |
cType |
cId |
kpInfo | [ { "kpId": null, "kpType": "vocab", "kpTitle": "winter 冬天", "kpSkill": "vocab_meaning", "kpSkillName": "词义" }, { "kpId": null, "kpType": "vocab", "kpTitle": "cold 冷的", "kpSkill": "vocab_meaning", "kpSkillName": "词义" }, { "kpId": null, "kpType": "vocab", "kpTitle": "snow 雪", "kpSkill": "vocab_meaning", "kpSkillName": "词义" } ]

12345678910111213141516171819202122232425262728
{ "pushType": "relationKp", "cType": "core_speaking_image", "cId": "0000800", "kpInfo": [ { "kpId": null, "kpType": "vocab", "kpTitle": "winter 冬天", "kpSkill": "vocab_meaning", "kpSkillName": "词义" }, { "kpId": null, "kpType": "vocab", "kpTitle": "cold 冷的", "kpSkill": "vocab_meaning", "kpSkillName": "词义" }, { "kpId": null, "kpType": "vocab", "kpTitle": "snow 雪", "kpSkill": "vocab_meaning", "kpSkillName": "词义" } ] }
中间结果: 学习流程配置

    ```
    # 中间回合1
    Rock: What season is it?
    Brainy: Mr Rock 现在问你现在是什么季节，你需要告诉他现在所处的季节。
    用户选项:
    （选项 A）Winter. [正确]
      Brainy: 太棒了！你正确回答了现在是冬季。请大声朗读这句话！
    （选项 B）Cold.
      Brainy: 这句话的意思是“寒冷的”，是用来描述天气感受的，而Mr Rock现在问的是季节是什么。请再仔细听清问题，告诉Mr Rock现在的季节。
    （选项 C）Snow.
      Brainy: 这句话的意思是“雪”，是冬天会出现的事物，而Mr Rock现在问的是季节是什么。请再仔细听清问题，告诉Mr Rock现在的季节。

    # 中间回合2
    Rock: Is it hot or cold?
    Brainy: Mr Rock 现在问你天气是热还是冷，你需要告诉他冬季岛屿的天气感受。
    用户选项:
    （选项 A）Winter.
      Brainy: 这句话的意思是“冬季”，是现在的季节，而Mr Rock现在问的是天气是热还是冷。请再仔细听清问题，告诉Mr Rock天气的感受。
    （选项 B）Cold. [正确]
      Brainy: 太棒了！你正确回答了天气很冷。请大声朗读这句话！
    （选项 C）Snow.
      Brainy: 这句话的意思是“雪”，是冬天会出现的事物，而Mr Rock现在问的是天气是热还是冷。请再仔细听清问题，告诉Mr Rock天气的感受。

    # 中间回合3
    Rock: What do you see in winter?
    Brainy: Mr Rock 现在问你在冬天能看到什么，你需要告诉他冬季岛屿上能见到的事物。
    用户选项:
    （选项 A）Winter.
      Brainy: 这句话的意思是“冬季”，是现在的季节，而Mr Rock现在问的是你在冬天能看到什么事物。请再仔细听清问题，告诉Mr Rock你看到的东西。
    （选项 B）Cold.
      Brainy: 这句话的意思是“寒冷的”，是天气的感受，而Mr Rock现在问的是你在冬天能看到什么事物。请再仔细听清问题，告诉Mr Rock你看到的东西。
    （选项 C）Snow. [正确]
      Brainy: 太棒了！你正确回答了在冬天能看到雪。请大声朗读这句话！

    # 结尾回合
    Brainy: 你已经和Mr Rock分享了在冬季岛屿的所见所感，聊天任务完成啦，马上就可以吃到热乎的食物咯！
    ```

中间结果: 语音识别热词

    Mr Rock,Winter Island,winter,cold,snow

原始组件配置 (可编辑后点击"执行重新生成")
【任务标题】 和 Mr Rock 分享在 Winter Island 的所见所得 【任务背景】 Mr Rock 要给我们煮东西吃，看着暖腾腾的热气，听着咕咚咚的水声，闻着香飘飘的味道，心里美滋滋。等待开饭的时间里，和 Mr Rock 聊聊天吧。 【任务描述】 回答 Mr Rock 的问题 【知识】 winter 冬天 cold 冷的 snow 雪 【对话角色】 Rock 【角色背景】 你是 Rock，带着学生们在四季岛旅行。在冬季岛屿上，你给用户煮了一锅热热的食物。现在等待食物煮熟的过程里，和用户聊聊在冬季岛屿的所见多得…… 【互动问题】 #图片编号：00 Q: What season is it? A: Winter. #图片编号：01 Q: Is it hot or cold? A: Cold. #图片编号：02 Q: What do you see in winter? A: Snow. 【通过规则】 用户说出： 1. 冬天 2. 冷的 3. 雪 【示例对话】 NPC: What season is it? User: Winter. NPC: Is it hot or cold? User: Cold. NPC: What do you see in winter? User: Snow.
24 核心合作听力 cId: 0000800 core_listening_order
已保存 ▶
taskInfo

cType |
cId |
title |
sceneDesc |
img |
key | [ { "desc": "", "keyList": [ { "type": "default", "content": "bake", "desc": "v. 烘焙；烤制" }, { "type": "default", "content": "healthy", "desc": "adj. 健康的" }, { "type": "default", "content": "money", "desc": "n. 钱" }, { "type": "default", "content": "cake", "desc": "n. 蛋糕" }, { "type": "default", "content": "alcohol", "desc": "n. 含酒精饮料" } ] } ]
resourceMapping | { "Peter": 739, "Eva": 738 }

12345678910111213141516171819202122232425262728293031323334353637383940414243
{ "cType": "core_listening_order", "cId": "0000800", "title": "Max 的专业健身指南", "sceneDesc": "Shark 的生活方式实在不健康，为了变强壮，居然把自己饿晕了！你想起健身达人 Max，曾经分享过一些专业健身指南，快让 Shark 听听看。", "img": "", "key": [ { "desc": "", "keyList": [ { "type": "default", "content": "bake", "desc": "v. 烘焙；烤制" }, { "type": "default", "content": "healthy", "desc": "adj. 健康的" }, { "type": "default", "content": "money", "desc": "n. 钱" }, { "type": "default", "content": "cake", "desc": "n. 蛋糕" }, { "type": "default", "content": "alcohol", "desc": "n. 含酒精饮料" } ] } ], "resourceMapping": { "Peter": 739, "Eva": 738 } }
materialInfo

audio

[ { "audioType": "File", "audioTitle": "How to live a healthy life?", "audioSource": "0330116_01", "audioText": "Second, live a healthy life.\nGo to bed on time and get up early. Try to stay away from bad things, like smoking and alcohol. These things are not good for your body.\nThird, you do not need much money.\n Keeping a healthy body is not about money. You do not need expensive things. Good habits are the most important." } ]

question

[ { "type": "npc", "npcName": "Shark", "content": "When I want sweet food, what should I do?", "optionList": [ { "option": "Buy cake at a shop", "feedback": { "type": "npc", "npcName": "Medic", "content": "You do not need to buy it." } }, { "option": "Bake at home with healthy food.", "feedback": { "type": "npc", "npcName": "Medic", "content": "Yes! Baking at home is a good choice." } }, { "option": "Eat sweet food all the time.", "feedback": { "type": "npc", "npcName": "Medic", "content": "Too much sweet food is not healthy." } } ], "answer": [ 1 ], "meaning": "" }, { "type": "npc", "npcName": "Shark", "content": "What should I do to live a healthy life?", "optionList": [ { "option": "Go to bed late and get up late.", "feedback": { "type": "npc", "npcName": "Medic", "content": "This is not a healthy routine." } }, { "option": "Go to bed on time and get up early.", "feedback": { "type": "npc", "npcName": "Medic", "content": "Yes! A good routine is important." } }, { "option": "Smoke and drink alcohol.", "feedback": { "type": "npc", "npcName": "Medic", "content": "These things are bad for your body." } } ], "answer": [ 1 ], "meaning": "" }, { "type": "npc", "npcName": "Shark", "content": "What do I need to keep healthy?", "optionList": [ { "option": "A lot of money.", "feedback": { "type": "npc", "npcName": "Medic", "content": "I don't think so." } }, { "option": "Expensive things.", "feedback": { "type": "npc", "npcName": "Medic", "content": "You do not need expensive things." } }, { "option": "Good habits.", "feedback": { "type": "npc", "npcName": "Medic", "content": "Right! Good habits are the most important." } } ], "answer": [ 2 ], "meaning": "" }, { "type": "npc", "npcName": "Shark", "content": "What is a healthy life NOT about?", "optionList": [ { "option": "Money.", "feedback": { "type": "npc", "npcName": "Medic", "content": "Right! A healthy life is not about money." } }, { "option": "Good habits.", "feedback": { "type": "npc", "npcName": "Medic", "content": "Good habits are very important." } }, { "option": "Healthy food.", "feedback": { "type": "npc", "npcName": "Medic", "content": "Healthy food helps your body feel better." } } ], "answer": [ 0 ], "meaning": "" } ]

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
{ "audio": [ { "audioType": "File", "audioTitle": "How to live a healthy life?", "audioSource": "0330116_01", "audioText": "Second, live a healthy life.\nGo to bed on time and get up early. Try to stay away from bad things, like smoking and alcohol. These things are not good for your body.\nThird, you do not need much money.\n Keeping a healthy body is not about money. You do not need expensive things. Good habits are the most important." } ], "question": [ { "type": "npc", "npcName": "Shark", "content": "When I want sweet food, what should I do?", "optionList": [ { "option": "Buy cake at a shop", "feedback": { "type": "npc", "npcName": "Medic", "content": "You do not need to buy it." } }, { "option": "Bake at home with healthy food.", "feedback": { "type": "npc", "npcName": "Medic", "content": "Yes! Baking at home is a good choice." } }, { "option": "Eat sweet food all the time.", "feedback": { "type": "npc", "npcName": "Medic", "content": "Too much sweet food is not healthy." } } ], "answer": [ 1 ], "meaning": "" }, { "type": "npc", "npcName": "Shark", "content": "What should I do to live a healthy life?", "optionList": [ { "option": "Go to bed late and get up late.", "feedback": { "type": "npc", "npcName": "Medic", "content": "This is not a healthy routine." } }, { "option": "Go to bed on time and get up early.", "feedback": { "type": "npc", "npcName": "Medic", "content": "Yes! A good routine is important." } }, { "option": "Smoke and drink alcohol.", "feedback": { "type": "npc", "npcName": "Medic", "content": "These things are bad for your body." } } ], "answer": [ 1 ], "meaning": "" }, { "type": "npc", "npcName": "Shark", "content": "What do I need to keep healthy?", "optionList": [ { "option": "A lot of money.", "feedback": { "type": "npc", "npcName": "Medic", "content": "I don't think so." } }, { "option": "Expensive things.", "feedback": { "type": "npc", "npcName": "Medic", "content": "You do not need expensive things." } }, { "option": "Good habits.", "feedback": { "type": "npc", "npcName": "Medic", "content": "Right! Good habits are the most important." } } ], "answer": [ 2 ], "meaning": "" }, { "type": "npc", "npcName": "Shark", "content": "What is a healthy life NOT about?", "optionList": [ { "option": "Money.", "feedback": { "type": "npc", "npcName": "Medic", "content": "Right! A healthy life is not about money." } }, { "option": "Good habits.", "feedback": { "type": "npc", "npcName": "Medic", "content": "Good habits are very important." } }, { "option": "Healthy food.", "feedback": { "type": "npc", "npcName": "Medic", "content": "Healthy food helps your body feel better." } } ], "answer": [ 0 ], "meaning": "" } ] }
flowInfo

sequence | [ { "audio": [ 0 ] }, { "question": [ 0 ] }, { "audio": [ 1 ] }, { "question": [ 1 ] }, { "question": [ 2 ] }, { "question": [ 3 ] } ]

12345678910111213141516171819202122232425262728293031323334
{ "sequence": [ { "audio": [ 0 ] }, { "question": [ 0 ] }, { "audio": [ 1 ] }, { "question": [ 1 ] }, { "question": [ 2 ] }, { "question": [ 3 ] } ] }
studyInfo

closing | { "type": "npc", "content": "很好！你已经回答完了全部问题，相信你已经听懂了这个任务中所有的重点句子。现在让我们来查看结果吧!", "npcName": "Brainy" }

learningPart

[ { "leadIn": { "type": "npc", "content": "When you really want sweet food, like biscuits or cake, you can bake at home.", "npcName": "Brainy" }, "content": "刚刚听到的音频中，包含了一个关键短语 bake at home，意思是在家烘焙。正确的发音是 /beɪk æt həʊm/。", "type": "npc", "npcName": "Brainy", "learning": [ { "answer": [ 0 ], "meaning": "听音选句", "optionList": [ { "feedback": { "type": "npc", "content": "太厉害啦！你精准听出了句子里的重点短语 bake at home！", "npcName": "Brainy" }, "option": "When you really want sweet food, like biscuits or cake, you can bake at home." }, { "feedback": { "type": "npc", "content": "哎呀，这句话说的是在商店购买，没有提到 bake at home 哦，再仔细听听音频试试吧！", "npcName": "Brainy" }, "option": "When you really want sweet food, like biscuits or cake, you can buy at the shop." } ], "question": { "type": "npc", "npcName": "Brainy", "content": "仔细听音频内容，选出你听到的句子吧。" } }, { "answer": [ 0 ], "meaning": "听音选意", "optionList": [ { "feedback": { "type": "npc", "content": "完全正确！你不仅弄懂了整句话的意思，还掌握了 bake at home 这个实用短语，太棒啦！", "npcName": "Brainy" }, "option": "当你特别想吃甜食，比如饼干或者蛋糕时，你可以在家烘焙。" }, { "feedback": { "type": "npc", "content": "这句话里说的是在家自己做哦，不是去餐厅吃，再仔细想想看吧~", "npcName": "Brainy" }, "option": "当你特别想吃甜食，比如饼干或者蛋糕时，你可以去外面的餐厅吃。" } ], "question": { "type": "npc", "npcName": "Brainy", "content": "现在来看看这句话的正确意思是什么，选一下吧~" } } ] } ]

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
{ "closing": { "type": "npc", "content": "很好！你已经回答完了全部问题，相信你已经听懂了这个任务中所有的重点句子。现在让我们来查看结果吧!", "npcName": "Brainy" }, "learningPart": [ { "leadIn": { "type": "npc", "content": "When you really want sweet food, like biscuits or cake, you can bake at home.", "npcName": "Brainy" }, "content": "刚刚听到的音频中，包含了一个关键短语 bake at home，意思是在家烘焙。正确的发音是 /beɪk æt həʊm/。", "type": "npc", "npcName": "Brainy", "learning": [ { "answer": [ 0 ], "meaning": "听音选句", "optionList": [ { "feedback": { "type": "npc", "content": "太厉害啦！你精准听出了句子里的重点短语 bake at home！", "npcName": "Brainy" }, "option": "When you really want sweet food, like biscuits or cake, you can bake at home." }, { "feedback": { "type": "npc", "content": "哎呀，这句话说的是在商店购买，没有提到 bake at home 哦，再仔细听听音频试试吧！", "npcName": "Brainy" }, "option": "When you really want sweet food, like biscuits or cake, you can buy at the shop." } ], "question": { "type": "npc", "npcName": "Brainy", "content": "仔细听音频内容，选出你听到的句子吧。" } }, { "answer": [ 0 ], "meaning": "听音选意", "optionList": [ { "feedback": { "type": "npc", "content": "完全正确！你不仅弄懂了整句话的意思，还掌握了 bake at home 这个实用短语，太棒啦！", "npcName": "Brainy" }, "option": "当你特别想吃甜食，比如饼干或者蛋糕时，你可以在家烘焙。" }, { "feedback": { "type": "npc", "content": "这句话里说的是在家自己做哦，不是去餐厅吃，再仔细想想看吧~", "npcName": "Brainy" }, "option": "当你特别想吃甜食，比如饼干或者蛋糕时，你可以去外面的餐厅吃。" } ], "question": { "type": "npc", "npcName": "Brainy", "content": "现在来看看这句话的正确意思是什么，选一下吧~" } } ] } ] }
kpInfo JSON

pushType |
cType |
cId |

kpInfo

[ { "kpId": null, "kpType": "vocab", "kpTitle": "bake v. 烘焙；烤制", "kpSkill": "vocab_meaning", "kpSkillName": "词义" }, { "kpId": null, "kpType": "vocab", "kpTitle": "healthy adj. 健康的", "kpSkill": "vocab_meaning", "kpSkillName": "词义" }, { "kpId": null, "kpType": "vocab", "kpTitle": "money n. 钱", "kpSkill": "vocab_meaning", "kpSkillName": "词义" }, { "kpId": null, "kpType": "vocab", "kpTitle": "cake n. 蛋糕", "kpSkill": "vocab_meaning", "kpSkillName": "词义" }, { "kpId": null, "kpType": "vocab", "kpTitle": "alcohol n. 含酒精饮料", "kpSkill": "vocab_meaning", "kpSkillName": "词义" } ]

123456789101112131415161718192021222324252627282930313233343536373839404142
{ "pushType": "relationKp", "cType": "core_listening_order", "cId": "0000800", "kpInfo": [ { "kpId": null, "kpType": "vocab", "kpTitle": "bake v. 烘焙；烤制", "kpSkill": "vocab_meaning", "kpSkillName": "词义" }, { "kpId": null, "kpType": "vocab", "kpTitle": "healthy adj. 健康的", "kpSkill": "vocab_meaning", "kpSkillName": "词义" }, { "kpId": null, "kpType": "vocab", "kpTitle": "money n. 钱", "kpSkill": "vocab_meaning", "kpSkillName": "词义" }, { "kpId": null, "kpType": "vocab", "kpTitle": "cake n. 蛋糕", "kpSkill": "vocab_meaning", "kpSkillName": "词义" }, { "kpId": null, "kpType": "vocab", "kpTitle": "alcohol n. 含酒精饮料", "kpSkill": "vocab_meaning", "kpSkillName": "词义" } ] }
中间结果: 学习过程配置

    ```
    # 重点句子 1
    音频文本：When you really want sweet food, like biscuits or cake, you can bake at home.
    讲解文本：刚刚听到的音频中，包含了一个关键短语 bake at home，意思是在家烘焙。正确的发音是 /beɪk æt həʊm/。
    1. 听音选句
    Brainy：仔细听音频内容，选出你听到的句子吧。
    - When you really want sweet food, like biscuits or cake, you can bake at home. [正确]
      - Brainy：太厉害啦！你精准听出了句子里的重点短语 bake at home！
    - When you really want sweet food, like biscuits or cake, you can buy at the shop.
      - Brainy：哎呀，这句话说的是在商店购买，没有提到 bake at home 哦，再仔细听听音频试试吧！

    2. 听音选意
    Brainy：现在来看看这句话的正确意思是什么，选一下吧~
    - 当你特别想吃甜食，比如饼干或者蛋糕时，你可以在家烘焙。[正确]
      - Brainy：完全正确！你不仅弄懂了整句话的意思，还掌握了 bake at home 这个实用短语，太棒啦！
    - 当你特别想吃甜食，比如饼干或者蛋糕时，你可以去外面的餐厅吃。
      - Brainy：这句话里说的是在家自己做哦，不是去餐厅吃，再仔细想想看吧~
    ---
    # 完成反馈
    Brainy：很好！你已经回答完了全部问题，相信你已经听懂了这个任务中所有的重点句子。现在让我们来查看结果吧!
    ```

中间结果: 互动描述

    You listened to the second part of Max's fitness guide, learning that a healthy life requires going to bed on time and getting up early, and staying away from smoking and alcohol.（你听了Max健身指南的第二部分，了解到健康生活需要按时睡觉早起，并且远离吸烟和酒精。）
    You also found that keeping healthy doesn't need much money or expensive things, and good habits are the most important for your body.（你还发现保持健康不需要很多钱或者昂贵的东西，好的习惯对你的身体来说是最重要的。）

原始组件配置 (可编辑后点击"执行重新生成")
【任务标题】 Max 的专业健身指南 【任务背景】 Shark 的生活方式实在不健康，为了变强壮，居然把自己饿晕了！你想起健身达人 Max，曾经分享过一些专业健身指南，快让 Shark 听听看。 【通关知识】 bake v. 烘焙；烤制 healthy adj. 健康的 money n. 钱 cake n. 蛋糕 alcohol n. 含酒精饮料 【听力材料】 # 材料 1 ## 材料类型 音频文件 ## 材料内容 1. 标题 How to live a healthy life? 2. 文本 Hi! This is Max. I want to share some simple tips for a healthy life with you. First, eat healthy food. Food is very important for your body. This helps your body feel better. But sometimes, it is OK to enjoy a small treat. When you really want sweet food, like biscuits or cake, you can bake at home. 3. 音频文件名 0330116_00 【听力材料】 # 材料 2 ## 材料类型 音频文件 ## 材料内容 1. 标题 How to live a healthy life? 2. 文本 Second, live a healthy life. Go to bed on time and get up early. Try to stay away from bad things, like smoking and alcohol. These things are not good for your body. Third, you do not need much money. Keeping a healthy body is not about money. You do not need expensive things. Good habits are the most important. 3. 音频文件名 0330116_01 [题目1] Shark: When I want sweet food, what should I do? A. Buy cake at a shop 错误 Medic: You do not need to buy it. B. Bake at home with healthy food. 正确 Medic: Yes! Baking at home is a good choice. C. Eat sweet food all the time. 错误 Medic: Too much sweet food is not healthy. [题目2] Shark: What should I do to live a healthy life? A. Go to bed late and get up late. 错误 Medic: This is not a healthy routine. B. Go to bed on time and get up early. 正确 Medic: Yes! A good routine is important. C. Smoke and drink alcohol. 错误 Medic: These things are bad for your body. [题目3] Shark: What do I need to keep healthy? A. A lot of money. 错误 Medic: I don't think so. B. Expensive things. 错误 Medic: You do not need expensive things. C. Good habits. 正确 Medic: Right! Good habits are the most important. [题目4] Shark: What is a healthy life NOT about? A. Money. 正确 Medic: Right! A healthy life is not about money. B. Good habits. 错误 Medic: Good habits are very important. C. Healthy food. 错误 Medic: Healthy food helps your body feel better. 【流程编排】 [材料1] [题目1] [材料2] [题目2] [题目3] [题目4] 【学习过程】 句子 1 When you really want sweet food, like biscuits or cake, you can bake at home. 【bake】 句子 2 Go to bed on time and get up early. Try to stay away from bad things, like smoking and alcohol. 【alcohol】 句子 3 Third, you do not need much money. Keeping a healthy body is not about money. 【money】
25 核心听力拖拽 cId: 0000800 core_listening_drag
已保存 ▶
taskInfo

cType |
cId |
title |
sceneDesc |
key | [ { "desc": "", "keyList": [ { "type": "default", "content": "between", "desc": "prep. 在……中间" }, { "type": "default", "content": "next to", "desc": "prep. 紧邻" }, { "type": "default", "content": "duck", "desc": "n. 鸭子" } ] } ]
resourceMapping | { "Peter": 739, "Eva": 738 }
cDesc | You took on the fun task of guiding everyone to herd the ducks, and picked the most suitable ways from the provided illustrations to make all the little ducks waddle safely back to their enclosure. (你承担了指挥大家赶鸭子的有趣任务，从给出的图示里选了最合适的方法，让所有小鸭子都摇摇摆摆安全回到了鸭圈里。)

123456789101112131415161718192021222324252627282930313233
{ "cType": "core_listening_drag", "cId": "0000800", "title": "指挥大家赶鸭子", "sceneDesc": "鸭子大乱斗！手忙脚乱没有用，你现在得和伙伴们一起协作，把到处跑的鸭子赶进水里。快说说你的计划吧！", "key": [ { "desc": "", "keyList": [ { "type": "default", "content": "between", "desc": "prep. 在……中间" }, { "type": "default", "content": "next to", "desc": "prep. 紧邻" }, { "type": "default", "content": "duck", "desc": "n. 鸭子" } ] } ], "resourceMapping": { "Peter": 739, "Eva": 738 }, "cDesc": "You took on the fun task of guiding everyone to herd the ducks, and picked the most suitable ways from the provided illustrations to make all the little ducks waddle safely back to their enclosure. (你承担了指挥大家赶鸭子的有趣任务，从给出的图示里选了最合适的方法，让所有小鸭子都摇摇摆摆安全回到了鸭圈里。)" }
dialogList
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
[ [ { "type": "npc", "npcName": "Matt", "content": "Where should I go?", "trans": "我该去哪里？", "isPoint": false }, { "type": "user", "content": "Go between the red duck and the blue duck.", "trans": "走到红鸭子和蓝鸭子中间去。", "isPoint": false }, { "type": "user", "content": "Don't let them fight.", "trans": "别让它们打起来。", "isPoint": false } ], [ { "type": "npc", "npcName": "Ben", "content": "What about me?", "trans": "那我呢？", "isPoint": false }, { "type": "user", "content": "You are next to the blue duck.", "trans": "你在蓝鸭子旁边。", "isPoint": false } ], [ { "type": "npc", "npcName": "Amber", "content": "And me? Where should I be?", "trans": "那我呢？我该待在哪里？", "isPoint": false }, { "type": "user", "content": "You are next to the red duck.", "trans": "你在红鸭子旁边。", "isPoint": false }, { "type": "user", "content": "Get it into the water!", "trans": "把它弄到水里去！", "isPoint": false } ] ]
questionList
12345678910111213141516171819202122232425
[ { "imageInfo": { "questionImg": "0000800_question.png", "answerImg": "0000800_answer.png" }, "optionList": [ { "option": "0000800_option_00.png" }, { "option": "0000800_option_01.png" }, { "option": "0000800_option_02.png" } ], "answer": [ 0, 1, 2 ], "answerType": "all" } ]
studyInfo

learningPart

[ { "type": "npc", "npcName": "Brainy", "content": "Go between the red duck and the blue duck.", "learning": [ { "question": { "content": "刚刚听到的音频中，包含了一个关键短语 between...and...，意思是“在……和……之间”，用来描述两个事物中间的位置哦。", "type": "npc", "npcName": "Brainy" }, "extendQuestion": { "content": "仔细听音频，选出你听到的句子吧。", "type": "npc", "npcName": "Brainy" }, "optionList": [ { "option": "Go behind the red duck and the blue duck.", "feedback": { "type": "npc", "content": "不对哦，这句话里的behind是“在……后面”的意思，我们听到的句子是描述在两只鸭子中间的位置，再试试吧。", "npcName": "Brainy" } }, { "option": "Go between the red duck and the blue duck.", "feedback": { "type": "npc", "content": "太棒啦！你准确听出了句子里的重点短语between...and...，太厉害了！", "npcName": "Brainy" } } ], "answer": [ 1 ] }, { "question": { "content": "Go between the red duck and the blue duck.", "type": "npc", "npcName": "Brainy" }, "extendQuestion": { "content": "“走到红色鸭子和蓝色鸭子的后面”，这句话的意思是这个吗？", "type": "npc", "npcName": "Brainy" }, "optionList": [ { "option": "对 / Yes", "feedback": { "type": "npc", "content": "不对哦，我们要注意表示位置的短语意思，再仔细回忆一下短语的含义吧。", "npcName": "Brainy" } }, { "option": "错 / No", "feedback": { "type": "npc", "content": "答对啦！between...and...是在两者之间的意思，你已经完全掌握这个句子的意思啦！", "npcName": "Brainy" } } ], "answer": [ 1 ] } ] } ]

closing | { "type": "npc", "content": "很好！你已经回答完了全部问题，相信你已经听懂了这个任务中所有的重点句子。现在让我们来查看结果吧!", "npcName": "Brainy" }

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
{ "learningPart": [ { "type": "npc", "npcName": "Brainy", "content": "Go between the red duck and the blue duck.", "learning": [ { "question": { "content": "刚刚听到的音频中，包含了一个关键短语 between...and...，意思是“在……和……之间”，用来描述两个事物中间的位置哦。", "type": "npc", "npcName": "Brainy" }, "extendQuestion": { "content": "仔细听音频，选出你听到的句子吧。", "type": "npc", "npcName": "Brainy" }, "optionList": [ { "option": "Go behind the red duck and the blue duck.", "feedback": { "type": "npc", "content": "不对哦，这句话里的behind是“在……后面”的意思，我们听到的句子是描述在两只鸭子中间的位置，再试试吧。", "npcName": "Brainy" } }, { "option": "Go between the red duck and the blue duck.", "feedback": { "type": "npc", "content": "太棒啦！你准确听出了句子里的重点短语between...and...，太厉害了！", "npcName": "Brainy" } } ], "answer": [ 1 ] }, { "question": { "content": "Go between the red duck and the blue duck.", "type": "npc", "npcName": "Brainy" }, "extendQuestion": { "content": "“走到红色鸭子和蓝色鸭子的后面”，这句话的意思是这个吗？", "type": "npc", "npcName": "Brainy" }, "optionList": [ { "option": "对 / Yes", "feedback": { "type": "npc", "content": "不对哦，我们要注意表示位置的短语意思，再仔细回忆一下短语的含义吧。", "npcName": "Brainy" } }, { "option": "错 / No", "feedback": { "type": "npc", "content": "答对啦！between...and...是在两者之间的意思，你已经完全掌握这个句子的意思啦！", "npcName": "Brainy" } } ], "answer": [ 1 ] } ] } ], "closing": { "type": "npc", "content": "很好！你已经回答完了全部问题，相信你已经听懂了这个任务中所有的重点句子。现在让我们来查看结果吧!", "npcName": "Brainy" } }
kpInfo JSON

pushType |
cType |
cId |
kpInfo | [ { "kpId": null, "kpType": "vocab", "kpTitle": "between prep. 在……中间", "kpSkill": "vocab_meaning", "kpSkillName": "词义" }, { "kpId": null, "kpType": "sentence", "kpTitle": "next to prep. 紧邻", "kpSkill": "sentence_meaning", "kpSkillName": "语义" }, { "kpId": null, "kpType": "vocab", "kpTitle": "duck n. 鸭子", "kpSkill": "vocab_meaning", "kpSkillName": "词义" } ]

12345678910111213141516171819202122232425262728
{ "pushType": "relationKp", "cType": "core_listening_drag", "cId": "0000800", "kpInfo": [ { "kpId": null, "kpType": "vocab", "kpTitle": "between prep. 在……中间", "kpSkill": "vocab_meaning", "kpSkillName": "词义" }, { "kpId": null, "kpType": "sentence", "kpTitle": "next to prep. 紧邻", "kpSkill": "sentence_meaning", "kpSkillName": "语义" }, { "kpId": null, "kpType": "vocab", "kpTitle": "duck n. 鸭子", "kpSkill": "vocab_meaning", "kpSkillName": "词义" } ] }
中间结果: 学习过程配置

    ```
    # 重点句子 1
    音频文本：Go between the red duck and the blue duck.
    讲解文本：刚刚听到的音频中，包含了一个关键短语 between...and...，意思是“在……和……之间”，用来描述两个事物中间的位置哦。
    1. 听音选句
    Brainy：仔细听音频，选出你听到的句子吧。
    - Go behind the red duck and the blue duck.
      - Brainy：不对哦，这句话里的behind是“在……后面”的意思，我们听到的句子是描述在两只鸭子中间的位置，再试试吧。
    - Go between the red duck and the blue duck. [正确]
      - Brainy：太棒啦！你准确听出了句子里的重点短语between...and...，太厉害了！

    2. 听音选意
    Brainy：“走到红色鸭子和蓝色鸭子的后面”，这句话的意思是这个吗？
    - 对 / Yes
      - Brainy：不对哦，我们要注意表示位置的短语意思，再仔细回忆一下短语的含义吧。
    - 错 / No [正确]
      - Brainy：答对啦！between...and...是在两者之间的意思，你已经完全掌握这个句子的意思啦！
    ---
    # 完成反馈
    Brainy：很好！你已经回答完了全部问题，相信你已经听懂了这个任务中所有的重点句子。现在让我们来查看结果吧!
    ```

中间结果: 互动描述

    You took on the fun task of guiding everyone to herd the ducks, and picked the most suitable ways from the provided illustrations to make all the little ducks waddle safely back to their enclosure. (你承担了指挥大家赶鸭子的有趣任务，从给出的图示里选了最合适的方法，让所有小鸭子都摇摇摆摆安全回到了鸭圈里。)

原始组件配置 (可编辑后点击"执行重新生成")
【任务标题】 指挥大家赶鸭子 【任务背景】 鸭子大乱斗！手忙脚乱没有用，你现在得和伙伴们一起协作，把到处跑的鸭子赶进水里。快说说你的计划吧！ 【通关知识】 between prep. 在……中间 next to prep. 紧邻 duck n. 鸭子 【开场语】 无 【听力文本】 # 文本 1 Matt: Where should I go? User: Go between the red duck and the blue duck. User: Don't let them fight. # 文本 2 Ben: What about me? User: You are next to the blue duck. # 文本 3 Amber: And me? Where should I be? User: You are next to the red duck. User: Get it into the water! 【题目信息】 #单空选择 选项图片编号：00, 01,02 答案图片编号：00, 01,02 【学习过程】 句子 1 Go between the red duck and the blue duck.【between】 句子 2 You are next to the blue duck.【next to】 句子 3 You are next to the red duck.【next to】
26 核心听力选择 cId: 0000800 core_listening_choose
已保存 ▶
taskInfo

cType |
cId |
title |
sceneDesc |

key

[ { "desc": "", "keyList": [ { "type": "default", "content": "summer", "desc": "n. 夏天" }, { "type": "default", "content": "hot", "desc": "adj. 热的" }, { "type": "default", "content": "trousers", "desc": "n. 长裤" }, { "type": "default", "content": "shorts", "desc": "n. 短裤" }, { "type": "default", "content": "It feels...", "desc": "感觉......" }, { "type": "default", "content": "Could you...", "desc": "可以请你......吗？" } ] } ]

resourceMapping | { "Vicky": 658 }
cDesc | You had a conversation with the fishing uncle Jack, you told him it was so hot in summer and you wanted to get the shorts between the rocks. (你和钓鱼的杰克叔叔对话，告诉他夏天太热了，你想拿到岩石中间的短裤。) You answered that you needed the shorts, and Jack was ready to help you get the shorts that were placed among the rocks. (你回答你需要短裤，杰克准备好帮你拿到放在岩石中间的短裤了。)

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
{ "cType": "core_listening_choose", "cId": "0000800", "title": "请求路边钓鱼的叔叔帮忙", "sceneDesc": "心心念念的短裤原来卡在石头间了，快抓紧时间请钓鱼叔叔帮忙钓上来吧！", "key": [ { "desc": "", "keyList": [ { "type": "default", "content": "summer", "desc": "n. 夏天" }, { "type": "default", "content": "hot", "desc": "adj. 热的" }, { "type": "default", "content": "trousers", "desc": "n. 长裤" }, { "type": "default", "content": "shorts", "desc": "n. 短裤" }, { "type": "default", "content": "It feels...", "desc": "感觉......" }, { "type": "default", "content": "Could you...", "desc": "可以请你......吗？" } ] } ], "resourceMapping": { "Vicky": 658 }, "cDesc": "You had a conversation with the fishing uncle Jack, you told him it was so hot in summer and you wanted to get the shorts between the rocks. (你和钓鱼的杰克叔叔对话，告诉他夏天太热了，你想拿到岩石中间的短裤。)\nYou answered that you needed the shorts, and Jack was ready to help you get the shorts that were placed among the rocks. (你回答你需要短裤，杰克准备好帮你拿到放在岩石中间的短裤了。)" }
questionGroup
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
[ { "preDialog": [ { "type": "npc", "npcName": "Jack", "content": "Hello, kiddo. What's the matter?" } ], "dialogList": [ { "type": "npc", "npcName": "Jack", "content": "Why is your face so red?", "trans": "你的脸为什么这么红？", "isPoint": false }, { "type": "user", "content": "This summer! It feels so hot!", "trans": "今年夏天！天气太热了！", "isPoint": false }, { "type": "npc", "npcName": "Jack", "content": "Do you have any shorts?", "trans": "你有短裤吗？", "isPoint": false }, { "type": "user", "content": "No, I don't have shorts.", "trans": "不，我没有短裤。", "isPoint": false }, { "type": "user", "content": "I need the shorts between those rocks.", "trans": "我需要那些岩石中间的短裤。", "isPoint": false }, { "type": "npc", "npcName": "Jack", "content": "I see.", "trans": "我明白了。", "isPoint": false }, { "type": "user", "content": "Could you help me get the shorts?", "trans": "你能帮我拿一下短裤吗？", "isPoint": false }, { "type": "user", "content": "Please!", "trans": "拜托了！", "isPoint": false } ], "questionList": [ { "type": "npc", "npcName": "Sue", "content": "What season is it?", "optionList": [ { "option": "0000800_option_00.png", "feedback": { "type": "npc", "npcName": "Jack", "content": "I don't think so." } }, { "option": "0000800_option_01.png", "feedback": { "type": "npc", "npcName": "Jack", "content": "Yes. It is summer. It is hot." } }, { "option": "0000800_option_02.png", "feedback": { "type": "npc", "npcName": "Jack", "content": "I don't think so." } } ], "answer": [ 1 ] }, { "type": "npc", "npcName": "Sue", "content": "What do you need?", "optionList": [ { "option": "T-shirt.", "feedback": { "type": "npc", "npcName": "Jack", "content": "I didn't see it." } }, { "option": "Trousers.", "feedback": { "type": "npc", "npcName": "Jack", "content": "I didn't see them." } }, { "option": "Shorts.", "feedback": { "type": "npc", "npcName": "Jack", "content": "Got it." } } ], "answer": [ 2 ] }, { "type": "npc", "npcName": "Sue", "content": "What should Jack do?", "optionList": [ { "option": "0000800_option_03.png", "feedback": { "type": "npc", "npcName": "Jack", "content": "Got it." } }, { "option": "0000800_option_04.png", "feedback": { "type": "npc", "npcName": "Jack", "content": "I can't do that." } }, { "option": "0000800_option_05.png", "feedback": { "type": "npc", "npcName": "Jack", "content": "I can't do that." } } ], "answer": [ 0 ] } ], "postDialog": [] } ]
studyInfo

learningPart

[ { "type": "npc", "npcName": "Brainy", "content": "This summer!", "learning": [ { "question": { "content": "刚刚听到的音频中，包含了一个关键单词 summer，意思是夏天，是表示季节的名词哦。", "type": "npc", "npcName": "Brainy" }, "extendQuestion": { "content": "仔细听音频，你听到的是下面哪一个句子呢？", "type": "npc", "npcName": "Brainy" }, "optionList": [ { "option": "This summer!", "feedback": { "type": "npc", "content": "太棒啦！你精准听出了这句话里的重点单词summer！", "npcName": "Brainy" } }, { "option": "This winter!", "feedback": { "type": "npc", "content": "呀，这句话里说的是冬天winter，不是我们听到的夏天summer哦，再仔细听一遍音频试试吧。", "npcName": "Brainy" } } ], "answer": [ 0 ] }, { "question": { "content": "This summer!", "type": "npc", "npcName": "Brainy" }, "extendQuestion": { "content": "现在看看这句话，\"这是冬天！\"是这句话的中文意思吗？", "type": "npc", "npcName": "Brainy" }, "optionList": [ { "option": "对 / Yes", "feedback": { "type": "npc", "content": "不对哦，这句话里的重点单词是夏天，不是冬天，再想想看呀。", "npcName": "Brainy" } }, { "option": "错 / No", "feedback": { "type": "npc", "content": "答对啦！你已经掌握了summer的意思，这句话说的是“今年夏天！”哦。", "npcName": "Brainy" } } ], "answer": [ 1 ] } ] } ]

closing | { "type": "npc", "content": "很好！你已经回答完了全部问题，相信你已经听懂了这个任务中所有的重点句子。现在让我们来查看结果吧!", "npcName": "Brainy" }

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
{ "learningPart": [ { "type": "npc", "npcName": "Brainy", "content": "This summer!", "learning": [ { "question": { "content": "刚刚听到的音频中，包含了一个关键单词 summer，意思是夏天，是表示季节的名词哦。", "type": "npc", "npcName": "Brainy" }, "extendQuestion": { "content": "仔细听音频，你听到的是下面哪一个句子呢？", "type": "npc", "npcName": "Brainy" }, "optionList": [ { "option": "This summer!", "feedback": { "type": "npc", "content": "太棒啦！你精准听出了这句话里的重点单词summer！", "npcName": "Brainy" } }, { "option": "This winter!", "feedback": { "type": "npc", "content": "呀，这句话里说的是冬天winter，不是我们听到的夏天summer哦，再仔细听一遍音频试试吧。", "npcName": "Brainy" } } ], "answer": [ 0 ] }, { "question": { "content": "This summer!", "type": "npc", "npcName": "Brainy" }, "extendQuestion": { "content": "现在看看这句话，\"这是冬天！\"是这句话的中文意思吗？", "type": "npc", "npcName": "Brainy" }, "optionList": [ { "option": "对 / Yes", "feedback": { "type": "npc", "content": "不对哦，这句话里的重点单词是夏天，不是冬天，再想想看呀。", "npcName": "Brainy" } }, { "option": "错 / No", "feedback": { "type": "npc", "content": "答对啦！你已经掌握了summer的意思，这句话说的是“今年夏天！”哦。", "npcName": "Brainy" } } ], "answer": [ 1 ] } ] } ], "closing": { "type": "npc", "content": "很好！你已经回答完了全部问题，相信你已经听懂了这个任务中所有的重点句子。现在让我们来查看结果吧!", "npcName": "Brainy" } }
kpInfo JSON

pushType |
cType |
cId |

kpInfo

[ { "kpId": null, "kpType": "vocab", "kpTitle": "summer n. 夏天", "kpSkill": "vocab_meaning", "kpSkillName": "词义" }, { "kpId": null, "kpType": "vocab", "kpTitle": "hot adj. 热的", "kpSkill": "vocab_meaning", "kpSkillName": "词义" }, { "kpId": null, "kpType": "vocab", "kpTitle": "trousers n. 长裤", "kpSkill": "vocab_meaning", "kpSkillName": "词义" }, { "kpId": null, "kpType": "vocab", "kpTitle": "shorts n. 短裤", "kpSkill": "vocab_meaning", "kpSkillName": "词义" }, { "kpId": null, "kpType": "sentence", "kpTitle": "It feels... 感觉......", "kpSkill": "sentence_meaning", "kpSkillName": "语义" }, { "kpId": null, "kpType": "sentence", "kpTitle": "Could you... 可以请你......吗？", "kpSkill": "sentence_meaning", "kpSkillName": "语义" } ]

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
{ "pushType": "relationKp", "cType": "core_listening_choose", "cId": "0000800", "kpInfo": [ { "kpId": null, "kpType": "vocab", "kpTitle": "summer n. 夏天", "kpSkill": "vocab_meaning", "kpSkillName": "词义" }, { "kpId": null, "kpType": "vocab", "kpTitle": "hot adj. 热的", "kpSkill": "vocab_meaning", "kpSkillName": "词义" }, { "kpId": null, "kpType": "vocab", "kpTitle": "trousers n. 长裤", "kpSkill": "vocab_meaning", "kpSkillName": "词义" }, { "kpId": null, "kpType": "vocab", "kpTitle": "shorts n. 短裤", "kpSkill": "vocab_meaning", "kpSkillName": "词义" }, { "kpId": null, "kpType": "sentence", "kpTitle": "It feels... 感觉......", "kpSkill": "sentence_meaning", "kpSkillName": "语义" }, { "kpId": null, "kpType": "sentence", "kpTitle": "Could you... 可以请你......吗？", "kpSkill": "sentence_meaning", "kpSkillName": "语义" } ] }
中间结果: 学习过程配置

    ```
    # 重点句子 1
    音频文本：This summer!
    讲解文本：刚刚听到的音频中，包含了一个关键单词 summer，意思是夏天，是表示季节的名词哦。
    1. 听音选句
    Brainy：仔细听音频，你听到的是下面哪一个句子呢？
    - This summer! [正确]
      - Brainy：太棒啦！你精准听出了这句话里的重点单词summer！
    - This winter!
      - Brainy：呀，这句话里说的是冬天winter，不是我们听到的夏天summer哦，再仔细听一遍音频试试吧。

    2. 听音选意
    Brainy：现在看看这句话，"这是冬天！"是这句话的中文意思吗？
    - 对 / Yes
      - Brainy：不对哦，这句话里的重点单词是夏天，不是冬天，再想想看呀。
    - 错 / No [正确]
      - Brainy：答对啦！你已经掌握了summer的意思，这句话说的是“今年夏天！”哦。
    ---
    # 完成反馈
    Brainy：很好！你已经回答完了全部问题，相信你已经听懂了这个任务中所有的重点句子。现在让我们来查看结果吧!
    ```

中间结果: 互动描述

    You had a conversation with the fishing uncle Jack, you told him it was so hot in summer and you wanted to get the shorts between the rocks. (你和钓鱼的杰克叔叔对话，告诉他夏天太热了，你想拿到岩石中间的短裤。)
    You answered that you needed the shorts, and Jack was ready to help you get the shorts that were placed among the rocks. (你回答你需要短裤，杰克准备好帮你拿到放在岩石中间的短裤了。)

原始组件配置 (可编辑后点击"执行重新生成")
【任务标题】 请求路边钓鱼的叔叔帮忙 【任务背景】 心心念念的短裤原来卡在石头间了，快抓紧时间请钓鱼叔叔帮忙钓上来吧！ 【通关知识】 summer n. 夏天 hot adj. 热的 trousers n. 长裤 shorts n. 短裤 It feels... 感觉...... Could you... 可以请你......吗？ 【题目组1】 #开场语 Jack: Hello, kiddo. What's the matter? #听力文本 Jack: Why is your face so red? User: This summer! It feels so hot! Jack: Do you have any shorts? User: No, I don't have shorts. User: I need the shorts between those rocks. Jack: I see. User: Could you help me get the shorts? User: Please! #题目1 ##题目类型：图片 ##题目内容： Sue: What season is it? A. 00 错误 Jack：I don't think so. B. 01 正确 Jack：Yes. It is summer. It is hot. C. 02 错误 Jack：I don't think so. #结束语 无 #题目2 ##题目类型：文本 ##题目内容： Sue: What do you need? A. T-shirt. 错误 Jack：I didn't see it. B. Trousers. 错误 Jack：I didn't see them. C. Shorts. 正确 Jack：Got it. #结束语 无 #题目3 ##题目类型：图片 ##题目内容： Sue: What should Jack do? A. 03 正确 Jack：Got it. B. 04 错误 Jack：I can't do that. C. 05 错误 Jack：I can't do that. #结束语 无 【学习过程】 句子1 This summer!【summer】 句子 2 It is hot!【hot】 句子 3 I need the shorts between those rocks.【shorts】 句子 4 Could you help me get the shorts?【Could you...】
27 核心看图组句 cId: 0000800 core_writing_imgMakeSentence
已保存 ▶
taskInfo

cId |
cType |
title |
taskDesc |
sceneDesc | 在森林中，Otis、Skylar 和你通过小熊猫 Bam 和无人机照片搜集到了关于飞船坠落的重要线索。你们需要将这些信息整理并汇报给 Luisa 教授，以便确定飞船的具体坠落位置。
img |
plotSummary | I saw a very cute kitten in the pet shop yesterday. The pattern on his body is black and white, like a cow. It's a month old and perfect for breeding.
stemDesc | [ "0000800-01.png", "0000800-00.png" ]
key | [ { "keyList": [ { "type": "default", "content": "I think the spaceship fell...", "desc": "我认为飞船坠落在……" }, { "type": "default", "content": "I saw trees with...", "desc": "我看到有…… 的树。" }, { "type": "default", "content": "I heard a loud noise in...", "desc": "我听到…… 方向有巨大的声音。" } ] } ]
cDesc | Dear Alex, I hope this email finds you well. We can take care of each other.（亲爱的亚历克斯，希望你一切都好。我们可以互相照顾。）

1234567891011121314151617181920212223242526272829303132333435
{ "cId": "0000800", "cType": "core_writing_imgMakeSentence", "title": "报告飞船坠毁事件", "taskDesc": "请根据图片内容，用英文写一段求救报告，说明你们现在的处境、遇到的困难和需要的帮助。", "sceneDesc": "在森林中，Otis、Skylar 和你通过小熊猫 Bam 和无人机照片搜集到了关于飞船坠落的重要线索。你们需要将这些信息整理并汇报给 Luisa 教授，以便确定飞船的具体坠落位置。", "img": "", "plotSummary": "I saw a very cute kitten in the pet shop yesterday. The pattern on his body is black and white, like a cow. It's a month old and perfect for breeding.", "stemDesc": [ "0000800-01.png", "0000800-00.png" ], "key": [ { "keyList": [ { "type": "default", "content": "I think the spaceship fell...", "desc": "我认为飞船坠落在……" }, { "type": "default", "content": "I saw trees with...", "desc": "我看到有…… 的树。" }, { "type": "default", "content": "I heard a loud noise in...", "desc": "我听到…… 方向有巨大的声音。" } ] } ], "cDesc": "Dear Alex, I hope this email finds you well. We can take care of each other.（亲爱的亚历克斯，希望你一切都好。我们可以互相照顾。）" }
textInfo

inputType |
passCondition |

textList

[ { "mode": "preset", "desc": "Dear Alex," }, { "mode": "universalInput", "optionList": [ { "option": "well" }, { "option": "this email" }, { "option": "you" }, { "option": "finds" }, { "option": "I hope" }, { "option": "fine" } ], "answer": [ 4, 1, 3, 2, 0 ] }, { "mode": "fillingInput", "desc": "We can ___ each other.", "optionList": [ { "option": "of" }, { "option": "take" }, { "option": "care" }, { "option": "look" }, { "option": "for" } ], "answer": [ 1, 2, 0 ] } ]

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
{ "inputType": "sentence", "passCondition": "用户写出：1. 坠机在一个湖附近 2. 湖周边树木有红黄色的叶子 3. Bam 听到东北方向的噪音", "textList": [ { "mode": "preset", "desc": "Dear Alex," }, { "mode": "universalInput", "optionList": [ { "option": "well" }, { "option": "this email" }, { "option": "you" }, { "option": "finds" }, { "option": "I hope" }, { "option": "fine" } ], "answer": [ 4, 1, 3, 2, 0 ] }, { "mode": "fillingInput", "desc": "We can ___ each other.", "optionList": [ { "option": "of" }, { "option": "take" }, { "option": "care" }, { "option": "look" }, { "option": "for" } ], "answer": [ 1, 2, 0 ] } ] }
studyInfo

learningPart

[ { "leadIn": { "image": "0000800-01.png" }, "learning": [ { "question": { "type": "npc", "npcName": "Brainy", "content": "你们整理好了搜集到的线索，现在要向Luisa教授汇报你推测的飞船坠落位置，你会怎么开口说？" }, "optionList": [ { "option": "I think the spaceship fell...", "feedback": { "type": "npc", "npcName": "Brainy", "content": "回答正确！这句话刚好用来引出你对飞船坠落位置的推测，非常贴合汇报的场景。" } }, { "option": "I saw trees with...", "feedback": { "type": "npc", "npcName": "Brainy", "content": "这句话是用来描述你看到的树的特征，不是表达对飞船坠落位置的推测哦，再试试看吧。" } }, { "option": "I heard a loud noise in...", "feedback": { "type": "npc", "npcName": "Brainy", "content": "这句话是用来描述你听到的声响的方位，不是直接说明你推测的飞船坠落位置，再试一次吧。" } } ], "answer": [ 0 ], "write": { "desc": "I think the spaceship fell...", "trans": "我认为飞船坠落在……" }, "feedback": { "type": "npc", "npcName": "Brainy", "content": "你写的很好！" } } ] }, { "leadIn": { "image": "0000800-00.png" }, "learning": [ { "question": { "type": "npc", "npcName": "Brainy", "content": "你要向教授描述无人机照片里拍到的特殊树木特征，补充飞船坠落的相关线索，你会怎么说？" }, "optionList": [ { "option": "I think the spaceship fell...", "feedback": { "type": "npc", "npcName": "Brainy", "content": "这句话是用来表达你对飞船坠落位置的推测，不是描述树木特征的哦，再试试看吧。" } }, { "option": "I saw trees with...", "feedback": { "type": "npc", "npcName": "Brainy", "content": "太棒了！这句话正好可以用来介绍你观察到的树木的特殊情况，是很重要的现场线索说明。" } }, { "option": "I heard a loud noise in...", "feedback": { "type": "npc", "npcName": "Brainy", "content": "这句话是用来描述你听到的声响的方位，不是描述你看到的树木特征，再试一次吧。" } } ], "answer": [ 1 ], "write": { "desc": "I saw trees with...", "trans": "我看到有……的树。" }, "feedback": { "type": "npc", "npcName": "Brainy", "content": "你写的很好！" } } ] }, { "leadIn": { "image": "0000800-01.png" }, "learning": [ { "question": { "type": "npc", "npcName": "Brainy", "content": "你要告诉教授你当时听到异常声响的方位，辅助判断飞船坠落的区域，你会怎么表述？" }, "optionList": [ { "option": "I think the spaceship fell...", "feedback": { "type": "npc", "npcName": "Brainy", "content": "这句话是用来表达你对飞船坠落位置的推测，不是描述你听到的声响信息哦，再试试看吧。" } }, { "option": "I saw trees with...", "feedback": { "type": "npc", "npcName": "Brainy", "content": "这句话是用来描述你看到的树的特征，不是描述你听到的声响的方位，再试一次吧。" } }, { "option": "I heard a loud noise in...", "feedback": { "type": "npc", "npcName": "Brainy", "content": "完全正确！用这句话说明声响的方位，能很好地帮助教授确定飞船的坠落区域，逻辑很通顺。" } } ], "answer": [ 2 ], "write": { "desc": "I heard a loud noise in...", "trans": "我听到……方向有巨大的声音。" }, "feedback": { "type": "npc", "npcName": "Brainy", "content": "你写的很好！" } } ] } ]

closing | { "type": "npc", "npcName": "Brainy", "content": "恭喜你，可以使用准确的句型 I think the spaceship fell...、I saw trees with... 和 I heard a loud noise in...，完成了向Luisa教授汇报飞船坠落线索的内容写作！" }

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
{ "learningPart": [ { "leadIn": { "image": "0000800-01.png" }, "learning": [ { "question": { "type": "npc", "npcName": "Brainy", "content": "你们整理好了搜集到的线索，现在要向Luisa教授汇报你推测的飞船坠落位置，你会怎么开口说？" }, "optionList": [ { "option": "I think the spaceship fell...", "feedback": { "type": "npc", "npcName": "Brainy", "content": "回答正确！这句话刚好用来引出你对飞船坠落位置的推测，非常贴合汇报的场景。" } }, { "option": "I saw trees with...", "feedback": { "type": "npc", "npcName": "Brainy", "content": "这句话是用来描述你看到的树的特征，不是表达对飞船坠落位置的推测哦，再试试看吧。" } }, { "option": "I heard a loud noise in...", "feedback": { "type": "npc", "npcName": "Brainy", "content": "这句话是用来描述你听到的声响的方位，不是直接说明你推测的飞船坠落位置，再试一次吧。" } } ], "answer": [ 0 ], "write": { "desc": "I think the spaceship fell...", "trans": "我认为飞船坠落在……" }, "feedback": { "type": "npc", "npcName": "Brainy", "content": "你写的很好！" } } ] }, { "leadIn": { "image": "0000800-00.png" }, "learning": [ { "question": { "type": "npc", "npcName": "Brainy", "content": "你要向教授描述无人机照片里拍到的特殊树木特征，补充飞船坠落的相关线索，你会怎么说？" }, "optionList": [ { "option": "I think the spaceship fell...", "feedback": { "type": "npc", "npcName": "Brainy", "content": "这句话是用来表达你对飞船坠落位置的推测，不是描述树木特征的哦，再试试看吧。" } }, { "option": "I saw trees with...", "feedback": { "type": "npc", "npcName": "Brainy", "content": "太棒了！这句话正好可以用来介绍你观察到的树木的特殊情况，是很重要的现场线索说明。" } }, { "option": "I heard a loud noise in...", "feedback": { "type": "npc", "npcName": "Brainy", "content": "这句话是用来描述你听到的声响的方位，不是描述你看到的树木特征，再试一次吧。" } } ], "answer": [ 1 ], "write": { "desc": "I saw trees with...", "trans": "我看到有……的树。" }, "feedback": { "type": "npc", "npcName": "Brainy", "content": "你写的很好！" } } ] }, { "leadIn": { "image": "0000800-01.png" }, "learning": [ { "question": { "type": "npc", "npcName": "Brainy", "content": "你要告诉教授你当时听到异常声响的方位，辅助判断飞船坠落的区域，你会怎么表述？" }, "optionList": [ { "option": "I think the spaceship fell...", "feedback": { "type": "npc", "npcName": "Brainy", "content": "这句话是用来表达你对飞船坠落位置的推测，不是描述你听到的声响信息哦，再试试看吧。" } }, { "option": "I saw trees with...", "feedback": { "type": "npc", "npcName": "Brainy", "content": "这句话是用来描述你看到的树的特征，不是描述你听到的声响的方位，再试一次吧。" } }, { "option": "I heard a loud noise in...", "feedback": { "type": "npc", "npcName": "Brainy", "content": "完全正确！用这句话说明声响的方位，能很好地帮助教授确定飞船的坠落区域，逻辑很通顺。" } } ], "answer": [ 2 ], "write": { "desc": "I heard a loud noise in...", "trans": "我听到……方向有巨大的声音。" }, "feedback": { "type": "npc", "npcName": "Brainy", "content": "你写的很好！" } } ] } ], "closing": { "type": "npc", "npcName": "Brainy", "content": "恭喜你，可以使用准确的句型 I think the spaceship fell...、I saw trees with... 和 I heard a loud noise in...，完成了向Luisa教授汇报飞船坠落线索的内容写作！" } }
evalInfo

title |
taskDesc |
sceneDesc | 在森林中，Otis、Skylar 和你通过小熊猫 Bam 和无人机照片搜集到了关于飞船坠落的重要线索。你们需要将这些信息整理并汇报给 Luisa 教授，以便确定飞船的具体坠落位置。
knowledge | - 地点描述 I think the spaceship fell... 我认为飞船坠落在…… I saw trees with... 我看到有…… 的树。 I heard a loud noise in... 我听到…… 方向有巨大的声音。
passCondition |

textList

[ { "mode": "preset", "desc": "Dear Alex," }, { "mode": "universalInput", "optionList": [ { "option": "well" }, { "option": "this email" }, { "option": "you" }, { "option": "finds" }, { "option": "I hope" }, { "option": "fine" } ], "answer": [ 4, 1, 3, 2, 0 ] }, { "mode": "fillingInput", "desc": "We can ___ each other.", "optionList": [ { "option": "of" }, { "option": "take" }, { "option": "care" }, { "option": "look" }, { "option": "for" } ], "answer": [ 1, 2, 0 ] } ]

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
{ "title": "报告飞船坠毁事件", "taskDesc": "请根据图片内容，用英文写一段求救报告，说明你们现在的处境、遇到的困难和需要的帮助。", "sceneDesc": "在森林中，Otis、Skylar 和你通过小熊猫 Bam 和无人机照片搜集到了关于飞船坠落的重要线索。你们需要将这些信息整理并汇报给 Luisa 教授，以便确定飞船的具体坠落位置。", "knowledge": "- 地点描述\nI think the spaceship fell... 我认为飞船坠落在……\nI saw trees with... 我看到有…… 的树。\nI heard a loud noise in... 我听到…… 方向有巨大的声音。", "passCondition": "用户写出：1. 坠机在一个湖附近 2. 湖周边树木有红黄色的叶子 3. Bam 听到东北方向的噪音", "textList": [ { "mode": "preset", "desc": "Dear Alex," }, { "mode": "universalInput", "optionList": [ { "option": "well" }, { "option": "this email" }, { "option": "you" }, { "option": "finds" }, { "option": "I hope" }, { "option": "fine" } ], "answer": [ 4, 1, 3, 2, 0 ] }, { "mode": "fillingInput", "desc": "We can ___ each other.", "optionList": [ { "option": "of" }, { "option": "take" }, { "option": "care" }, { "option": "look" }, { "option": "for" } ], "answer": [ 1, 2, 0 ] } ] }
kpInfo JSON

pushType |
cType |
cId |

kpInfo

[ { "kpId": null, "kpType": "vocab", "kpTitle": "- 地点描述", "kpSkill": "vocab_meaning", "kpSkillName": "词义" }, { "kpId": null, "kpType": "sentence", "kpTitle": "I think the spaceship fell... 我认为飞船坠落在……", "kpSkill": "sentence_meaning", "kpSkillName": "语义" }, { "kpId": null, "kpType": "sentence", "kpTitle": "I saw trees with... 我看到有…… 的树。", "kpSkill": "sentence_meaning", "kpSkillName": "语义" }, { "kpId": null, "kpType": "sentence", "kpTitle": "I heard a loud noise in... 我听到…… 方向有巨大的声音。", "kpSkill": "sentence_meaning", "kpSkillName": "语义" } ]

1234567891011121314151617181920212223242526272829303132333435
{ "pushType": "relationKp", "cType": "core_writing_imgMakeSentence", "cId": "0000800", "kpInfo": [ { "kpId": null, "kpType": "vocab", "kpTitle": "- 地点描述", "kpSkill": "vocab_meaning", "kpSkillName": "词义" }, { "kpId": null, "kpType": "sentence", "kpTitle": "I think the spaceship fell... 我认为飞船坠落在……", "kpSkill": "sentence_meaning", "kpSkillName": "语义" }, { "kpId": null, "kpType": "sentence", "kpTitle": "I saw trees with... 我看到有…… 的树。", "kpSkill": "sentence_meaning", "kpSkillName": "语义" }, { "kpId": null, "kpType": "sentence", "kpTitle": "I heard a loud noise in... 我听到…… 方向有巨大的声音。", "kpSkill": "sentence_meaning", "kpSkillName": "语义" } ] }
中间结果: 学习流程配置

    ```
    # 问题1：
    Brainy: 你们整理好了搜集到的线索，现在要向Luisa教授汇报你推测的飞船坠落位置，你会怎么开口说？
    用户选项:
    （选项 A）I think the spaceship fell... [正确]
      Brainy: 回答正确！这句话刚好用来引出你对飞船坠落位置的推测，非常贴合汇报的场景。
    （选项 B）I saw trees with...
      Brainy: 这句话是用来描述你看到的树的特征，不是表达对飞船坠落位置的推测哦，再试试看吧。
    （选项 C）I heard a loud noise in...
      Brainy: 这句话是用来描述你听到的声响的方位，不是直接说明你推测的飞船坠落位置，再试一次吧。

    # 问题2：
    Brainy: 你要向教授描述无人机照片里拍到的特殊树木特征，补充飞船坠落的相关线索，你会怎么说？
    用户选项:
    （选项 A）I think the spaceship fell...
      Brainy: 这句话是用来表达你对飞船坠落位置的推测，不是描述树木特征的哦，再试试看吧。
    （选项 B）I saw trees with... [正确]
      Brainy: 太棒了！这句话正好可以用来介绍你观察到的树木的特殊情况，是很重要的现场线索说明。
    （选项 C）I heard a loud noise in...
      Brainy: 这句话是用来描述你听到的声响的方位，不是描述你看到的树木特征，再试一次吧。

    # 问题3：
    Brainy: 你要告诉教授你当时听到异常声响的方位，辅助判断飞船坠落的区域，你会怎么表述？
    用户选项:
    （选项 A）I think the spaceship fell...
      Brainy: 这句话是用来表达你对飞船坠落位置的推测，不是描述你听到的声响信息哦，再试试看吧。
    （选项 B）I saw trees with...
      Brainy: 这句话是用来描述你看到的树的特征，不是描述你听到的声响的方位，再试一次吧。
    （选项 C）I heard a loud noise in... [正确]
      Brainy: 完全正确！用这句话说明声响的方位，能很好地帮助教授确定飞船的坠落区域，逻辑很通顺。
    ```

中间结果: 互动描述

    Dear Alex, I hope this email finds you well. We can take care of each other.（亲爱的亚历克斯，希望你一切都好。我们可以互相照顾。）

原始组件配置 (可编辑后点击"执行重新生成")
【任务名称】 报告飞船坠毁事件 【任务背景】 在森林中，Otis、Skylar 和你通过小熊猫 Bam 和无人机照片搜集到了关于飞船坠落的重要线索。你们需要将这些信息整理并汇报给 Luisa 教授，以便确定飞船的具体坠落位置。 【任务描述】 请根据图片内容，用英文写一段求救报告，说明你们现在的处境、遇到的困难和需要的帮助。 【剧情提要】 *可选配置* I saw a very cute kitten in the pet shop yesterday. The pattern on his body is black and white, like a cow. It's a month old and perfect for breeding. 【题干类型】 图片 【题干描述】 3 【知识】 - 地点描述 I think the spaceship fell... 我认为飞船坠落在…… I saw trees with... 我看到有…… 的树。 I heard a loud noise in... 我听到…… 方向有巨大的声音。 【写作类型】 组句 【写作材料】 # 句子 1 ## 句子类型 全句预置 ## 句子内容 1. 句子主干 Dear Alex, 2. 选项 / 3. 答案 / # 句子 2 ## 句子类型 全句录入 ## 句子内容 1. 句子主干 / 2. 选项 - well - this email - you - finds - I hope - [干扰]：fine 3. 答案 I hope this email finds you well. ## 图片编号 01 # 句子 3 ## 句子类型 挖空录入 ## 句子内容 ``` 1. 句子主干 We can ___ each other. 2. 选项 - of - take - care - [干扰]：look - [干扰]：for 3. 答案 take care of ``` ## 图片编号 00 【通过规则】 用户写出： 1. 坠机在一个湖附近 2. 湖周边树木有红黄色的叶子 3. Bam 听到东北方向的噪音
28 核心看图撰写 cId: 0000800 core_writing_imgWrite
已保存 ▶
taskInfo

cId |
cType |
title |
taskDesc |
sceneDesc |
img |
plotSummary |
stemDesc | [ "0000800-00.png", "0000800-01.png", "0000800-02.png" ]
key | [ { "keyList": [ { "type": "default", "content": "elephant", "desc": "n. 大象" }, { "type": "default", "content": "banana", "desc": "n. 香蕉" }, { "type": "default", "content": "shower", "desc": "n. 淋浴、洗澡" }, { "type": "default", "content": "... love(s) to...", "desc": "……喜爱……" } ] } ]
cDesc | Animal Keeper's Record Animal type: Elephant Food: She ate bananas. Cleaning: She had a shower today. What does she love? The elephant loves showers and bananas!（动物饲养员记录动物种类：大象食物：她吃了香蕉。清洁：她今天洗了澡。她喜欢什么呢？这头大象喜欢洗澡和香蕉！）

1234567891011121314151617181920212223242526272829303132333435363738394041
{ "cId": "0000800", "cType": "core_writing_imgWrite", "title": "填写大象护理记录", "taskDesc": "根据图片内容，填写大象护理报告。", "sceneDesc": "粗心的大象饲养员忘记给大象洗澡了！真是照顾不周。你们给大象洗了澡，还喂了香蕉，现在把这些都记在护理记录上吧！", "img": "", "plotSummary": "", "stemDesc": [ "0000800-00.png", "0000800-01.png", "0000800-02.png" ], "key": [ { "keyList": [ { "type": "default", "content": "elephant", "desc": "n. 大象" }, { "type": "default", "content": "banana", "desc": "n. 香蕉" }, { "type": "default", "content": "shower", "desc": "n. 淋浴、洗澡" }, { "type": "default", "content": "... love(s) to...", "desc": "……喜爱……" } ] } ], "cDesc": "Animal Keeper's Record Animal type: Elephant Food: She ate bananas. Cleaning: She had a shower today. What does she love? The elephant loves showers and bananas!（动物饲养员记录动物种类：大象食物：她吃了香蕉。清洁：她今天洗了澡。她喜欢什么呢？这头大象喜欢洗澡和香蕉！）" }
textInfo

inputType |
passCondition |

textList

[ { "mode": "preset", "desc": "Animal Keeper's Record", "answerText": "" }, { "mode": "fillingInput", "desc": "Animal type: ___ ", "answerText": "Elephant", "hint": "动物种类：大象（Elephant）" }, { "mode": "fillingInput", "desc": "Food: She ate ___ .", "answerText": "bananas", "hint": "食物：她吃了香蕉（bananas）。" }, { "mode": "fillingInput", "desc": "Cleaning: She had ___ today. ", "answerText": "a shower", "hint": "清洁：她今天洗了澡（a shower）。" }, { "mode": "preset", "desc": "What does she love?", "answerText": "" }, { "mode": "universalInput", "answerText": "The elephant loves showers and bananas!", "hint": "这头大象喜欢洗澡和香蕉！（The elephant loves showers and bananas!）" } ]

123456789101112131415161718192021222324252627282930313233343536373839
{ "inputType": "write", "passCondition": "说明动物类型是大象。说明大象吃了香蕉。说明大象洗了澡。表达大象喜欢香蕉和洗澡。", "textList": [ { "mode": "preset", "desc": "Animal Keeper's Record", "answerText": "" }, { "mode": "fillingInput", "desc": "Animal type: ___ ", "answerText": "Elephant", "hint": "动物种类：大象（Elephant）" }, { "mode": "fillingInput", "desc": "Food: She ate ___ .", "answerText": "bananas", "hint": "食物：她吃了香蕉（bananas）。" }, { "mode": "fillingInput", "desc": "Cleaning: She had ___ today. ", "answerText": "a shower", "hint": "清洁：她今天洗了澡（a shower）。" }, { "mode": "preset", "desc": "What does she love?", "answerText": "" }, { "mode": "universalInput", "answerText": "The elephant loves showers and bananas!", "hint": "这头大象喜欢洗澡和香蕉！（The elephant loves showers and bananas!）" } ] }
studyInfo

learningPart

[ { "leadIn": { "image": "0000800-00.png" }, "learning": [ { "question": { "type": "npc", "npcName": "Brainy", "content": "护理记录的第一栏要填写动物的种类，你需要在横线上填上对应的单词。" }, "optionList": [ { "option": "elephant", "feedback": { "type": "npc", "npcName": "Brainy", "content": "答对啦！我们今天护理的动物是大象，所以动物类型栏填elephant是完全正确的。" } }, { "option": "banana", "feedback": { "type": "npc", "npcName": "Brainy", "content": "不对哦，banana是香蕉，属于食物，不是动物类型。再想想我们今天照顾的是什么动物呀？" } }, { "option": "shower", "feedback": { "type": "npc", "npcName": "Brainy", "content": "不对哦，shower是洗澡的意思，属于清洁护理的内容，不是动物类型。再想想我们今天照顾的是什么动物呀？" } } ], "answer": [ 0 ], "write": { "desc": "elephant", "trans": "大象" }, "feedback": { "type": "npc", "npcName": "Brainy", "content": "你写的很好！" } } ] }, { "leadIn": { "image": "0000800-01.png" }, "learning": [ { "question": { "type": "npc", "npcName": "Brainy", "content": "接下来要填写饮食栏，记录大象今天吃了什么，请你选对合适的单词填到横线上。" }, "optionList": [ { "option": "elephant", "feedback": { "type": "npc", "npcName": "Brainy", "content": "不对哦，elephant是大象本身，我们总不能让大象吃自己呀~ 再想想我们今天喂给大象什么食物了？" } }, { "option": "bananas", "feedback": { "type": "npc", "npcName": "Brainy", "content": "太棒了！我们今天喂大象吃了香蕉，所以饮食栏填bananas完全符合实际情况。" } }, { "option": "shower", "feedback": { "type": "npc", "npcName": "Brainy", "content": "不对哦，shower是洗澡，属于清洁项目，不是食物。再想想我们今天喂给大象什么食物了？" } } ], "answer": [ 1 ], "write": { "desc": "bananas", "trans": "香蕉" }, "feedback": { "type": "npc", "npcName": "Brainy", "content": "你写的很好！" } } ] }, { "leadIn": { "image": "0000800-02.png" }, "learning": [ { "question": { "type": "npc", "npcName": "Brainy", "content": "现在填写清洁护理栏，记录大象今天做了什么清洁项目，请你选对合适的表达填到横线上。" }, "optionList": [ { "option": "elephant", "feedback": { "type": "npc", "npcName": "Brainy", "content": "不对哦，elephant是大象，不是清洁项目。再想想我们今天帮大象做了什么清洁工作呀？" } }, { "option": "bananas", "feedback": { "type": "npc", "npcName": "Brainy", "content": "不对哦，bananas是香蕉，属于食物，和清洁护理没有关系。再想想我们今天帮大象做了什么清洁工作呀？" } }, { "option": "a shower", "feedback": { "type": "npc", "npcName": "Brainy", "content": "完全正确！我们今天帮大象洗了澡，所以清洁栏填a shower是对的。" } } ], "answer": [ 2 ], "write": { "desc": "a shower", "trans": "洗澡" }, "feedback": { "type": "npc", "npcName": "Brainy", "content": "你写的很好！" } } ] } ]

closing | { "type": "npc", "npcName": "Brainy", "content": "恭喜你，可以使用准确的单词elephant、banana、shower以及句式... love(s) to...，描述了三张图中的各个细节!" }

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
{ "learningPart": [ { "leadIn": { "image": "0000800-00.png" }, "learning": [ { "question": { "type": "npc", "npcName": "Brainy", "content": "护理记录的第一栏要填写动物的种类，你需要在横线上填上对应的单词。" }, "optionList": [ { "option": "elephant", "feedback": { "type": "npc", "npcName": "Brainy", "content": "答对啦！我们今天护理的动物是大象，所以动物类型栏填elephant是完全正确的。" } }, { "option": "banana", "feedback": { "type": "npc", "npcName": "Brainy", "content": "不对哦，banana是香蕉，属于食物，不是动物类型。再想想我们今天照顾的是什么动物呀？" } }, { "option": "shower", "feedback": { "type": "npc", "npcName": "Brainy", "content": "不对哦，shower是洗澡的意思，属于清洁护理的内容，不是动物类型。再想想我们今天照顾的是什么动物呀？" } } ], "answer": [ 0 ], "write": { "desc": "elephant", "trans": "大象" }, "feedback": { "type": "npc", "npcName": "Brainy", "content": "你写的很好！" } } ] }, { "leadIn": { "image": "0000800-01.png" }, "learning": [ { "question": { "type": "npc", "npcName": "Brainy", "content": "接下来要填写饮食栏，记录大象今天吃了什么，请你选对合适的单词填到横线上。" }, "optionList": [ { "option": "elephant", "feedback": { "type": "npc", "npcName": "Brainy", "content": "不对哦，elephant是大象本身，我们总不能让大象吃自己呀~ 再想想我们今天喂给大象什么食物了？" } }, { "option": "bananas", "feedback": { "type": "npc", "npcName": "Brainy", "content": "太棒了！我们今天喂大象吃了香蕉，所以饮食栏填bananas完全符合实际情况。" } }, { "option": "shower", "feedback": { "type": "npc", "npcName": "Brainy", "content": "不对哦，shower是洗澡，属于清洁项目，不是食物。再想想我们今天喂给大象什么食物了？" } } ], "answer": [ 1 ], "write": { "desc": "bananas", "trans": "香蕉" }, "feedback": { "type": "npc", "npcName": "Brainy", "content": "你写的很好！" } } ] }, { "leadIn": { "image": "0000800-02.png" }, "learning": [ { "question": { "type": "npc", "npcName": "Brainy", "content": "现在填写清洁护理栏，记录大象今天做了什么清洁项目，请你选对合适的表达填到横线上。" }, "optionList": [ { "option": "elephant", "feedback": { "type": "npc", "npcName": "Brainy", "content": "不对哦，elephant是大象，不是清洁项目。再想想我们今天帮大象做了什么清洁工作呀？" } }, { "option": "bananas", "feedback": { "type": "npc", "npcName": "Brainy", "content": "不对哦，bananas是香蕉，属于食物，和清洁护理没有关系。再想想我们今天帮大象做了什么清洁工作呀？" } }, { "option": "a shower", "feedback": { "type": "npc", "npcName": "Brainy", "content": "完全正确！我们今天帮大象洗了澡，所以清洁栏填a shower是对的。" } } ], "answer": [ 2 ], "write": { "desc": "a shower", "trans": "洗澡" }, "feedback": { "type": "npc", "npcName": "Brainy", "content": "你写的很好！" } } ] } ], "closing": { "type": "npc", "npcName": "Brainy", "content": "恭喜你，可以使用准确的单词elephant、banana、shower以及句式... love(s) to...，描述了三张图中的各个细节!" } }
evalInfo

title |
taskDesc |
sceneDesc |
knowledge | elephant n. 大象 banana n. 香蕉 shower n. 淋浴、洗澡 ... love(s) to... ……喜爱……
passCondition |

textList

[ { "mode": "preset", "desc": "Animal Keeper's Record", "answerText": "" }, { "mode": "fillingInput", "desc": "Animal type: ___ ", "answerText": "Elephant", "hint": "动物种类：大象（Elephant）" }, { "mode": "fillingInput", "desc": "Food: She ate ___ .", "answerText": "bananas", "hint": "食物：她吃了香蕉（bananas）。" }, { "mode": "fillingInput", "desc": "Cleaning: She had ___ today. ", "answerText": "a shower", "hint": "清洁：她今天洗了澡（a shower）。" }, { "mode": "preset", "desc": "What does she love?", "answerText": "" }, { "mode": "universalInput", "answerText": "The elephant loves showers and bananas!", "hint": "这头大象喜欢洗澡和香蕉！（The elephant loves showers and bananas!）" } ]

123456789101112131415161718192021222324252627282930313233343536373839404142
{ "title": "填写大象护理记录", "taskDesc": "根据图片内容，填写大象护理报告。", "sceneDesc": "粗心的大象饲养员忘记给大象洗澡了！真是照顾不周。你们给大象洗了澡，还喂了香蕉，现在把这些都记在护理记录上吧！", "knowledge": "elephant n. 大象\nbanana n. 香蕉\nshower n. 淋浴、洗澡\n... love(s) to... ……喜爱……", "passCondition": "说明动物类型是大象。说明大象吃了香蕉。说明大象洗了澡。表达大象喜欢香蕉和洗澡。", "textList": [ { "mode": "preset", "desc": "Animal Keeper's Record", "answerText": "" }, { "mode": "fillingInput", "desc": "Animal type: ___ ", "answerText": "Elephant", "hint": "动物种类：大象（Elephant）" }, { "mode": "fillingInput", "desc": "Food: She ate ___ .", "answerText": "bananas", "hint": "食物：她吃了香蕉（bananas）。" }, { "mode": "fillingInput", "desc": "Cleaning: She had ___ today. ", "answerText": "a shower", "hint": "清洁：她今天洗了澡（a shower）。" }, { "mode": "preset", "desc": "What does she love?", "answerText": "" }, { "mode": "universalInput", "answerText": "The elephant loves showers and bananas!", "hint": "这头大象喜欢洗澡和香蕉！（The elephant loves showers and bananas!）" } ] }
kpInfo JSON

pushType |
cType |
cId |

kpInfo

[ { "kpId": null, "kpType": "vocab", "kpTitle": "elephant n. 大象", "kpSkill": "vocab_meaning", "kpSkillName": "词义" }, { "kpId": null, "kpType": "vocab", "kpTitle": "banana n. 香蕉", "kpSkill": "vocab_meaning", "kpSkillName": "词义" }, { "kpId": null, "kpType": "vocab", "kpTitle": "shower n. 淋浴、洗澡", "kpSkill": "vocab_meaning", "kpSkillName": "词义" }, { "kpId": null, "kpType": "sentence", "kpTitle": "... love(s) to... ……喜爱……", "kpSkill": "sentence_meaning", "kpSkillName": "语义" } ]

1234567891011121314151617181920212223242526272829303132333435
{ "pushType": "relationKp", "cType": "core_writing_imgWrite", "cId": "0000800", "kpInfo": [ { "kpId": null, "kpType": "vocab", "kpTitle": "elephant n. 大象", "kpSkill": "vocab_meaning", "kpSkillName": "词义" }, { "kpId": null, "kpType": "vocab", "kpTitle": "banana n. 香蕉", "kpSkill": "vocab_meaning", "kpSkillName": "词义" }, { "kpId": null, "kpType": "vocab", "kpTitle": "shower n. 淋浴、洗澡", "kpSkill": "vocab_meaning", "kpSkillName": "词义" }, { "kpId": null, "kpType": "sentence", "kpTitle": "... love(s) to... ……喜爱……", "kpSkill": "sentence_meaning", "kpSkillName": "语义" } ] }
中间结果: 学习流程配置

    ```
    # 问题1：
    Brainy: 护理记录的第一栏要填写动物的种类，你需要在横线上填上对应的单词。
    用户选项:
    （选项 A）elephant [正确]
      Brainy: 答对啦！我们今天护理的动物是大象，所以动物类型栏填elephant是完全正确的。
    （选项 B）banana
      Brainy: 不对哦，banana是香蕉，属于食物，不是动物类型。再想想我们今天照顾的是什么动物呀？
    （选项 C）shower
      Brainy: 不对哦，shower是洗澡的意思，属于清洁护理的内容，不是动物类型。再想想我们今天照顾的是什么动物呀？

    # 问题2：
    Brainy: 接下来要填写饮食栏，记录大象今天吃了什么，请你选对合适的单词填到横线上。
    用户选项:
    （选项 A）elephant
      Brainy: 不对哦，elephant是大象本身，我们总不能让大象吃自己呀~ 再想想我们今天喂给大象什么食物了？
    （选项 B）bananas [正确]
      Brainy: 太棒了！我们今天喂大象吃了香蕉，所以饮食栏填bananas完全符合实际情况。
    （选项 C）shower
      Brainy: 不对哦，shower是洗澡，属于清洁项目，不是食物。再想想我们今天喂给大象什么食物了？

    # 问题3：
    Brainy: 现在填写清洁护理栏，记录大象今天做了什么清洁项目，请你选对合适的表达填到横线上。
    用户选项:
    （选项 A）elephant
      Brainy: 不对哦，elephant是大象，不是清洁项目。再想想我们今天帮大象做了什么清洁工作呀？
    （选项 B）bananas
      Brainy: 不对哦，bananas是香蕉，属于食物，和清洁护理没有关系。再想想我们今天帮大象做了什么清洁工作呀？
    （选项 C）a shower [正确]
      Brainy: 完全正确！我们今天帮大象洗了澡，所以清洁栏填a shower是对的。

    # 问题4：
    Brainy: 最后要总结大象的喜好，你需要用正确的句式描述大象喜欢的东西。
    用户选项:
    （选项 A）The elephant loves showers and bananas! [正确]
      Brainy: 太厉害啦！你准确用了love的句式，总结出大象既喜欢洗澡又喜欢香蕉，完全符合今天的护理记录哦。
    （选项 B）The elephant loves to showers and bananas!
      Brainy: 不对哦，"love to"后面要接动词原形，而这里shower和banana都是名词，直接用love sth.的结构就可以啦，再调整一下试试。
    （选项 C）The elephant love showers and bananas!
      Brainy: 不对哦，主语the elephant是第三人称单数，谓语动词love要变成loves才对，再检查一下语法哦。
    ```

中间结果: 互动描述

    Animal Keeper's Record Animal type: Elephant Food: She ate bananas. Cleaning: She had a shower today. What does she love? The elephant loves showers and bananas!（动物饲养员记录
    动物种类：大象
    食物：她吃了香蕉。
    清洁：她今天洗了澡。
    她喜欢什么呢？
    这头大象喜欢洗澡和香蕉！）

原始组件配置 (可编辑后点击"执行重新生成")
【任务名称】 填写大象护理记录 【任务背景】 粗心的大象饲养员忘记给大象洗澡了！真是照顾不周。你们给大象洗了澡，还喂了香蕉，现在把这些都记在护理记录上吧！ 【任务描述】 根据图片内容，填写大象护理报告。 【题干类型】 图片 【题干描述】 1 【知识】 elephant n. 大象 banana n. 香蕉 shower n. 淋浴、洗澡 ... love(s) to... ……喜爱…… 【写作类型】 撰写 【写作材料】 # 句子 1 ##句子类型： 全句预置 ##句子主干 句子主干： Animal Keeper's Record 参考答案： / # 句子 2 ##句子类型： 挖空录入 ##句子内容 句子主干： Animal type: ___ 参考答案： Elephant ##图片编号： 0329125_00 # 句子 3 ##句子类型： 挖空录入 ##句子内容 句子主干： Food: She ate ___ . 参考答案： bananas ## 图片编号： 0329125_01 # 句子 4 ##句子类型： 挖空录入 ##句子内容 句子主干： Cleaning: She had ___ today. 参考答案： a shower ##图片编号： 0329125_02 # 句子 5 ##句子类型： 全句预置 ## 句子内容 句子主干： What does she love? 参考答案： / # 句子 6 ##句子类型： 全句录入 ## 句子内容 句子主干： / 参考答案： The elephant loves showers and bananas! ##图片编号： 0329125_00 【通过规则】 用户能够： 说明动物类型是大象。 说明大象吃了香蕉。 说明大象洗了澡。 表达大象喜欢香蕉和洗澡。
29 核心邮件组句 cId: 0000800 core_writing_questionMakeSentence
已保存 ▶
taskInfo

cId |
cType |
title |
taskDesc |
sceneDesc | Rebecca听上去十分担心你们的安全，你们刚刚做出了决定，要继续留在 Wander Port 进行学院的探索任务，你需要回一封邮件给她，告诉她你们的决定以及原因，顺便询问她何时会来。
img |
plotSummary |
stemDesc | [ "What is your opinion on the job?", "Why do you want to stay?", "Ask her when to come." ]
key | [ { "keyList": [ { "type": "default", "content": "The job is...", "desc": "这份工作......" }, { "type": "default", "content": "That's why we have to...", "desc": "这就是为什么我们必须……" }, { "type": "default", "content": "When will you arrive?", "desc": "你什么时候会到？" } ] } ]
cDesc | Dear Rebecca, I know you are worried. But this is our best chance to explore Wander Port. The job is important for us. That's why we have to stay. Will you come to Wander Port some day? When will you arrive? （亲爱的丽贝卡：我知道你很担心。但这是我们探索漫游港的最佳机会。这项任务对我们来说很重要。这就是我们必须留下来的原因。你将来会来漫游港吗？你什么时候会到？）

123456789101112131415161718192021222324252627282930313233343536
{ "cId": "0000800", "cType": "core_writing_questionMakeSentence", "title": "编写给 Rebecca 的邮件", "taskDesc": "请根据提示问题，用英文组句完成这封邮件。", "sceneDesc": "Rebecca听上去十分担心你们的安全，你们刚刚做出了决定，要继续留在 Wander Port 进行学院的探索任务，你需要回一封邮件给她，告诉她你们的决定以及原因，顺便询问她何时会来。", "img": "", "plotSummary": "", "stemDesc": [ "What is your opinion on the job?", "Why do you want to stay?", "Ask her when to come." ], "key": [ { "keyList": [ { "type": "default", "content": "The job is...", "desc": "这份工作......" }, { "type": "default", "content": "That's why we have to...", "desc": "这就是为什么我们必须……" }, { "type": "default", "content": "When will you arrive?", "desc": "你什么时候会到？" } ] } ], "cDesc": "Dear Rebecca, I know you are worried. But this is our best chance to explore Wander Port. The job is important for us. That's why we have to stay. Will you come to Wander Port some day? When will you arrive?\n（亲爱的丽贝卡：我知道你很担心。但这是我们探索漫游港的最佳机会。这项任务对我们来说很重要。这就是我们必须留下来的原因。你将来会来漫游港吗？你什么时候会到？）" }
textInfo

inputType |
passCondition |

textList

[ { "mode": "preset", "desc": "Dear Rebecca," }, { "mode": "preset", "desc": "I know you are worried. But this is our best chance to explore Wander Port. " }, { "mode": "fillingInput", "desc": "The ___ is important for us.", "optionList": [ { "option": "job" }, { "option": "jobs" }, { "option": "projects" } ], "answer": [ 0 ] }, { "mode": "fillingInput", "desc": "That's ___ we have to stay.", "optionList": [ { "option": "why" }, { "option": "how" }, { "option": "which" } ], "answer": [ 0 ] }, { "mode": "preset", "desc": "Will you come to Wander Port some day? " }, { "mode": "fillingInput", "desc": " ___ you arrive?", "optionList": [ { "option": "When will" }, { "option": "When is" }, { "option": "How is" } ], "answer": [ 0 ] } ]

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
{ "inputType": "sentence", "passCondition": "用户写出：这份工作很重要。这就是我们为什么要留下。你什么时候将会到达？", "textList": [ { "mode": "preset", "desc": "Dear Rebecca," }, { "mode": "preset", "desc": "I know you are worried. But this is our best chance to explore Wander Port. " }, { "mode": "fillingInput", "desc": "The ___ is important for us.", "optionList": [ { "option": "job" }, { "option": "jobs" }, { "option": "projects" } ], "answer": [ 0 ] }, { "mode": "fillingInput", "desc": "That's ___ we have to stay.", "optionList": [ { "option": "why" }, { "option": "how" }, { "option": "which" } ], "answer": [ 0 ] }, { "mode": "preset", "desc": "Will you come to Wander Port some day? " }, { "mode": "fillingInput", "desc": " ___ you arrive?", "optionList": [ { "option": "When will" }, { "option": "When is" }, { "option": "How is" } ], "answer": [ 0 ] } ] }
studyInfo

learningPart

[ { "leadIn": { "desc": "What is your opinion on the job?" }, "learning": [ { "question": { "type": "npc", "npcName": "Brainy", "content": "你在邮件中想要说明这项工作对你们很重要，现在需要完成这句话的表达：The ____ is important for us. 请选出合适的单词补全句子。" }, "optionList": [ { "option": "job", "feedback": { "type": "npc", "npcName": "Brainy", "content": "答对啦！job是可数名词单数，和后面的be动词is搭配正确，这句话准确表达了“这份工作对我们很重要”的意思。" } }, { "option": "jobs", "feedback": { "type": "npc", "npcName": "Brainy", "content": "不对哦，jobs是可数名词复数，后面应该搭配be动词are，和句中的is不一致，所以不合适。" } }, { "option": "projects", "feedback": { "type": "npc", "npcName": "Brainy", "content": "不对哦，projects是“项目”的复数形式，后面应该搭配be动词are，和句中的is不一致，意思也不符合这里要表达的内容。" } } ], "answer": [ 0 ], "write": { "desc": "The job is important for us.", "trans": "这份工作对我们很重要。" }, "feedback": { "type": "npc", "npcName": "Brainy", "content": "你写的很好！" } } ] }, { "leadIn": { "desc": "Why do you want to stay?" }, "learning": [ { "question": { "type": "npc", "npcName": "Brainy", "content": "你已经说明了工作的重要性，现在要表达“这就是我们必须留下来的原因”，请选出合适的单词补全句子：That's ____ we have to stay." }, "optionList": [ { "option": "why", "feedback": { "type": "npc", "npcName": "Brainy", "content": "太棒了！That's why...是固定表达，用来引出某事的原因，正好符合这里解释留下的原因的语境。" } }, { "option": "how", "feedback": { "type": "npc", "npcName": "Brainy", "content": "不对哦，how是用来询问方式的，这里是要说明留下来的原因，不是说明留下的方式，所以不合适。" } }, { "option": "which", "feedback": { "type": "npc", "npcName": "Brainy", "content": "不对哦，which通常用来引导定语从句指代事物，不能用来引导原因状语，不符合这里的语义哦。" } } ], "answer": [ 0 ], "write": { "desc": "That's why we have to stay.", "trans": "这就是为什么我们必须留下来。" }, "feedback": { "type": "npc", "npcName": "Brainy", "content": "你写的很好！" } } ] }, { "leadIn": { "desc": "Ask her when to come." }, "learning": [ { "question": { "type": "npc", "npcName": "Brainy", "content": "你想在邮件末尾询问Rebecca什么时候会到达，现在需要选出正确的表达。" }, "optionList": [ { "option": "When will you arrive?", "feedback": { "type": "npc", "npcName": "Brainy", "content": "完全正确！这是询问对方将来到达时间的正确表达，符合邮件里询问行程的语境。" } }, { "option": "When is you arrive?", "feedback": { "type": "npc", "npcName": "Brainy", "content": "不对哦，arrive是实义动词，构成疑问句需要借助助动词，不能和be动词is直接搭配，语法是错误的。" } }, { "option": "How is you arrive?", "feedback": { "type": "npc", "npcName": "Brainy", "content": "不对哦，首先你想询问的是到达的时间不是方式，而且这个句子同样存在语法错误，实义动词arrive不能和be动词is直接搭配使用。" } } ], "answer": [ 0 ], "write": { "desc": "When will you arrive?", "trans": "你什么时候会到？" }, "feedback": { "type": "npc", "npcName": "Brainy", "content": "你写的很好！" } } ] } ]

closing | { "type": "npc", "npcName": "Brainy", "content": "恭喜你，你已经掌握了短语The job is...、That's why we have to...以及句型When will you arrive?，能够准确完成给Rebecca的邮件编写啦！" }

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
{ "learningPart": [ { "leadIn": { "desc": "What is your opinion on the job?" }, "learning": [ { "question": { "type": "npc", "npcName": "Brainy", "content": "你在邮件中想要说明这项工作对你们很重要，现在需要完成这句话的表达：The ____ is important for us. 请选出合适的单词补全句子。" }, "optionList": [ { "option": "job", "feedback": { "type": "npc", "npcName": "Brainy", "content": "答对啦！job是可数名词单数，和后面的be动词is搭配正确，这句话准确表达了“这份工作对我们很重要”的意思。" } }, { "option": "jobs", "feedback": { "type": "npc", "npcName": "Brainy", "content": "不对哦，jobs是可数名词复数，后面应该搭配be动词are，和句中的is不一致，所以不合适。" } }, { "option": "projects", "feedback": { "type": "npc", "npcName": "Brainy", "content": "不对哦，projects是“项目”的复数形式，后面应该搭配be动词are，和句中的is不一致，意思也不符合这里要表达的内容。" } } ], "answer": [ 0 ], "write": { "desc": "The job is important for us.", "trans": "这份工作对我们很重要。" }, "feedback": { "type": "npc", "npcName": "Brainy", "content": "你写的很好！" } } ] }, { "leadIn": { "desc": "Why do you want to stay?" }, "learning": [ { "question": { "type": "npc", "npcName": "Brainy", "content": "你已经说明了工作的重要性，现在要表达“这就是我们必须留下来的原因”，请选出合适的单词补全句子：That's ____ we have to stay." }, "optionList": [ { "option": "why", "feedback": { "type": "npc", "npcName": "Brainy", "content": "太棒了！That's why...是固定表达，用来引出某事的原因，正好符合这里解释留下的原因的语境。" } }, { "option": "how", "feedback": { "type": "npc", "npcName": "Brainy", "content": "不对哦，how是用来询问方式的，这里是要说明留下来的原因，不是说明留下的方式，所以不合适。" } }, { "option": "which", "feedback": { "type": "npc", "npcName": "Brainy", "content": "不对哦，which通常用来引导定语从句指代事物，不能用来引导原因状语，不符合这里的语义哦。" } } ], "answer": [ 0 ], "write": { "desc": "That's why we have to stay.", "trans": "这就是为什么我们必须留下来。" }, "feedback": { "type": "npc", "npcName": "Brainy", "content": "你写的很好！" } } ] }, { "leadIn": { "desc": "Ask her when to come." }, "learning": [ { "question": { "type": "npc", "npcName": "Brainy", "content": "你想在邮件末尾询问Rebecca什么时候会到达，现在需要选出正确的表达。" }, "optionList": [ { "option": "When will you arrive?", "feedback": { "type": "npc", "npcName": "Brainy", "content": "完全正确！这是询问对方将来到达时间的正确表达，符合邮件里询问行程的语境。" } }, { "option": "When is you arrive?", "feedback": { "type": "npc", "npcName": "Brainy", "content": "不对哦，arrive是实义动词，构成疑问句需要借助助动词，不能和be动词is直接搭配，语法是错误的。" } }, { "option": "How is you arrive?", "feedback": { "type": "npc", "npcName": "Brainy", "content": "不对哦，首先你想询问的是到达的时间不是方式，而且这个句子同样存在语法错误，实义动词arrive不能和be动词is直接搭配使用。" } } ], "answer": [ 0 ], "write": { "desc": "When will you arrive?", "trans": "你什么时候会到？" }, "feedback": { "type": "npc", "npcName": "Brainy", "content": "你写的很好！" } } ] } ], "closing": { "type": "npc", "npcName": "Brainy", "content": "恭喜你，你已经掌握了短语The job is...、That's why we have to...以及句型When will you arrive?，能够准确完成给Rebecca的邮件编写啦！" } }
evalInfo

title |
taskDesc |
sceneDesc | Rebecca听上去十分担心你们的安全，你们刚刚做出了决定，要继续留在 Wander Port 进行学院的探索任务，你需要回一封邮件给她，告诉她你们的决定以及原因，顺便询问她何时会来。
knowledge | The job is... 这份工作...... That's why we have to... 这就是为什么我们必须…… When will you arrive? 你什么时候会到？
passCondition |

textList

[ { "mode": "preset", "desc": "Dear Rebecca," }, { "mode": "preset", "desc": "I know you are worried. But this is our best chance to explore Wander Port. " }, { "mode": "fillingInput", "desc": "The ___ is important for us.", "optionList": [ { "option": "job" }, { "option": "jobs" }, { "option": "projects" } ], "answer": [ 0 ] }, { "mode": "fillingInput", "desc": "That's ___ we have to stay.", "optionList": [ { "option": "why" }, { "option": "how" }, { "option": "which" } ], "answer": [ 0 ] }, { "mode": "preset", "desc": "Will you come to Wander Port some day? " }, { "mode": "fillingInput", "desc": " ___ you arrive?", "optionList": [ { "option": "When will" }, { "option": "When is" }, { "option": "How is" } ], "answer": [ 0 ] } ]

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
{ "title": "编写给 Rebecca 的邮件", "taskDesc": "请根据提示问题，用英文组句完成这封邮件。", "sceneDesc": "Rebecca听上去十分担心你们的安全，你们刚刚做出了决定，要继续留在 Wander Port 进行学院的探索任务，你需要回一封邮件给她，告诉她你们的决定以及原因，顺便询问她何时会来。", "knowledge": "The job is... \n这份工作......\nThat's why we have to... \n这就是为什么我们必须……\nWhen will you arrive? \n你什么时候会到？", "passCondition": "用户写出：这份工作很重要。这就是我们为什么要留下。你什么时候将会到达？", "textList": [ { "mode": "preset", "desc": "Dear Rebecca," }, { "mode": "preset", "desc": "I know you are worried. But this is our best chance to explore Wander Port. " }, { "mode": "fillingInput", "desc": "The ___ is important for us.", "optionList": [ { "option": "job" }, { "option": "jobs" }, { "option": "projects" } ], "answer": [ 0 ] }, { "mode": "fillingInput", "desc": "That's ___ we have to stay.", "optionList": [ { "option": "why" }, { "option": "how" }, { "option": "which" } ], "answer": [ 0 ] }, { "mode": "preset", "desc": "Will you come to Wander Port some day? " }, { "mode": "fillingInput", "desc": " ___ you arrive?", "optionList": [ { "option": "When will" }, { "option": "When is" }, { "option": "How is" } ], "answer": [ 0 ] } ] }
kpInfo JSON

pushType |
cType |
cId |

kpInfo

[ { "kpId": "0328017", "kpType": "sentence", "kpTitle": "The job is...", "kpSkill": "sentence_meaning", "kpSkillName": "语义" }, { "kpId": null, "kpType": "sentence", "kpTitle": "这份工作......", "kpSkill": "sentence_meaning", "kpSkillName": "语义" }, { "kpId": "0328016", "kpType": "sentence", "kpTitle": "That's why we have to...", "kpSkill": "sentence_meaning", "kpSkillName": "语义" }, { "kpId": null, "kpType": "vocab", "kpTitle": "这就是为什么我们必须……", "kpSkill": "vocab_meaning", "kpSkillName": "词义" }, { "kpId": "0328014", "kpType": "sentence", "kpTitle": "When will you arrive?", "kpSkill": "sentence_meaning", "kpSkillName": "语义" }, { "kpId": null, "kpType": "vocab", "kpTitle": "你什么时候会到？", "kpSkill": "vocab_meaning", "kpSkillName": "词义" } ]

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
{ "pushType": "relationKp", "cType": "core_writing_questionMakeSentence", "cId": "0000800", "kpInfo": [ { "kpId": "0328017", "kpType": "sentence", "kpTitle": "The job is...", "kpSkill": "sentence_meaning", "kpSkillName": "语义" }, { "kpId": null, "kpType": "sentence", "kpTitle": "这份工作......", "kpSkill": "sentence_meaning", "kpSkillName": "语义" }, { "kpId": "0328016", "kpType": "sentence", "kpTitle": "That's why we have to...", "kpSkill": "sentence_meaning", "kpSkillName": "语义" }, { "kpId": null, "kpType": "vocab", "kpTitle": "这就是为什么我们必须……", "kpSkill": "vocab_meaning", "kpSkillName": "词义" }, { "kpId": "0328014", "kpType": "sentence", "kpTitle": "When will you arrive?", "kpSkill": "sentence_meaning", "kpSkillName": "语义" }, { "kpId": null, "kpType": "vocab", "kpTitle": "你什么时候会到？", "kpSkill": "vocab_meaning", "kpSkillName": "词义" } ] }
中间结果: 学习流程配置

    ```
    # 问题1：
    Brainy: 你在邮件中想要说明这项工作对你们很重要，现在需要完成这句话的表达：The ____ is important for us. 请选出合适的单词补全句子。
    用户选项:
    （选项 A）job [正确]
      Brainy: 答对啦！job是可数名词单数，和后面的be动词is搭配正确，这句话准确表达了“这份工作对我们很重要”的意思。
    （选项 B）jobs
      Brainy: 不对哦，jobs是可数名词复数，后面应该搭配be动词are，和句中的is不一致，所以不合适。
    （选项 C）projects
      Brainy: 不对哦，projects是“项目”的复数形式，后面应该搭配be动词are，和句中的is不一致，意思也不符合这里要表达的内容。

    # 问题2：
    Brainy: 你已经说明了工作的重要性，现在要表达“这就是我们必须留下来的原因”，请选出合适的单词补全句子：That's ____ we have to stay.
    用户选项:
    （选项 A）why [正确]
      Brainy: 太棒了！That's why...是固定表达，用来引出某事的原因，正好符合这里解释留下的原因的语境。
    （选项 B）how
      Brainy: 不对哦，how是用来询问方式的，这里是要说明留下来的原因，不是说明留下的方式，所以不合适。
    （选项 C）which
      Brainy: 不对哦，which通常用来引导定语从句指代事物，不能用来引导原因状语，不符合这里的语义哦。

    # 问题3：
    Brainy: 你想在邮件末尾询问Rebecca什么时候会到达，现在需要选出正确的表达。
    用户选项:
    （选项 A）When will you arrive? [正确]
      Brainy: 完全正确！这是询问对方将来到达时间的正确表达，符合邮件里询问行程的语境。
    （选项 B）When is you arrive?
      Brainy: 不对哦，arrive是实义动词，构成疑问句需要借助助动词，不能和be动词is直接搭配，语法是错误的。
    （选项 C）How is you arrive?
      Brainy: 不对哦，首先你想询问的是到达的时间不是方式，而且这个句子同样存在语法错误，实义动词arrive不能和be动词is直接搭配使用。
    ```

中间结果: 互动描述

    Dear Rebecca, I know you are worried. But this is our best chance to explore Wander Port. The job is important for us. That's why we have to stay. Will you come to Wander Port some day? When will you arrive?
    （亲爱的丽贝卡：我知道你很担心。但这是我们探索漫游港的最佳机会。这项任务对我们来说很重要。这就是我们必须留下来的原因。你将来会来漫游港吗？你什么时候会到？）

原始组件配置 (可编辑后点击"执行重新生成")
【任务名称】 编写给 Rebecca 的邮件 【任务背景】 Rebecca听上去十分担心你们的安全，你们刚刚做出了决定，要继续留在 Wander Port 进行学院的探索任务，你需要回一封邮件给她，告诉她你们的决定以及原因，顺便询问她何时会来。 【任务描述】 请根据提示问题，用英文组句完成这封邮件。 【题干类型】 问题 【题干描述】 What is your opinion on the job? Why do you want to stay? Ask her when to come. 【知识】 The job is... 这份工作...... That's why we have to... 这就是为什么我们必须…… When will you arrive? 你什么时候会到？ 【写作类型】 组句 【写作材料】 # 句子 1 ##句子类型： 全句预置 ##句子内容 句子主干： Dear Rebecca, 参考答案： / # 句子 2 ##句子类型： 全句预置 ##句子内容 句子主干： I know you are worried. But this is our best chance to explore Wander Port. 参考答案： / # 句子 3 ##句子类型： 挖空录入 ## 句子内容 句子主干： The ___ is important for us. 选项： job [干扰] jobs [干扰] projects 答案： job # 句子 4 ##句子类型： 挖空录入 ## 句子内容 句子主干： That's ___ we have to stay. 选项： why [干扰] how [干扰] which 答案： why # 句子 5 ##句子类型： 全句预置 ##句子内容 句子主干： Will you come to Wander Port some day? 参考答案： / # 句子 6 ##句子类型： 挖空录入 ## 句子内容 句子主干： ___ you arrive? 选项： When will [干扰]When is [干扰]How is 答案： When will 【通过规则】 用户写出： 这份工作很重要。 这就是我们为什么要留下。 你什么时候将会到达？
30 核心邮件撰写 cId: 0000800 core_writing_questionWrite
已保存 ▶
taskInfo

cId |
cType |
title |
taskDesc |
sceneDesc | Rebecca听上去十分担心你们的安全，你们刚刚做出了决定，要继续留在 Wander Port 进行学院的探索任务，你需要回一封邮件给她，告诉她你们的决定以及原因，顺便询问她何时会来。
img |
plotSummary |
stemDesc | [ "Tell her your decision and why.", "Ask her when she will arrive." ]
key | [ { "keyList": [ { "type": "default", "content": "The job is...", "desc": "这份工作......" }, { "type": "default", "content": "That's why we have to...", "desc": "这就是为什么我们必须……" }, { "type": "default", "content": "When will you arrive?", "desc": "你什么时候会到？" } ] } ]
cDesc | Dear Rebecca, I know you are worried. But this is our best chance to explore Wander Port. The job is important for us. That's why we have to stay. Will you come to Wander Port some day? If so, when will you arrive? （亲爱的丽贝卡： 我知道你很担心。但这是我们探索漫游港的最佳机会。这项工作对我们来说很重要。这就是我们必须留下来的原因。你会不会在某一天来漫游港呢？如果会的话，你什么时候会到？）

1234567891011121314151617181920212223242526272829303132333435
{ "cId": "0000800", "cType": "core_writing_questionWrite", "title": "编写给 Rebecca 的邮件", "taskDesc": "请根据提示问题，用英文组句完成这封邮件。", "sceneDesc": "Rebecca听上去十分担心你们的安全，你们刚刚做出了决定，要继续留在 Wander Port 进行学院的探索任务，你需要回一封邮件给她，告诉她你们的决定以及原因，顺便询问她何时会来。", "img": "", "plotSummary": "", "stemDesc": [ "Tell her your decision and why.", "Ask her when she will arrive." ], "key": [ { "keyList": [ { "type": "default", "content": "The job is...", "desc": "这份工作......" }, { "type": "default", "content": "That's why we have to...", "desc": "这就是为什么我们必须……" }, { "type": "default", "content": "When will you arrive?", "desc": "你什么时候会到？" } ] } ], "cDesc": "Dear Rebecca, I know you are worried. But this is our best chance to explore Wander Port. The job is important for us. That's why we have to stay. Will you come to Wander Port some day? If so, when will you arrive?\n（亲爱的丽贝卡：\n我知道你很担心。但这是我们探索漫游港的最佳机会。这项工作对我们来说很重要。这就是我们必须留下来的原因。你会不会在某一天来漫游港呢？如果会的话，你什么时候会到？）" }
textInfo

inputType |
passCondition |

textList

[ { "mode": "preset", "desc": "Dear Rebecca,", "answerText": "" }, { "mode": "preset", "desc": "I know you are worried. But this is our best chance to explore Wander Port.", "answerText": "" }, { "mode": "fillingInput", "desc": "The ____ is important for us.", "answerText": "job", "hint": "这份（job）工作对我们来说很重要。" }, { "mode": "fillingInput", "desc": "That's ____ we have to stay.", "answerText": "why", "hint": "这就是（why）我们为什么要留下。" }, { "mode": "preset", "desc": "Will you come to Wander Port some day?", "answerText": "" }, { "mode": "fillingInput", "desc": "If so, _________ you arrive?", "answerText": "when will", "hint": "如果是这样的话，你（when will）什么时候将会到达？" } ]

123456789101112131415161718192021222324252627282930313233343536373839
{ "inputType": "write", "passCondition": "用户写出：这份工作很重要。这就是我们为什么要留下。你什么时候将会到达？", "textList": [ { "mode": "preset", "desc": "Dear Rebecca,", "answerText": "" }, { "mode": "preset", "desc": "I know you are worried. But this is our best chance to explore Wander Port.", "answerText": "" }, { "mode": "fillingInput", "desc": "The ____ is important for us.", "answerText": "job", "hint": "这份（job）工作对我们来说很重要。" }, { "mode": "fillingInput", "desc": "That's ____ we have to stay.", "answerText": "why", "hint": "这就是（why）我们为什么要留下。" }, { "mode": "preset", "desc": "Will you come to Wander Port some day?", "answerText": "" }, { "mode": "fillingInput", "desc": "If so, _________ you arrive?", "answerText": "when will", "hint": "如果是这样的话，你（when will）什么时候将会到达？" } ] }
studyInfo

learningPart

[ { "leadIn": { "desc": "Tell her your decision and why." }, "learning": [ { "question": { "type": "npc", "npcName": "Brainy", "content": "你在邮件开头已经安抚了Rebecca的担心，说明留在Wander Port是很好的探索机会，现在要进一步解释这项探索任务对你们的重要性，你会说：" }, "optionList": [ { "option": "The job is important for us.", "feedback": { "type": "npc", "npcName": "Brainy", "content": "完全正确！你准确表达了“这份工作（探索任务）对我们很重要”的意思，完美贴合语境哦。" } }, { "option": "The jobs is important for us.", "feedback": { "type": "npc", "npcName": "Brainy", "content": "这里出错啦，jobs是job的复数形式，后面应该搭配be动词are，和句子里的is不匹配，再试试呀。" } }, { "option": "The projects is important for us.", "feedback": { "type": "npc", "npcName": "Brainy", "content": "不对哦，projects是复数形式，不能和is搭配，而且这里要表达的是当下这份探索任务的重要性，用单数job更合适，再试一次吧。" } } ], "answer": [ 0 ], "write": { "desc": "The job is important for us.", "trans": "这份工作对我们来说很重要。" }, "feedback": { "type": "npc", "npcName": "Brainy", "content": "你写的很好！" } }, { "question": { "type": "npc", "npcName": "Brainy", "content": "你已经说明了探索任务的重要性，现在要告诉Rebecca这就是你们必须留下来的原因，你会怎么说？" }, "optionList": [ { "option": "That's how we have to stay.", "feedback": { "type": "npc", "npcName": "Brainy", "content": "不对哦，how是用来询问方式的，这句话的意思就变成了“这就是我们要如何留下来的方式”，不符合你要解释原因的语境，再想想呀。" } }, { "option": "That's why we have to stay.", "feedback": { "type": "npc", "npcName": "Brainy", "content": "太棒了！你准确用“That's why...”这个结构表达了原因，完美传递出“这就是我们必须留下来的原因”的意思。" } }, { "option": "That's which we have to stay.", "feedback": { "type": "npc", "npcName": "Brainy", "content": "这个表达不对哦，which通常用来引导定语从句指代事物，不能用来解释原因，不符合这里的语境，再试一次吧。" } } ], "answer": [ 1 ], "write": { "desc": "That's why we have to stay.", "trans": "这就是我们必须留下来的原因。" }, "feedback": { "type": "npc", "npcName": "Brainy", "content": "你写的很好！" } } ] }, { "leadIn": { "desc": "Ask her when she will arrive." }, "learning": [ { "question": { "type": "npc", "npcName": "Brainy", "content": "你已经讲完了你们留下来的决定和原因，现在问过Rebecca会不会来Wander Port之后，想进一步询问她如果来的话什么时候抵达，你会说：" }, "optionList": [ { "option": "If so, when is you arrive?", "feedback": { "type": "npc", "npcName": "Brainy", "content": "这个表达有语法错误哦，arrive是实义动词，疑问句里需要用助动词will/do等，不能用be动词is，再调整一下呀。" } }, { "option": "If so, how is you arrive?", "feedback": { "type": "npc", "npcName": "Brainy", "content": "不对哦，首先语法上就有错误，arrive不能和be动词is搭配，而且你要问的是抵达的时间，不是方式，用how不符合语境，再试试吧。" } }, { "option": "If so, when will you arrive?", "feedback": { "type": "npc", "npcName": "Brainy", "content": "太对啦！你准确用“when will you arrive”询问了对方抵达的时间，完全符合邮件里的提问需求哦。" } } ], "answer": [ 2 ], "write": { "desc": "If so, when will you arrive?", "trans": "如果会的话，你什么时候会到？" }, "feedback": { "type": "npc", "npcName": "Brainy", "content": "你写的很好！" } } ] } ]

closing | { "type": "npc", "npcName": "Brainy", "content": "恭喜你，你已经掌握了短语“The job is...”、“That's why we have to...”以及句型“When will you arrive?”的用法，能够准确完成给Rebecca的邮件编写啦！" }

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
{ "learningPart": [ { "leadIn": { "desc": "Tell her your decision and why." }, "learning": [ { "question": { "type": "npc", "npcName": "Brainy", "content": "你在邮件开头已经安抚了Rebecca的担心，说明留在Wander Port是很好的探索机会，现在要进一步解释这项探索任务对你们的重要性，你会说：" }, "optionList": [ { "option": "The job is important for us.", "feedback": { "type": "npc", "npcName": "Brainy", "content": "完全正确！你准确表达了“这份工作（探索任务）对我们很重要”的意思，完美贴合语境哦。" } }, { "option": "The jobs is important for us.", "feedback": { "type": "npc", "npcName": "Brainy", "content": "这里出错啦，jobs是job的复数形式，后面应该搭配be动词are，和句子里的is不匹配，再试试呀。" } }, { "option": "The projects is important for us.", "feedback": { "type": "npc", "npcName": "Brainy", "content": "不对哦，projects是复数形式，不能和is搭配，而且这里要表达的是当下这份探索任务的重要性，用单数job更合适，再试一次吧。" } } ], "answer": [ 0 ], "write": { "desc": "The job is important for us.", "trans": "这份工作对我们来说很重要。" }, "feedback": { "type": "npc", "npcName": "Brainy", "content": "你写的很好！" } }, { "question": { "type": "npc", "npcName": "Brainy", "content": "你已经说明了探索任务的重要性，现在要告诉Rebecca这就是你们必须留下来的原因，你会怎么说？" }, "optionList": [ { "option": "That's how we have to stay.", "feedback": { "type": "npc", "npcName": "Brainy", "content": "不对哦，how是用来询问方式的，这句话的意思就变成了“这就是我们要如何留下来的方式”，不符合你要解释原因的语境，再想想呀。" } }, { "option": "That's why we have to stay.", "feedback": { "type": "npc", "npcName": "Brainy", "content": "太棒了！你准确用“That's why...”这个结构表达了原因，完美传递出“这就是我们必须留下来的原因”的意思。" } }, { "option": "That's which we have to stay.", "feedback": { "type": "npc", "npcName": "Brainy", "content": "这个表达不对哦，which通常用来引导定语从句指代事物，不能用来解释原因，不符合这里的语境，再试一次吧。" } } ], "answer": [ 1 ], "write": { "desc": "That's why we have to stay.", "trans": "这就是我们必须留下来的原因。" }, "feedback": { "type": "npc", "npcName": "Brainy", "content": "你写的很好！" } } ] }, { "leadIn": { "desc": "Ask her when she will arrive." }, "learning": [ { "question": { "type": "npc", "npcName": "Brainy", "content": "你已经讲完了你们留下来的决定和原因，现在问过Rebecca会不会来Wander Port之后，想进一步询问她如果来的话什么时候抵达，你会说：" }, "optionList": [ { "option": "If so, when is you arrive?", "feedback": { "type": "npc", "npcName": "Brainy", "content": "这个表达有语法错误哦，arrive是实义动词，疑问句里需要用助动词will/do等，不能用be动词is，再调整一下呀。" } }, { "option": "If so, how is you arrive?", "feedback": { "type": "npc", "npcName": "Brainy", "content": "不对哦，首先语法上就有错误，arrive不能和be动词is搭配，而且你要问的是抵达的时间，不是方式，用how不符合语境，再试试吧。" } }, { "option": "If so, when will you arrive?", "feedback": { "type": "npc", "npcName": "Brainy", "content": "太对啦！你准确用“when will you arrive”询问了对方抵达的时间，完全符合邮件里的提问需求哦。" } } ], "answer": [ 2 ], "write": { "desc": "If so, when will you arrive?", "trans": "如果会的话，你什么时候会到？" }, "feedback": { "type": "npc", "npcName": "Brainy", "content": "你写的很好！" } } ] } ], "closing": { "type": "npc", "npcName": "Brainy", "content": "恭喜你，你已经掌握了短语“The job is...”、“That's why we have to...”以及句型“When will you arrive?”的用法，能够准确完成给Rebecca的邮件编写啦！" } }
evalInfo

title |
taskDesc |
sceneDesc | Rebecca听上去十分担心你们的安全，你们刚刚做出了决定，要继续留在 Wander Port 进行学院的探索任务，你需要回一封邮件给她，告诉她你们的决定以及原因，顺便询问她何时会来。
knowledge | The job is... 这份工作......That's why we have to... 这就是为什么我们必须……When will you arrive? 你什么时候会到？
passCondition |

textList

[ { "mode": "preset", "desc": "Dear Rebecca,", "answerText": "" }, { "mode": "preset", "desc": "I know you are worried. But this is our best chance to explore Wander Port.", "answerText": "" }, { "mode": "fillingInput", "desc": "The ____ is important for us.", "answerText": "job", "hint": "这份（job）工作对我们来说很重要。" }, { "mode": "fillingInput", "desc": "That's ____ we have to stay.", "answerText": "why", "hint": "这就是（why）我们为什么要留下。" }, { "mode": "preset", "desc": "Will you come to Wander Port some day?", "answerText": "" }, { "mode": "fillingInput", "desc": "If so, _________ you arrive?", "answerText": "when will", "hint": "如果是这样的话，你（when will）什么时候将会到达？" } ]

123456789101112131415161718192021222324252627282930313233343536373839404142
{ "title": "编写给 Rebecca 的邮件", "taskDesc": "请根据提示问题，用英文组句完成这封邮件。", "sceneDesc": "Rebecca听上去十分担心你们的安全，你们刚刚做出了决定，要继续留在 Wander Port 进行学院的探索任务，你需要回一封邮件给她，告诉她你们的决定以及原因，顺便询问她何时会来。", "knowledge": "The job is... 这份工作......That's why we have to... 这就是为什么我们必须……When will you arrive? 你什么时候会到？", "passCondition": "用户写出：这份工作很重要。这就是我们为什么要留下。你什么时候将会到达？", "textList": [ { "mode": "preset", "desc": "Dear Rebecca,", "answerText": "" }, { "mode": "preset", "desc": "I know you are worried. But this is our best chance to explore Wander Port.", "answerText": "" }, { "mode": "fillingInput", "desc": "The ____ is important for us.", "answerText": "job", "hint": "这份（job）工作对我们来说很重要。" }, { "mode": "fillingInput", "desc": "That's ____ we have to stay.", "answerText": "why", "hint": "这就是（why）我们为什么要留下。" }, { "mode": "preset", "desc": "Will you come to Wander Port some day?", "answerText": "" }, { "mode": "fillingInput", "desc": "If so, _________ you arrive?", "answerText": "when will", "hint": "如果是这样的话，你（when will）什么时候将会到达？" } ] }
kpInfo JSON

pushType |
cType |
cId |
kpInfo | [ { "kpId": null, "kpType": "sentence", "kpTitle": "The job is... 这份工作......That's why we have to... 这就是为什么我们必须……When will you arrive? 你什么时候会到？", "kpSkill": "sentence_meaning", "kpSkillName": "语义" } ]

1234567891011121314
{ "pushType": "relationKp", "cType": "core_writing_questionWrite", "cId": "0000800", "kpInfo": [ { "kpId": null, "kpType": "sentence", "kpTitle": "The job is... 这份工作......That's why we have to... 这就是为什么我们必须……When will you arrive? 你什么时候会到？", "kpSkill": "sentence_meaning", "kpSkillName": "语义" } ] }
中间结果: 学习流程配置

    ```
    # 问题1：
    Brainy: 你在邮件开头已经安抚了Rebecca的担心，说明留在Wander Port是很好的探索机会，现在要进一步解释这项探索任务对你们的重要性，你会说：
    用户选项:
    （选项 A）The job is important for us. [正确]
      Brainy: 完全正确！你准确表达了“这份工作（探索任务）对我们很重要”的意思，完美贴合语境哦。
    （选项 B）The jobs is important for us.
      Brainy: 这里出错啦，jobs是job的复数形式，后面应该搭配be动词are，和句子里的is不匹配，再试试呀。
    （选项 C）The projects is important for us.
      Brainy: 不对哦，projects是复数形式，不能和is搭配，而且这里要表达的是当下这份探索任务的重要性，用单数job更合适，再试一次吧。

    # 问题2：
    Brainy: 你已经说明了探索任务的重要性，现在要告诉Rebecca这就是你们必须留下来的原因，你会怎么说？
    用户选项:
    （选项 A）That's how we have to stay.
      Brainy: 不对哦，how是用来询问方式的，这句话的意思就变成了“这就是我们要如何留下来的方式”，不符合你要解释原因的语境，再想想呀。
    （选项 B）That's why we have to stay. [正确]
      Brainy: 太棒了！你准确用“That's why...”这个结构表达了原因，完美传递出“这就是我们必须留下来的原因”的意思。
    （选项 C）That's which we have to stay.
      Brainy: 这个表达不对哦，which通常用来引导定语从句指代事物，不能用来解释原因，不符合这里的语境，再试一次吧。

    # 问题3：
    Brainy: 你已经讲完了你们留下来的决定和原因，现在问过Rebecca会不会来Wander Port之后，想进一步询问她如果来的话什么时候抵达，你会说：
    用户选项:
    （选项 A）If so, when is you arrive?
      Brainy: 这个表达有语法错误哦，arrive是实义动词，疑问句里需要用助动词will/do等，不能用be动词is，再调整一下呀。
    （选项 B）If so, how is you arrive?
      Brainy: 不对哦，首先语法上就有错误，arrive不能和be动词is搭配，而且你要问的是抵达的时间，不是方式，用how不符合语境，再试试吧。
    （选项 C）If so, when will you arrive? [正确]
      Brainy: 太对啦！你准确用“when will you arrive”询问了对方抵达的时间，完全符合邮件里的提问需求哦。
    ```

中间结果: 互动描述

    Dear Rebecca, I know you are worried. But this is our best chance to explore Wander Port. The job is important for us. That's why we have to stay. Will you come to Wander Port some day? If so, when will you arrive?
    （亲爱的丽贝卡：
    我知道你很担心。但这是我们探索漫游港的最佳机会。这项工作对我们来说很重要。这就是我们必须留下来的原因。你会不会在某一天来漫游港呢？如果会的话，你什么时候会到？）

原始组件配置 (可编辑后点击"执行重新生成")
【任务名称】 编写给 Rebecca 的邮件【任务背景】 Rebecca听上去十分担心你们的安全，你们刚刚做出了决定，要继续留在 Wander Port 进行学院的探索任务，你需要回一封邮件给她，告诉她你们的决定以及原因，顺便询问她何时会来。【任务描述】请根据提示问题，用英文组句完成这封邮件。【题干类型】 问题【题干描述】Tell her your decision and why.Ask her when she will arrive.【知识】The job is... 这份工作......That's why we have to... 这就是为什么我们必须……When will you arrive? 你什么时候会到？ 【写作类型】 组句【写作材料】# 句子 1##句子类型：全句预置##句子内容句子主干：Dear Rebecca,参考答案：/ # 句子 2##句子类型：全句预置##句子内容句子主干：I know you are worried. But this is our best chance to explore Wander Port. 参考答案：/# 句子 2##句子类型：挖空录入## 句子内容句子主干：The ____ is important for us.选项：jobjobsprojects答案：job # 句子 3##句子类型：挖空录入## 句子内容句子主干：That's ____ we have to stay.选项：whyhowwhich答案：why # 句子 4##句子类型：全句预置##句子内容句子主干：Will you come to Wander Port some day? 参考答案：/ # 句子 5##句子类型：挖空录入## 句子内容句子主干：If so, _________ you arrive?选项：when willwhen ishow is答案：when will 【通过规则】用户写出：这份工作很重要。这就是我们为什么要留下。你什么时候将会到达？
31 对话表达 cId: 0000800 mid_dialog_express
已保存 ▶
jsonData

cType |
cId |
title |
asrPrompt |
resourceMapping | { "Vicky": 658 }
preDialog | []
imgShowTimingList | [ "content", "feedback" ]
img |
tip |
corFeedback | { "type": "npc", "npcName": "Sunny", "content": "You are so clever!" }
errFeedback | { "type": "npc", "npcName": "Beekeeper", "content": "Try again." }
question | { "desc": "回答养蜂人的问题。" }
example | { "type": "user", "content": "Spring!" }
postDialog | []

12345678910111213141516171819202122232425262728293031323334
{ "cType": "mid_dialog_express", "cId": "0000800", "title": "回答养蜂人的问题", "asrPrompt": "养蜂人,蜂蜜,Spring,春天", "resourceMapping": { "Vicky": 658 }, "preDialog": [], "imgShowTimingList": [ "content", "feedback" ], "img": "0000800.png", "tip": "春天会收获最多的蜂蜜哦~", "corFeedback": { "type": "npc", "npcName": "Sunny", "content": "You are so clever!" }, "errFeedback": { "type": "npc", "npcName": "Beekeeper", "content": "Try again." }, "question": { "desc": "回答养蜂人的问题。" }, "example": { "type": "user", "content": "Spring!" }, "postDialog": [] }
kpInfo JSON

pushType |
cType |
cId |
kpInfo | [ { "kpId": null, "kpType": "vocab", "kpTitle": "spring", "kpSkill": "vocab_meaning", "kpSkillName": "词义" } ]

1234567891011121314
{ "pushType": "relationKp", "cType": "mid_dialog_express", "cId": "0000800", "kpInfo": [ { "kpId": null, "kpType": "vocab", "kpTitle": "spring", "kpSkill": "vocab_meaning", "kpSkillName": "词义" } ] }
原始组件配置 (可编辑后点击"执行重新生成")
【任务标题】 回答养蜂人的问题 【资源配置】 图片时机： 互动内容 互动反馈 【情境引入】 无 【互动内容】 回答养蜂人的问题。 示例回答： User : Spring! 辅助信息：春天会收获最多的蜂蜜哦~ 【互动反馈】 正确 Sunny: You are so clever! 错误 Beekeeper: Try again. 【后置对话】 无
32 对话选择 cId: 0000800 mid_dialog_choose
已保存 ▶
jsonData

cType |
cId |
title |
resourceMapping | { "Vicky": 658 }
preDialog | [ { "type": "npc", "npcName": "Dad", "content": "Is it for a cat?" } ]
imgShowTimingList | [ "content", "feedback" ]
img |
optionList | [ { "option": "This is Mr Rabbit's home.", "needAudio": true }, { "option": "This is a cat's home.", "needAudio": true } ]
answer | [ 0 ]
corFeedback | { "type": "npc", "npcName": "Dad", "content": "Oh, I see." }
errFeedback | { "type": "npc", "npcName": "Dad", "content": "It is too small for a cat." }
postDialog | []

1234567891011121314151617181920212223242526272829303132333435363738394041424344
{ "cType": "mid_dialog_choose", "cId": "0000800", "title": "房屋主人是谁", "resourceMapping": { "Vicky": 658 }, "preDialog": [ { "type": "npc", "npcName": "Dad", "content": "Is it for a cat?" } ], "imgShowTimingList": [ "content", "feedback" ], "img": "0000800.png", "optionList": [ { "option": "This is Mr Rabbit's home.", "needAudio": true }, { "option": "This is a cat's home.", "needAudio": true } ], "answer": [ 0 ], "corFeedback": { "type": "npc", "npcName": "Dad", "content": "Oh, I see." }, "errFeedback": { "type": "npc", "npcName": "Dad", "content": "It is too small for a cat." }, "postDialog": [] }
kpInfo JSON

pushType |
cType |
cId |
kpInfo | [ { "kpId": null, "kpType": "vocab", "kpTitle": "home", "kpSkill": "vocab_meaning", "kpSkillName": "词义" } ]

1234567891011121314
{ "pushType": "relationKp", "cType": "mid_dialog_choose", "cId": "0000800", "kpInfo": [ { "kpId": null, "kpType": "vocab", "kpTitle": "home", "kpSkill": "vocab_meaning", "kpSkillName": "词义" } ] }
原始组件配置 (可编辑后点击"执行重新生成")
【任务标题】 房屋主人是谁 【资源配置】 图片时机： 互动内容 互动反馈 【情境引入】 Dad: Is it for a cat? 【互动内容】 要求：选择正确的回复（默认这句话） 选项：（音频） 选项1：This is Mr Rabbit's home.（正确） 反馈 Dad : Oh, I see. 选项2：This is a cat's home. 反馈: Dad: It is too small for a cat. 【后置对话】 无
33 对话选读 cId: 0000800 mid_dialog_select
已保存 ▶
jsonData

cType |
cId |
title |
resourceMapping | { "Vicky": 658 }
preDialog | []
imgShowTimingList | []
optionList | [ { "option": "It sounds healthy.", "needAudio": false, "feedback": { "type": "npc", "npcName": "Medic", "content": "Really? Medic wants more sleep too!" } }, { "option": "It isn't healthy.", "needAudio": false, "feedback": { "type": "npc", "npcName": "Medic", "content": "Really? But Medic likes sleeping..." } } ]
postDialog | [ { "type": "user", "content": "Going to bed early and getting up early is healthy." }, { "type": "user", "content": "Sleeping too much is not healthy." }, { "type": "npc", "npcName": "Medic", "content": "Medic remembers it now!" } ]

123456789101112131415161718192021222324252627282930313233343536373839404142434445
{ "cType": "mid_dialog_select", "cId": "0000800", "title": "评价随地睡觉的习惯", "resourceMapping": { "Vicky": 658 }, "preDialog": [], "imgShowTimingList": [], "optionList": [ { "option": "It sounds healthy.", "needAudio": false, "feedback": { "type": "npc", "npcName": "Medic", "content": "Really? Medic wants more sleep too!" } }, { "option": "It isn't healthy.", "needAudio": false, "feedback": { "type": "npc", "npcName": "Medic", "content": "Really? But Medic likes sleeping..." } } ], "postDialog": [ { "type": "user", "content": "Going to bed early and getting up early is healthy." }, { "type": "user", "content": "Sleeping too much is not healthy." }, { "type": "npc", "npcName": "Medic", "content": "Medic remembers it now!" } ] }
kpInfo JSON

pushType |
cType |
cId |
kpInfo | [ { "kpId": null, "kpType": "vocab", "kpTitle": "healthy(词义)", "kpSkill": "vocab_meaning", "kpSkillName": "词义" } ]

1234567891011121314
{ "pushType": "relationKp", "cType": "mid_dialog_select", "cId": "0000800", "kpInfo": [ { "kpId": null, "kpType": "vocab", "kpTitle": "healthy(词义)", "kpSkill": "vocab_meaning", "kpSkillName": "词义" } ] }
原始组件配置 (可编辑后点击"执行重新生成")
【任务标题】 评价随地睡觉的习惯 【资源配置】 无 【情境引入】 空 【互动内容】 要求：选择一个你想表达的观点 选项： 选项1：It sounds healthy. 反馈 Medic: Really? Medic wants more sleep too! 选项2：It isn't healthy. 反馈 Medic: Really? But Medic likes sleeping... 【后置对话】 User: Going to bed early and getting up early is healthy. User: Sleeping too much is not healthy. Medic: Medic remembers it now!
34 信息描写 cId: 0000800 mid_message_trace
已保存 ▶
jsonData

cType |
cId |
title |
resourceMapping | { "Vicky": 658 }
cDesc |
question | { "desc": "请描写你需要的水果" }
trace |
img |
inputSet | []

123456789101112131415
{ "cType": "mid_message_trace", "cId": "0000800", "title": "购买葡萄", "resourceMapping": { "Vicky": 658 }, "cDesc": "You bought the fresh grapes you needed. (你购买了需要的葡萄。)", "question": { "desc": "请描写你需要的水果" }, "trace": "grape", "img": "0000800.png", "inputSet": [] }
kpInfo JSON

pushType |
cType |
cId |
kpInfo | [ { "kpId": null, "kpType": "sentence", "kpTitle": "Grape (词形 - 拼写规律)", "kpSkill": "sentence_meaning", "kpSkillName": "语义" } ]

1234567891011121314
{ "pushType": "relationKp", "cType": "mid_message_trace", "cId": "0000800", "kpInfo": [ { "kpId": null, "kpType": "sentence", "kpTitle": "Grape (词形 - 拼写规律)", "kpSkill": "sentence_meaning", "kpSkillName": "语义" } ] }
原始组件配置 (可编辑后点击"执行重新生成")
【任务标题】 购买葡萄 【互动内容】 任务：请描写你需要的水果 答案：grape
35 信息拼词 cId: 0000800 mid_message_spell
已保存 ▶
jsonData

cType |
cId |
title |
resourceMapping | { "Vicky": 658 }
cDesc |
question | { "desc": "请填入“葡萄”的正确的英文拼写" }
tip |
inputConfig | [ { "stem": "G（2）pe", "value": "ra" } ]
stemList | [ "h", "a", "r", "l", "e", "w" ]
img |
inputSet | []

1234567891011121314151617181920212223242526272829
{ "cType": "mid_message_spell", "cId": "0000800", "title": "购买葡萄", "resourceMapping": { "Vicky": 658 }, "cDesc": "You bought the fresh grape successfully. (你成功购买了新鲜的葡萄。)", "question": { "desc": "请填入“葡萄”的正确的英文拼写" }, "tip": "葡萄的英文是 grape / 第二个字母是 r 哦，再想想最后一个空应该填什么吧", "inputConfig": [ { "stem": "G（2）pe", "value": "ra" } ], "stemList": [ "h", "a", "r", "l", "e", "w" ], "img": "0000800.png", "inputSet": [] }
kpInfo JSON

pushType |
cType |
cId |
kpInfo | [ { "kpId": null, "kpType": "sentence", "kpTitle": "Grape (词形 - 拼写规律)", "kpSkill": "sentence_meaning", "kpSkillName": "语义" } ]

1234567891011121314
{ "pushType": "relationKp", "cType": "mid_message_spell", "cId": "0000800", "kpInfo": [ { "kpId": null, "kpType": "sentence", "kpTitle": "Grape (词形 - 拼写规律)", "kpSkill": "sentence_meaning", "kpSkillName": "语义" } ] }
原始组件配置 (可编辑后点击"执行重新生成")
【任务标题】 购买葡萄 【互动内容】 任务描述：请填入“葡萄”的正确的英文拼写 题干：G（2）pe 答案：ra 选项：h, a, r, l, e, w 辅助信息：葡萄的英文是 grape / 第二个字母是 r 哦，再想想最后一个空应该填什么吧
36 信息组句 cId: 0000800 mid_message_combine
已保存 ▶
jsonData

cType |
cId |
title |
resourceMapping | { "Vicky": 658 }
cDesc | You formed the correct question "Is Maeve the visitor you invited?".（你组出了正确的问句“梅芙是你邀请的访客吗？”。）
question | { "desc": "请在空白处填入正确的单词，组成句子" }
tip |
optionList | [ { "option": "is" }, { "option": "the visitor" }, { "option": "you invited" }, { "option": "Maeve" } ]
answer | [ 0, 3, 1, 2 ]
img |
inputSet | []

1234567891011121314151617181920212223242526272829303132333435
{ "cType": "mid_message_combine", "cId": "0000800", "title": "填写信息表", "resourceMapping": { "Vicky": 658 }, "cDesc": "You formed the correct question \"Is Maeve the visitor you invited?\".（你组出了正确的问句“梅芙是你邀请的访客吗？”。）", "question": { "desc": "请在空白处填入正确的单词，组成句子" }, "tip": "可以用 is 引导的一般疑问句询问；you invited 是 visitor 的后置定语", "optionList": [ { "option": "is" }, { "option": "the visitor" }, { "option": "you invited" }, { "option": "Maeve" } ], "answer": [ 0, 3, 1, 2 ], "img": "0000800.png", "inputSet": [] }
kpInfo JSON

pushType |
cType |
cId |
kpInfo | [ { "kpId": null, "kpType": "sentence", "kpTitle": "Grape (词形 - 拼写规律)", "kpSkill": "sentence_meaning", "kpSkillName": "语义" } ]

1234567891011121314
{ "pushType": "relationKp", "cType": "mid_message_combine", "cId": "0000800", "kpInfo": [ { "kpId": null, "kpType": "sentence", "kpTitle": "Grape (词形 - 拼写规律)", "kpSkill": "sentence_meaning", "kpSkillName": "语义" } ] }
原始组件配置 (可编辑后点击"执行重新生成")
【任务标题】填写信息表【互动内容】任务描述：请在空白处填入正确的单词，组成句子选项1：is选项2：the visitor选项3：you invited选项4：Maeve答案：Is Maeve the visitor you invited?辅助信息：可以用 is 引导的一般疑问句询问；you invited 是 visitor 的后置定语
37 信息补词 cId: 0000800 mid_message_fillin
已保存 ▶
jsonData

cType |
cId |
title |
resourceMapping | { "Vicky": 658 }
cDesc |
question | { "desc": "请在空白处填入正确的字母，组成完整单词" }
tip |
inputConfig | [ { "stem": "K(3)ledge", "value": "now" } ]
img |
inputSet | []

123456789101112131415161718192021
{ "cType": "mid_message_fillin", "cId": "0000800", "title": "填写信息表", "resourceMapping": { "Vicky": 658 }, "cDesc": "You completed the word \"knowledge\". (你补全了单词“知识”。)", "question": { "desc": "请在空白处填入正确的字母，组成完整单词" }, "tip": "需要填入的单词的中文释义是“知识”", "inputConfig": [ { "stem": "K(3)ledge", "value": "now" } ], "img": "0000800.png", "inputSet": [] }
kpInfo JSON

pushType |
cType |
cId |
kpInfo | [ { "kpId": null, "kpType": "sentence", "kpTitle": "Grape (词形 - 拼写规律)", "kpSkill": "sentence_meaning", "kpSkillName": "语义" } ]

1234567891011121314
{ "pushType": "relationKp", "cType": "mid_message_fillin", "cId": "0000800", "kpInfo": [ { "kpId": null, "kpType": "sentence", "kpTitle": "Grape (词形 - 拼写规律)", "kpSkill": "sentence_meaning", "kpSkillName": "语义" } ] }
原始组件配置 (可编辑后点击"执行重新生成")
【任务标题】 填写信息表 【互动内容】 任务描述：请在空白处填入正确的字母，组成完整单词 题干：K(3)ledge 答案：now 辅助信息：需要填入的单词的中文释义是“知识”
38 信息填词 cId: 0000800 mid_message_word
已保存 ▶
jsonData

cType |
cId |
title |
resourceMapping | { "Vicky": 658 }
cDesc |
question | { "desc": "请在空白处填入合适的单词，使句意完整" }
tip |
answer | [ "knowledge", "information" ]
img |
inputSet | []

12345678910111213141516171819
{ "cType": "mid_message_word", "cId": "0000800", "title": "填写信息表", "resourceMapping": { "Vicky": 658 }, "cDesc": "You filled in \"knowledge\" and \"information\". (你填写了“知识”对应的单词。)", "question": { "desc": "请在空白处填入合适的单词，使句意完整" }, "tip": "需要填入的单词的中文释义是“知识”", "answer": [ "knowledge", "information" ], "img": "0000800.png", "inputSet": [] }
kpInfo JSON

pushType |
cType |
cId |
kpInfo | [ { "kpId": null, "kpType": "sentence", "kpTitle": "Grape (词形 - 拼写规律)", "kpSkill": "sentence_meaning", "kpSkillName": "语义" } ]

1234567891011121314
{ "pushType": "relationKp", "cType": "mid_message_word", "cId": "0000800", "kpInfo": [ { "kpId": null, "kpType": "sentence", "kpTitle": "Grape (词形 - 拼写规律)", "kpSkill": "sentence_meaning", "kpSkillName": "语义" } ] }
原始组件配置 (可编辑后点击"执行重新生成")
【任务标题】 填写信息表 【互动内容】 任务描述：请在空白处填入合适的单词，使句意完整 答案：knowledge, information 辅助信息：需要填入的单词的中文释义是“知识”
39 信息填句 cId: 0000800 mid_message_sentence
已保存 ▶
jsonData

cType |
cId |
title |
resourceMapping | { "Vicky": 658 }
cDesc |
question | { "desc": "请填入正确的内容，使句意完整" }
tip |
answerHint | The main purpose of this tour is to learn knowledge about local traditional crafts.
img |
inputSet | []

12345678910111213141516
{ "cType": "mid_message_sentence", "cId": "0000800", "title": "填写信息表", "resourceMapping": { "Vicky": 658 }, "cDesc": "You filled in the information form correctly. (你正确填写了信息表。)", "question": { "desc": "请填入正确的内容，使句意完整" }, "tip": "你可以使用 The main purpose of this tour is...", "answerHint": "The main purpose of this tour is to learn knowledge about local traditional crafts.", "img": "0000800.png", "inputSet": [] }
kpInfo JSON

pushType |
cType |
cId |
kpInfo | [ { "kpId": null, "kpType": "sentence", "kpTitle": "Grape (词形 - 拼写规律)", "kpSkill": "sentence_meaning", "kpSkillName": "语义" } ]

1234567891011121314
{ "pushType": "relationKp", "cType": "mid_message_sentence", "cId": "0000800", "kpInfo": [ { "kpId": null, "kpType": "sentence", "kpTitle": "Grape (词形 - 拼写规律)", "kpSkill": "sentence_meaning", "kpSkillName": "语义" } ] }
原始组件配置 (可编辑后点击"执行重新生成")
【任务标题】 填写信息表 【互动内容】 任务描述：请填入正确的内容，使句意完整 推荐答案：The main purpose of this tour is to learn knowledge about local traditional crafts. 辅助信息：你可以使用 The main purpose of this tour is...
40 图片单选 cId: 0000800 mid_image_choose
已保存 ▶
jsonData

cType |
cId |
title |
meaning |
resourceMapping | { "Vicky": 658 }
question | { "desc": "Find $warm$ water.", "content": "Find $warm$ water." }
imageInfo | { "questionImg": "0000800_question.png", "answerImg": "0000800_answer.png" }
optionList | [ { "option": "0000800_option_00.png" }, { "option": "0000800_option_01.png" }, { "option": "0000800_option_02.png" } ]
answer | [ 2 ]
preDialog | [ { "type": "user", "content": "Look!" } ]
tip |
corFeedback | { "type": "npc", "npcName": "User", "content": "Warm water here!" }
errFeedback | { "type": "npc", "npcName": "User", "content": "It doesn't seem like there's warm water." }
postDialog | []
cDesc |

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
{ "cType": "mid_image_choose", "cId": "0000800", "title": "选择合适的河段取水", "meaning": "", "resourceMapping": { "Vicky": 658 }, "question": { "desc": "Find $warm$ water.", "content": "Find $warm$ water." }, "imageInfo": { "questionImg": "0000800_question.png", "answerImg": "0000800_answer.png" }, "optionList": [ { "option": "0000800_option_00.png" }, { "option": "0000800_option_01.png" }, { "option": "0000800_option_02.png" } ], "answer": [ 2 ], "preDialog": [ { "type": "user", "content": "Look!" } ], "tip": "warm 指“温暖的”。", "corFeedback": { "type": "npc", "npcName": "User", "content": "Warm water here!" }, "errFeedback": { "type": "npc", "npcName": "User", "content": "It doesn't seem like there's warm water." }, "postDialog": [], "cDesc": "You found the warm water area. (你找到了温暖的水域。)" }
kpInfo JSON

pushType |
cType |
cId |
kpInfo | [ { "kpId": "0220004", "kpType": "vocab", "kpTitle": "warm", "kpSkill": "vocab_meaning", "kpSkillName": "词义" } ]

1234567891011121314
{ "pushType": "relationKp", "cType": "mid_image_choose", "cId": "0000800", "kpInfo": [ { "kpId": "0220004", "kpType": "vocab", "kpTitle": "warm", "kpSkill": "vocab_meaning", "kpSkillName": "词义" } ] }
原始组件配置 (可编辑后点击"执行重新生成")
【任务标题】 选择合适的河段取水 【情境引入】 User: Look! 【互动内容】 Find $warm$ water. （音频） 选项： 00 01 02 答案： 02 辅助信息：warm 指“温暖的”。 【互动反馈】 正确 User：Warm water here! 错误 User：It doesn't seem like there's warm water. 【后置对话】 无
41 图片多选 cId: 0000800 mid_image_multiple
已保存 ▶
jsonData

cType |
cId |
title |
meaning |
resourceMapping | { "Vicky": 658 }
question | { "desc": "Find parts of the $house$. （音频）", "content": "Find parts of the $house$. （音频）" }
imageInfo | { "questionImg": "0000800_question.png", "answerImg": "0000800_answer.png" }
optionList | [ { "option": "0000800_option_00.png" }, { "option": "0000800_option_01.png" }, { "option": "0000800_option_02.png" }, { "option": "0000800_option_03.png" }, { "option": "0000800_option_04.png" } ]
answer | [ 2, 3, 4 ]
preDialog | [ { "type": "npc", "npcName": "Peter", "content": "Let's fix the house!" }, { "type": "user", "content": "Okay." } ]
tip |
corFeedback | { "type": "user", "content": "These are all parts of the house." }
errFeedback | { "type": "user", "content": "Let's check again." }
postDialog | []
cDesc |

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
{ "cType": "mid_image_multiple", "cId": "0000800", "title": "选出需要修复的部分", "meaning": "", "resourceMapping": { "Vicky": 658 }, "question": { "desc": "Find parts of the $house$. （音频）", "content": "Find parts of the $house$. （音频）" }, "imageInfo": { "questionImg": "0000800_question.png", "answerImg": "0000800_answer.png" }, "optionList": [ { "option": "0000800_option_00.png" }, { "option": "0000800_option_01.png" }, { "option": "0000800_option_02.png" }, { "option": "0000800_option_03.png" }, { "option": "0000800_option_04.png" } ], "answer": [ 2, 3, 4 ], "preDialog": [ { "type": "npc", "npcName": "Peter", "content": "Let's fix the house!" }, { "type": "user", "content": "Okay." } ], "tip": "house 指“房子”。", "corFeedback": { "type": "user", "content": "These are all parts of the house." }, "errFeedback": { "type": "user", "content": "Let's check again." }, "postDialog": [], "cDesc": "You found the broken parts of the house. (你找到了房子需要修复的部分。)" }
kpInfo JSON

pushType |
cType |
cId |
kpInfo | [ { "kpId": null, "kpType": "vocab", "kpTitle": "house", "kpSkill": "vocab_meaning", "kpSkillName": "词义" } ]

1234567891011121314
{ "pushType": "relationKp", "cType": "mid_image_multiple", "cId": "0000800", "kpInfo": [ { "kpId": null, "kpType": "vocab", "kpTitle": "house", "kpSkill": "vocab_meaning", "kpSkillName": "词义" } ] }
原始组件配置 (可编辑后点击"执行重新生成")
【任务标题】 选出需要修复的部分 【情境引入】 Peter: Let's fix the house! User: Okay. 【互动内容】 Find parts of the $house$. （音频） 选项： 00 01 02 03 04 答案： 02 03 04 辅助信息：house 指“房子”。 【互动反馈】 正确 User ：These are all parts of the house. 错误 User：Let's check again. 【后置对话】 无
42 图片有序 cId: 0000800 mid_image_sequence
已保存 ▶
jsonData

cType |
cId |
title |
meaning |
resourceMapping | { "Vicky": 658 }
question | { "desc": "We must go $one by one$." }
imageInfo | { "questionImg": "0000800_question.png", "answerImg": "0000800_answer.png" }
optionList | [ { "option": "0000800_option_00.png" }, { "option": "0000800_option_01.png" }, { "option": "0000800_option_02.png" }, { "option": "0000800_option_03.png" } ]
answer | [ 0, 1, 2, 3 ]
preDialog | []
tip |
corFeedback | {}
errFeedback | { "type": "npc", "npcName": "Dan", "content": "We can't jump like that." }
postDialog | []
cDesc |

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
{ "cType": "mid_image_sequence", "cId": "0000800", "title": "排序跳格子顺序", "meaning": "", "resourceMapping": { "Vicky": 658 }, "question": { "desc": "We must go $one by one$." }, "imageInfo": { "questionImg": "0000800_question.png", "answerImg": "0000800_answer.png" }, "optionList": [ { "option": "0000800_option_00.png" }, { "option": "0000800_option_01.png" }, { "option": "0000800_option_02.png" }, { "option": "0000800_option_03.png" } ], "answer": [ 0, 1, 2, 3 ], "preDialog": [], "tip": "one by one指\"一个接一个\"", "corFeedback": {}, "errFeedback": { "type": "npc", "npcName": "Dan", "content": "We can't jump like that." }, "postDialog": [], "cDesc": "You arranged hopscotch order one by one. (你一个接一个地排好了跳格子的顺序。)" }
kpInfo JSON

pushType |
cType |
cId |
kpInfo | [ { "kpId": null, "kpType": "sentence", "kpTitle": "... one by one.", "kpSkill": "sentence_meaning", "kpSkillName": "语义" } ]

1234567891011121314
{ "pushType": "relationKp", "cType": "mid_image_sequence", "cId": "0000800", "kpInfo": [ { "kpId": null, "kpType": "sentence", "kpTitle": "... one by one.", "kpSkill": "sentence_meaning", "kpSkillName": "语义" } ] }
原始组件配置 (可编辑后点击"执行重新生成")
【任务标题】排序跳格子顺序 【情境引入】 无 【互动内容】 We must go $one by one$. 选项： 00 01 02 03 正确顺序： 1.00 2.01 3.02 4.03 辅助信息：one by one指"一个接一个"， 【互动反馈】 正确：无 错误：Dan : We can't jump like that. 【后置对话】 无
43 图片拖拽 cId: 0000800 mid_image_drag
已保存 ▶
jsonData

cType |
cId |
title |
meaning |
resourceMapping | {}
question | { "desc": "Let's pick the $fish$, $crab$ and $octopus$ in order." }
imageInfo | { "questionImg": "0000800_question.png", "answerImg": "0000800_answer.png" }
optionList | [ { "option": "0000800_option_00.png" }, { "option": "0000800_option_01.png" }, { "option": "0000800_option_02.png" }, { "option": "0000800_option_03.png" } ]
answer | [ "00", "02", "01" ]
preDialog | [ { "type": "npc", "npcName": "Sarah", "content": "Look! So many gloves there!" } ]
tip |
corFeedback | { "type": "npc", "npcName": "Daisy", "content": "Yes! You got it right!" }
errFeedback | { "type": "npc", "npcName": "Daisy", "content": "This doesn't seem like a crab." }
postDialog | [ { "type": "npc", "npcName": "Daisy", "content": "very good!" } ]
cDesc |

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
{ "cType": "mid_image_drag", "cId": "0000800", "title": "选出正确的物品", "meaning": "", "resourceMapping": {}, "question": { "desc": "Let's pick the $fish$, $crab$ and $octopus$ in order." }, "imageInfo": { "questionImg": "0000800_question.png", "answerImg": "0000800_answer.png" }, "optionList": [ { "option": "0000800_option_00.png" }, { "option": "0000800_option_01.png" }, { "option": "0000800_option_02.png" }, { "option": "0000800_option_03.png" } ], "answer": [ "00", "02", "01" ], "preDialog": [ { "type": "npc", "npcName": "Sarah", "content": "Look! So many gloves there!" } ], "tip": "fish 指“鱼”；crab 指“螃蟹”；octopus 指“章鱼”", "corFeedback": { "type": "npc", "npcName": "Daisy", "content": "Yes! You got it right!" }, "errFeedback": { "type": "npc", "npcName": "Daisy", "content": "This doesn't seem like a crab." }, "postDialog": [ { "type": "npc", "npcName": "Daisy", "content": "very good!" } ], "cDesc": "You found fish, crab and octopus in order. (你按顺序找到了鱼、螃蟹和章鱼。)" }
kpInfo JSON

pushType |
cType |
cId |
kpInfo | [ { "kpId": null, "kpType": "vocab", "kpTitle": "hammer （词义）", "kpSkill": "vocab_meaning", "kpSkillName": "词义" } ]

1234567891011121314
{ "pushType": "relationKp", "cType": "mid_image_drag", "cId": "0000800", "kpInfo": [ { "kpId": null, "kpType": "vocab", "kpTitle": "hammer （词义）", "kpSkill": "vocab_meaning", "kpSkillName": "词义" } ] }
原始组件配置 (可编辑后点击"执行重新生成")
【任务标题】 选出正确的物品 【情境引入】 Sarah : Look! So many gloves there! 【互动内容】 Let's pick the $fish$, $crab$ and $octopus$ in order. 选项： 00 01 02 03 答案： 00 02 01 辅助信息：fish 指“鱼”；crab 指“螃蟹”；octopus 指“章鱼” 【互动反馈】 正确 Daisy ：Yes! You got it right! 错误 Daisy：This doesn't seem like a crab. 【后置对话】 Daisy：very good!