就绪
成功: 0 失败: 0

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

生成时间: 2026-04-30 14:15:50 模型: doubao-seed-2.0-pro Wiki: AEPJwf0DUiDkWska4SbceSAbnyc
42
总组件
36
成功
5
失败
1
跳过
1 对话朗读 cId: 0000800 mid_dialog_repeat
已保存 ▶
jsonData
{ "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 (1个知识点)

# | kpId | kpType | kpTitle | kpSkill | kpSkillName
--- | --- | --- | --- | --- | ---
[0] |  |  | school |  |

2 对话挖空 cId: 0000801 mid_dialog_fillin
已保存 ▶
jsonData
{ "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 (1个知识点)

# | kpId | kpType | kpTitle | kpSkill | kpSkillName
--- | --- | --- | --- | --- | ---
[0] |  |  | school |  |

3 对话朗读 cId: 0000802 mid_dialog_repeat
已保存 ▶
jsonData
{ "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 (3个知识点)

# | kpId | kpType | kpTitle | kpSkill | kpSkillName
--- | --- | --- | --- | --- | ---
[0] |  |  | You need to... |  |
[1] |  |  | study |  |
[2] |  |  | play |  |

4 对话朗读 cId: 0000803 mid_dialog_repeat
已保存 ▶
jsonData
{ "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 (3个知识点)

# | kpId | kpType | kpTitle | kpSkill | kpSkillName
--- | --- | --- | --- | --- | ---
[0] |  |  | We can... |  |
[1] |  |  | play |  |
[2] |  |  | school |  |

5 对话朗读 cId: 0000804 mid_dialog_repeat
已保存 ▶
jsonData
{ "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 (1个知识点)

# | kpId | kpType | kpTitle | kpSkill | kpSkillName
--- | --- | --- | --- | --- | ---
[0] |  |  | student |  |

6 对话组句 cId: 0000805 mid_dialog_sentence
已保存 ▶
jsonData
{ "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 (1个知识点)

# | kpId | kpType | kpTitle | kpSkill | kpSkillName
--- | --- | --- | --- | --- | ---
[0] |  |  | student |  |

7 对话朗读 cId: 0000806 mid_dialog_repeat
已保存 ▶
jsonData
{ "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": [] }
8 对话朗读 cId: 0000807 mid_dialog_repeat
已保存 ▶
jsonData
{ "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": [] }
9 对话挖空 cId: 0000808 mid_dialog_fillin
已保存 ▶
jsonData
{ "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 (1个知识点)

# | kpId | kpType | kpTitle | kpSkill | kpSkillName
--- | --- | --- | --- | --- | ---
[0] |  |  | study |  |

10 对话朗读 cId: 0000809 mid_dialog_repeat
已保存 ▶
jsonData
{ "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": [] }
11 听力选择 cId: 0000810 ? 失败 ▶
错误: LLM返回内容不是合法JSON: Expecting value: line 1 column 1 (char 0) 内容: 无
12 对话组句 cId: 0000811 mid_dialog_sentence
已保存 ▶
jsonData
{ "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 (2个知识点)

# | kpId | kpType | kpTitle | kpSkill | kpSkillName
--- | --- | --- | --- | --- | ---
[0] |  |  | You need to... |  |
[1] |  |  | study |  |

13 对话组句 cId: 0000812 mid_dialog_sentence
已保存 ▶
jsonData
{ "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 (2个知识点)

# | kpId | kpType | kpTitle | kpSkill | kpSkillName
--- | --- | --- | --- | --- | ---
[0] |  |  | You need to... |  |
[1] |  |  | school |  |

14 对话挖空 cId: 0000813 mid_dialog_fillin
已保存 ▶
jsonData
{ "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 (1个知识点)

# | kpId | kpType | kpTitle | kpSkill | kpSkillName
--- | --- | --- | --- | --- | ---
[0] |  |  | play |  |

15 对话组句 cId: 0000814 mid_dialog_sentence
已保存 ▶
jsonData
{ "cType": "mid_dialog_sentence", "cId": "0000814", "title": "表示可以坐校车上学", "resourceMapping": { "Eva": 738, "Peter": 739 }, "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 (1个知识点)

# | kpId | kpType | kpTitle | kpSkill | kpSkillName
--- | --- | --- | --- | --- | ---
[0] |  |  | We can... |  |

16 对话挖空 cId: 0000815 mid_dialog_fillin
已保存 ▶
jsonData
{ "cType": "mid_dialog_fillin", "cId": "0000815", "title": "表示 Peter 是学生了", "resourceMapping": { "Eva": 738, "Peter": 739 }, "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 (1个知识点)

# | kpId | kpType | kpTitle | kpSkill | kpSkillName
--- | --- | --- | --- | --- | ---
[0] |  |  | student |  |

17 核心合作阅读 cId: 0000800 core_reading_order
已保存 ▶
taskInfo
{ "cType": "core_reading_order", "cId": "0000800", "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": { "Eva": 738, "Peter": 739 } }
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": "" } ] }
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 ] } ] }
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": "我们来认识一下这段话中的关键单词 exams。exams 是 exam 的复数形式，意思是考试，我们常说的参加考试可以说 take exams。", "npcName": "Brainy", "learning": [ { "answer": [ 0 ], "meaning": "句意选择题", "optionList": [ { "option": "在瓦拉学院，开拓者们没有考试。", "feedback": { "type": "npc", "content": "太棒啦！你准确理解了 exams 的含义，也掌握了这句话的意思哦～", "npcName": "Brainy" } }, { "option": "在瓦拉学院，开拓者们没有课程。", "feedback": { "type": "npc", "content": "不对哦，课程的英文是 classes，我们这里讲的 exams 是考试的意思，再回忆一下释义吧。", "npcName": "Brainy" } } ], "question": { "type": "npc", "npcName": "Brainy", "content": "接下来，我们来看下包含 exams 的句子 At Vala Academy, Pioneers don't have exams. 是什么意思呢？" } }, { "answer": [ 1 ], "meaning": "段落大意题", "optionList": [ { "option": "瓦拉学院的开拓者不需要考试，也不需要任何积分就能升级。", "feedback": { "type": "npc", "content": "有点小偏差哦，文中明确提到升级是需要积分的，再仔细看看段落内容吧。", "npcName": "Brainy" } }, { "option": "瓦拉学院的开拓者没有考试，但是升级需要积分。", "feedback": { "type": "npc", "content": "回答得太完美了！你完全抓住了这段的两个核心信息点～", "npcName": "Brainy" } } ], "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 的意思是俱乐部，加入俱乐部可以说 join a club。", "npcName": "Brainy", "learning": [ { "answer": [ 1 ], "meaning": "句意选择题", "optionList": [ { "option": "你可以选择自己最喜欢的课程去学习。", "feedback": { "type": "npc", "content": "不对哦，课程的英文是 course，我们这里的关键词 club 是俱乐部的意思，再回忆一下释义吧。", "npcName": "Brainy" } }, { "option": "你可以选择自己最喜欢的俱乐部加入。", "feedback": { "type": "npc", "content": "完全正确！你已经掌握了 club 的意思，也理解了这句话的含义啦～", "npcName": "Brainy" } } ], "question": { "type": "npc", "npcName": "Brainy", "content": "我们来看包含 club 的句子 You can choose your favourite club to join. 是什么意思呢？" } }, { "answer": [ 0 ], "meaning": "段落大意题", "optionList": [ { "option": "你可以选择加入喜欢的俱乐部，如果对某个事物感兴趣，也能找到对应的俱乐部。", "feedback": { "type": "npc", "content": "太厉害了！你精准理解了这两句话的意思，把整段的核心内容都抓住了～", "npcName": "Brainy" } }, { "option": "所有的俱乐部都非常受欢迎，你必须加入其中一个。", "feedback": { "type": "npc", "content": "不对哦，这段没有提到俱乐部受欢迎，也没有要求必须加入俱乐部，再仔细看看内容吧。", "npcName": "Brainy" } } ], "question": { "type": "npc", "npcName": "Brainy", "content": "接下来看看这段整体想表达什么内容吧？" } } ] } ] }
kpInfo (6个知识点)

# | kpId | kpType | kpTitle | kpSkill | kpSkillName
--- | --- | --- | --- | --- | ---
[0] |  |  | plant n. 植物 |  |
[1] |  |  | club n. 俱乐部 |  |
[2] |  |  | join v. 加入 |  |
[3] |  |  | member n. 成员 |  |
[4] |  |  | choose v. 选择 |  |
[5] |  |  | interested adj. 感兴趣的 |  |

中间结果: 阅读材料格式化

    ```
    # 材料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：我们来认识一下这段话中的关键单词 exams。exams 是 exam 的复数形式，意思是考试，我们常说的参加考试可以说 take exams。
    1. 句意选择题
    Brainy：接下来，我们来看下包含 exams 的句子 At Vala Academy, Pioneers don't have exams. 是什么意思呢？
    - 在瓦拉学院，开拓者们没有考试。[正确]
      Brainy：太棒啦！你准确理解了 exams 的含义，也掌握了这句话的意思哦～
    - 在瓦拉学院，开拓者们没有课程。
      Brainy：不对哦，课程的英文是 classes，我们这里讲的 exams 是考试的意思，再回忆一下释义吧。

    2. 段落大意题
    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 的意思是俱乐部，加入俱乐部可以说 join a club。
    1. 句意选择题
    Brainy：我们来看包含 club 的句子 You can choose your favourite club to join. 是什么意思呢？
    - 你可以选择自己最喜欢的课程去学习。
      Brainy：不对哦，课程的英文是 course，我们这里的关键词 club 是俱乐部的意思，再回忆一下释义吧。
    - 你可以选择自己最喜欢的俱乐部加入。[正确]
      Brainy：完全正确！你已经掌握了 club 的意思，也理解了这句话的含义啦～

    2. 段落大意题
    Brainy：接下来看看这段整体想表达什么内容吧？
    - 你可以选择加入喜欢的俱乐部，如果对某个事物感兴趣，也能找到对应的俱乐部。[正确]
      Brainy：太厉害了！你精准理解了这两句话的意思，把整段的核心内容都抓住了～
    - 所有的俱乐部都非常受欢迎，你必须加入其中一个。
      Brainy：不对哦，这段没有提到俱乐部受欢迎，也没有要求必须加入俱乐部，再仔细看看内容吧。
    # 完结反馈
    Brainy：太优秀啦！你已经完成了所有段落的学习，知识点都掌握得非常好哦～
    ```

18 核心看图选词 cId: 0000800 core_reading_imageDrag
已保存 ▶
taskInfo
{ "cType": "core_reading_imageDrag", "cId": "0000800", "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": { "Eva": 738, "Peter": 739 }, "cDesc": "你探索单词城堡时听到本问河马住在哪里，你想到它们栖息在湖里，补全了墙上的空缺句子。当布莱尼说起动物园里的其他动物时，你想到树木是很多动物园动物的栖息地，完成了城堡墙上的下一句句子。" }
questionGroup
[{'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": "小朋友，这道题我们要选河马居住的地方哦，先来学习三个核心单词的意思吧~" }, "optionList": [ { "option": "tree", "feedback": { "type": "npc", "npcName": "Brainy", "content": "tree的意思是“树”，河马体型很大，没办法住在树上哦，再试试看吧~" } }, { "option": "grass", "feedback": { "type": "npc", "npcName": "Brainy", "content": "grass的意思是“草”，草是河马的食物，不是它居住的地方哦，再想想~" } }, { "option": "lake", "feedback": { "type": "npc", "npcName": "Brainy", "content": "答对啦！lake的意思是“湖”，河马很喜欢待在水里，湖泊就是它的家哦，你真棒！" } } ], "answer": [ 2 ] }, { "question": { "type": "npc", "npcName": "Brainy", "content": "现在我们来看题目哦，Ben问“河马住在哪里？”，我们要选合适的单词填到“in the ___”里，完成回答~" }, "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": "grass", "feedback": { "type": "npc", "npcName": "Brainy", "content": "grass是“草”，草是植物，也不是动物哦，再想想~" } }, { "option": "tree", "feedback": { "type": "npc", "npcName": "Brainy", "content": "对啦，tree是“树”，动物园里会种树给动物们遮阴，是动物园里常见的事物哦，你记住啦~" } } ], "answer": [ 2 ] }, { "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 (5个知识点)

# | kpId | kpType | kpTitle | kpSkill | kpSkillName
--- | --- | --- | --- | --- | ---
[0] |  |  | lake n. 湖 |  |
[1] |  |  | monkey n. 猴子 |  |
[2] |  |  | three num. 三 |  |
[3] |  |  | How many ...? 多少……？ |  |
[4] |  |  | There be ... 有…… |  |

中间结果: 学习流程配置

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

    ## 互动题目
    ### 1. 句意选词题
    Brainy：小朋友，这道题我们要选河马居住的地方哦，先来学习三个核心单词的意思吧~
    - 选项 A：tree
      Brainy：tree的意思是“树”，河马体型很大，没办法住在树上哦，再试试看吧~
    - 选项 B：grass
      Brainy：grass的意思是“草”，草是河马的食物，不是它居住的地方哦，再想想~
    - 选项 C：lake [正确]
      Brainy：答对啦！lake的意思是“湖”，河马很喜欢待在水里，湖泊就是它的家哦，你真棒！

    ### 2. 原题降级
    Brainy：现在我们来看题目哦，Ben问“河马住在哪里？”，我们要选合适的单词填到“in the ___”里，完成回答~
    - 选项 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：grass
      Brainy：grass是“草”，草是植物，也不是动物哦，再想想~
    - 选项 C：tree [正确]
      Brainy：对啦，tree是“树”，动物园里会种树给动物们遮阴，是动物园里常见的事物哦，你记住啦~

    ### 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 you explore the word castle, you hear Ben ask where hippos live, and you figure out they make their home in the lake to fill the blank sentence on the wall.（你探索单词城堡时听到本问河马住在哪里，你想到它们栖息在湖里，补全了墙上的空缺句子。）
    When Brainy mentions other animals in the zoo, you connect that trees are the habitats for many zoo animals and complete the next sentence on the castle wall.（当布莱尼说起动物园里的其他动物时，你想到树木是很多动物园动物的栖息地，完成了城堡墙上的下一句句子。）

19 核心口语快答 cId: 0000800 core_speaking_reply
已保存 ▶
taskInfo
{ "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": { "Eva": 738, "Peter": 739 } }
dialogSetting
{ "setting": { "npcName": "Logan", "round": 5, "checkRound": 3 } }
dialogConfig
{ "config": { "asrPrompt": [ "elephant", "shower", "water", "keepers", "help", "clean", "Wander Port", "Logan" ], "promptInfo": { "default": "# 1. 角色（你要扮演谁）\n你是Logan，在Wander Port的清洁站工作。你的语言风格简单亲切，适合儿童理解。\n# 2. 任务（你如何参与对话）\n1. 对话开场先询问大象的情况，确认大象是不是需要洗澡。\n2. 当用户说明大象没洗澡后，告诉用户可以等一等，或许饲养员很快会来。\n3. 之后询问用户是否愿意帮忙给大象洗澡。\n4. 如果用户明确表示愿意帮忙，先表达感谢，然后告诉用户你会马上送干净的水过去。\n5. 如果用户表示不愿意帮忙，你可以说没关系，你会自己想办法给大象洗澡，自然结束对话。\n6. 如果用户的回答你没听懂，可以用简单的英语请用户再重复一遍，比如\"Pardon?\"或者\"Can you say that again?\"。\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- 除开场轮次外，每次回应，可以先基于用户的话给一句反馈。然后再推进你的任务。", "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 sleeping. Don't wake her up.", "feedback": { "type": "npc", "npcName": "Brainy", "content": "这个回答不太对哦，现在大象是需要洗澡，不是在睡觉呀，再选一次试试看吧。" } }, { "option": "I don't know where the elephant is.", "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": "Let's wait for the keepers together.", "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 can go home first and come back later.", "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.", "feedback": { "type": "npc", "npcName": "Brainy", "content": "这个回答不对哦，我们本来就很愿意帮大象洗澡的，再选一次吧。" } }, { "option": "We need to ask our parents first.", "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": "太棒啦！你已经顺利完成了这次对话任务，成功和Logan沟通好了帮助大象洗澡的事，你做得超棒哦！" } } }
kpInfo (3个知识点)

# | kpId | kpType | kpTitle | kpSkill | kpSkillName
--- | --- | --- | --- | --- | ---
[0] |  |  | Let's... 让我们…… |  |
[1] |  |  | Instead of..., we'd better... 与其……，我们不如…… |  |
[2] |  |  | ... love(s) to... ……很乐意…… |  |

中间结果: 学习流程配置

    ```
    # 开场回合
    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 sleeping. Don't wake her up.
      Brainy：这个回答不太对哦，现在大象是需要洗澡，不是在睡觉呀，再选一次试试看吧。
    （C）I don't know where the elephant is.
      Brainy：这个回答不符合现在的情况哦，咱们已经知道大象的状况啦，再选一次吧。
    Logan：Are you saying she hasn't had a shower yet? Maybe someone will probably come soon.

    # 中间回合2
    Brainy：Logan问你是不是说大象还没洗澡，他说可能很快就会有人过来啦，现在你要建议我们别在这儿等，最好先去给她拿点水哦。
    用户选项:
    （A）Let's wait for the keepers together.
      Brainy：这个回答不对哦，现在我们不要原地等待，要主动先去取水呀，再试一次吧。
    （B）Instead of waiting here, we'd better get some water for her first.
      Brainy：答对啦！你太厉害了，现在把这句话大声读出来就更好啦~
    （C）We can go home first and come back later.
      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.
      Brainy：这个回答不对哦，我们本来就很愿意帮大象洗澡的，再选一次吧。
    （C）We need to ask our parents first.
      Brainy：这个回答不符合现在的情境哦，我们已经准备好帮忙啦，再试一次吧。
    Logan：Great. We will send some water to her right away.

    # 结尾回合
    Brainy：太棒啦！你已经顺利完成了这次对话任务，成功和Logan沟通好了帮助大象洗澡的事，你做得超棒哦！
    ```

中间结果: promptInfo配置

    ```
    # 1. 角色（你要扮演谁）
    你是Logan，在Wander Port的清洁站工作。你的语言风格简单亲切，适合儿童理解。
    # 2. 任务（你如何参与对话）
    1. 对话开场先询问大象的情况，确认大象是不是需要洗澡。
    2. 当用户说明大象没洗澡后，告诉用户可以等一等，或许饲养员很快会来。
    3. 之后询问用户是否愿意帮忙给大象洗澡。
    4. 如果用户明确表示愿意帮忙，先表达感谢，然后告诉用户你会马上送干净的水过去。
    5. 如果用户表示不愿意帮忙，你可以说没关系，你会自己想办法给大象洗澡，自然结束对话。
    6. 如果用户的回答你没听懂，可以用简单的英语请用户再重复一遍，比如"Pardon?"或者"Can you say that again?"。
    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,clean,Wander Port,Logan

20 口语独白 cId: 0000800 ? 跳过 ▶
跳过: 类型 '口语独白' 尚未实现生成器
21 核心口语妙问 cId: 0000800 core_speaking_inquiry
已保存 ▶
taskInfo
{ "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": { "Eva": 738, "Peter": 739 } }
dialogSetting
{ "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? 我在那儿还能做些什么？" } } }
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": "这句话是用来索要毛巾的，现在我们首先需要问健身房的位置哦，请再试一次。" } }, { "option": "What can I do in the gym?", "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 is 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": "I want to drink some water.", "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": "What else can I do there?", "feedback": { "type": "npc", "npcName": "Brainy", "content": "你太棒了！正确询问了在健身房里可以做的其他事。请大声朗读这句话！" } }, { "option": "Can you give me a towel?", "feedback": { "type": "npc", "npcName": "Brainy", "content": "Chloe已经答应给你拿毛巾啦，不需要再问啦，试着问问健身房还有什么可以做的吧。" } }, { "option": "Where is the restaurant?", "feedback": { "type": "npc", "npcName": "Brainy", "content": "这句话是询问餐厅位置的，我们现在需要问健身房相关的内容哦，请再试一次。" } } ], "answer": [ 0 ], "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 (3个知识点)

# | kpId | kpType | kpTitle | kpSkill | kpSkillName
--- | --- | --- | --- | --- | ---
[0] |  |  | Where can I find the gym？我在哪里能找到健身房？ |  |
[1] |  |  | Can I have a towel please?？我能要一条毛巾吗？ |  |
[2] |  |  | What else can I do there? 我在那儿还能做些什么？ |  |

中间结果: 学习流程配置

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

    # 中间回合1
    Brainy：空乘Chloe主动询问你是否需要帮助，现在你需要向她询问健身房的位置。
    用户选项:
    （选项A）Where can I find the gym? [正确]
      Brainy：太棒了！你正确询问了健身房的位置。请大声朗读这句话！
    （选项B）Can I have a towel please?
      Brainy：这句话是用来索要毛巾的，现在我们首先需要问健身房的位置哦，请再试一次。
    （选项C）What can I do in the gym?
      Brainy：这句话是询问健身房里可以做什么的，不是用来问位置的，请再试一次。
    Chloe：Look, it's over there at the end of this walkway.

    # 中间回合2
    Brainy：Chloe已经告诉你健身房在走道的尽头了，现在你需要向她讨要毛巾，为运动做准备。
    用户选项:
    （选项A）Where is the gym?
      Brainy：Chloe已经告诉你健身房的位置啦，现在你需要向她要毛巾哦，请再试一次。
    （选项B）Oh, and can I have a towel please? [正确]
      Brainy：太对啦！你正确表达了想要毛巾的需求。请大声朗读这句话！
    （选项C）I want to drink some water.
      Brainy：这句话是说你想要喝水，不是索要毛巾的表达哦，请再试一次。
    Chloe：Of course! I'll bring a new one for you soon.

    # 中间回合3
    Brainy：Chloe说马上给你拿新毛巾，现在你可以问问在健身房里还能做些什么，了解更多相关信息。
    用户选项:
    （选项A）What else can I do there? [正确]
      Brainy：你太棒了！正确询问了在健身房里可以做的其他事。请大声朗读这句话！
    （选项B）Can you give me a towel?
      Brainy：Chloe已经答应给你拿毛巾啦，不需要再问啦，试着问问健身房还有什么可以做的吧。
    （选项C）Where is the restaurant?
      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

22 核心看图说话 cId: 0000800 core_speaking_image
已保存 ▶
taskInfo
{ "cType": "core_speaking_image", "cId": "0000800", "title": "", "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": { "Eva": 738, "Peter": 739 }, "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": "winter,cold,snow,season,hot", "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": "Rock 询问现在是什么季节，你需要回答他当前所处的季节。", "index": 0 }, "optionList": [ { "option": "Winter.", "feedback": { "type": "npc", "npcName": "Brainy", "content": "太棒了！你正确回答了现在是冬季。请大声朗读这句话！" } }, { "option": "Cold.", "feedback": { "type": "npc", "npcName": "Brainy", "content": "这句话的意思是“寒冷的”，是用来描述天气感受的，而Rock现在问的是现在是什么季节，和问题不匹配。请再仔细听清问题，告诉Rock现在的季节。" } }, { "option": "Snow.", "feedback": { "type": "npc", "npcName": "Brainy", "content": "这句话的意思是“雪”，是冬天会出现的事物，而Rock现在问的是现在是什么季节，和问题不匹配。请再仔细听清问题，告诉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": "Rock 询问现在天气是热还是冷，你需要回答他冬季的天气感受。", "index": 1 }, "optionList": [ { "option": "Winter.", "feedback": { "type": "npc", "npcName": "Brainy", "content": "这句话的意思是“冬季”，是用来回答季节相关问题的，而Rock现在问的是天气是热还是冷，和问题不匹配。请再仔细听清问题，告诉Rock冬天的天气感受。" } }, { "option": "Cold.", "feedback": { "type": "npc", "npcName": "Brainy", "content": "太棒了！你正确回答了冬天天气很冷。请大声朗读这句话！" } }, { "option": "Snow.", "feedback": { "type": "npc", "npcName": "Brainy", "content": "这句话的意思是“雪”，是冬天会出现的事物，而Rock现在问的是天气是热还是冷，和问题不匹配。请再仔细听清问题，告诉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": "Rock 询问你在冬天能看到什么，你需要回答冬季特有的事物。", "index": 2 }, "optionList": [ { "option": "Winter.", "feedback": { "type": "npc", "npcName": "Brainy", "content": "这句话的意思是“冬季”，是用来回答季节相关问题的，而Rock现在问的是冬天能看到什么事物，和问题不匹配。请再仔细听清问题，告诉Rock你在冬天能看到的东西。" } }, { "option": "Cold.", "feedback": { "type": "npc", "npcName": "Brainy", "content": "这句话的意思是“寒冷的”，是用来描述天气感受的，而Rock现在问的是冬天能看到什么事物，和问题不匹配。请再仔细听清问题，告诉Rock你在冬天能看到的东西。" } }, { "option": "Snow.", "feedback": { "type": "npc", "npcName": "Brainy", "content": "太棒了！你正确回答了冬天能看到雪。请大声朗读这句话！" } } ], "answer": [ 2 ], "read": { "type": "npc", "npcName": "User", "content": "Snow." }, "feedback": { "type": "npc", "npcName": "Rock", "content": "Great! You know a lot about winter." } } ] } ], "closing": { "type": "npc", "npcName": "Brainy", "content": "你已经顺利回答了Rock的所有关于冬季的问题，完成了本次的聊天任务，很快就能吃到热热的食物咯！" } }
imageInfo
{ "questionImg": "0000800_question.png" }
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.'}]
optionList
[{'option': '0000800_option_00.png'}, {'option': '0000800_option_01.png'}, {'option': '0000800_option_02.png'}]
kpInfo (3个知识点)

# | kpId | kpType | kpTitle | kpSkill | kpSkillName
--- | --- | --- | --- | --- | ---
[0] |  |  | winter 冬天 |  |
[1] |  |  | cold 冷的 |  |
[2] |  |  | snow 雪 |  |

中间结果: 学习流程配置

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

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

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

    # 结尾回合
    Brainy：你已经顺利回答了Rock的所有问题，聊天任务完成啦，很快就能吃到热热的食物咯！
    ```

中间结果: 语音识别热词

    winter,cold,snow,season,hot

23 核心合作听力 cId: 0000800 core_listening_order
已保存 ▶
taskInfo
{ "cType": "core_listening_order", "cId": "0000800", "title": "让Shark听专业健身指南学习健康知识。", "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": { "Eva": 738, "Peter": 739 } }
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": "无" } ] }
flowInfo
{ "sequence": [ { "audio": [ 0 ] }, { "question": [ 0 ] }, { "audio": [ 1 ] }, { "question": [ 1, 2, 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": "哎呀，这句话说的是 buy at the shop，不是我们听到的 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", "content": "仔细听音频，选出你听到的句子哦。", "npcName": "Brainy" } }, { "answer": [ 0 ], "meaning": "听音选意", "optionList": [ { "feedback": { "type": "npc", "content": "完全正确！你不仅听懂了整句话的意思，还掌握了 bake at home 这个实用短语，太厉害啦！", "npcName": "Brainy" }, "option": "当你非常想吃甜食，比如饼干或者蛋糕时，你可以在家烘焙。" }, { "feedback": { "type": "npc", "content": "这句话的重点动作是在家烘焙，不是去商店购买哦，再仔细回忆一下句子内容试试看~", "npcName": "Brainy" }, "option": "当你非常想吃甜食，比如饼干或者蛋糕时，你可以去商店买。" } ], "question": { "type": "npc", "content": "现在我们来看看这句话的中文意思是什么，选选看吧！", "npcName": "Brainy" } } ] } ] }
kpInfo (5个知识点)

# | kpId | kpType | kpTitle | kpSkill | kpSkillName
--- | --- | --- | --- | --- | ---
[0] |  |  | bake v. 烘焙；烤制 |  |
[1] |  |  | healthy adj. 健康的 |  |
[2] |  |  | money n. 钱 |  |
[3] |  |  | cake n. 蛋糕 |  |
[4] |  |  | alcohol n. 含酒精饮料 |  |

中间结果: 学习过程配置

    ```
    # 重点句子 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：哎呀，这句话说的是 buy at the shop，不是我们听到的 bake at home 哦，再仔细听听音频吧~
    2. 听音选意
    Brainy：现在我们来看看这句话的中文意思是什么，选选看吧！
    - 当你非常想吃甜食，比如饼干或者蛋糕时，你可以在家烘焙。[正确]
      Brainy：完全正确！你不仅听懂了整句话的意思，还掌握了 bake at home 这个实用短语，太厉害啦！
    - 当你非常想吃甜食，比如饼干或者蛋糕时，你可以去商店买。
      Brainy：这句话的重点动作是在家烘焙，不是去商店购买哦，再仔细回忆一下句子内容试试看~
    ---
    # 完成反馈
    Brainy：很好！你已经回答完了全部问题，相信你已经听懂了这个任务中所有的重点句子。现在让我们来查看结果吧!
    ```

中间结果: 互动描述

    You listened to the audio about "How to live a healthy life", learning that we should sleep and get up on time, avoid smoking and alcohol, and good habits matter more than money for health. (你听了《如何健康生活》的音频，了解到我们应该按时作息，远离烟酒，对于健康而言好习惯比金钱更重要。)
    In the talk between Shark and Medic, you found out we can bake sweets at home with healthy ingredients, and a healthy life never depends on money or expensive items. (在鲨鱼和医生的对话中，你得知我们可以用健康食材在家烘焙甜点，健康生活从来都不依赖金钱或者昂贵的物品。)

24 听力拖拽 cId: 0000800 ? 失败 ▶
错误: LLM返回内容不是合法JSON: Expecting value: line 1 column 1 (char 0) 内容: 无
25 核心听力选择 cId: 0000800 core_listening_choose
已保存 ▶
taskInfo
{ "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": "请提供具体的题目材料内容哦，缺少材料的话无法按照要求生成对应的叙事描述~" }
questionGroup
无
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 winter!", "feedback": { "type": "npc", "content": "不对哦，这句话里的单词是winter（冬天），不是我们听到的夏天哦，再试试吧~", "npcName": "Brainy" } }, { "option": "This summer!", "feedback": { "type": "npc", "content": "太厉害啦！你精准听出了句子里的重点单词summer！", "npcName": "Brainy" } } ], "answer": [ 1 ] }, { "question": { "content": "This summer!", "type": "npc", "npcName": "Brainy" }, "extendQuestion": { "content": "这句话的中文意思是“这个冬天！”，对吗？", "type": "npc", "npcName": "Brainy" }, "optionList": [ { "option": "对 / Yes", "feedback": { "type": "npc", "content": "summer是夏天的意思哦，再想想这句话的正确意思吧~", "npcName": "Brainy" } }, { "option": "错 / No", "feedback": { "type": "npc", "content": "完全正确！你已经掌握了summer这个单词的意思啦，这句话的正确意思是“这个夏天！”哦。", "npcName": "Brainy" } } ], "answer": [ 1 ] } ] } ], "closing": { "type": "npc", "content": "很好！你已经回答完了全部问题，相信你已经听懂了这个任务中所有的重点句子。现在让我们来查看结果吧!", "npcName": "Brainy" } }
kpInfo (6个知识点)

# | kpId | kpType | kpTitle | kpSkill | kpSkillName
--- | --- | --- | --- | --- | ---
[0] |  |  | summer n. 夏天 |  |
[1] |  |  | hot adj. 热的 |  |
[2] |  |  | trousers n. 长裤 |  |
[3] |  |  | shorts n. 短裤 |  |
[4] |  |  | It feels... 感觉...... |  |
[5] |  |  | Could you... 可以请你......吗？ |  |

中间结果: 学习过程配置

    ```
    # 重点句子 1
    音频文本：This summer!
    讲解文本：刚刚听到的音频中，包含了关键短语 summer，意思是夏天，是用来描述季节的常用单词哦。
    1. 听音选句
    Brainy：仔细听音频，哪一个选项和你听到的内容一致呢？
    - This winter!
      - Brainy：不对哦，这句话里的单词是winter（冬天），不是我们听到的夏天哦，再试试吧~
    - This summer! [正确]
      - Brainy：太厉害啦！你精准听出了句子里的重点单词summer！

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

中间结果: 互动描述

    请提供具体的题目材料内容哦，缺少材料的话无法按照要求生成对应的叙事描述~

26 看图组句 cId: 0000800 ? 失败 ▶
错误: LLM返回内容不是合法JSON: Expecting value: line 1 column 1 (char 0) 内容: 无
27 看图撰写 cId: 0000800 ? 失败 ▶
错误: LLM返回内容不是合法JSON: Expecting value: line 1 column 1 (char 0) 内容: 无
28 邮件组句 cId: 0000800 ? 失败 ▶
错误: LLM返回内容不是合法JSON: Expecting ',' delimiter: line 1 column 209 (char 208) 内容: {"learningPart":[{"leadIn":{"desc":"What is your opinion on the job?"},"learning":[{"question":{"type":"npc","npcName":"Brainy","content":"你在邮件里想告诉Rebecca这份探索工作对你们很重要，现在需要补全句子“The ___ is important for us.”},"optionList":[{"option":"job","feedback":{"type":"npc","npcName":"Brainy","content":"答对啦！“job
29 核心邮件撰写 cId: 0000800 core_writing_questionWrite
已保存 ▶
taskInfo
{ "cId": "0000800", "cType": "core_writing_questionWrite", "title": "编写给 Rebecca 的邮件", "taskDesc": "请根据提示问题，用英文组句完成这封邮件。", "sceneDesc": "Rebecca听上去十分担心你们的安全，你们刚刚做出了决定，要继续留在 Wander Port 进行学院的探索任务，你需要回一封邮件给她，告诉她你们的决定以及原因，顺便询问她何时会来。", "img": "", "plotSummary": "", "stemDesc": [ "1. Tell her your decision and why.", "2. 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?（亲爱的丽贝卡，我知道你很担心。但这是我们探索漫游港的最佳机会。这份工作对我们来说很重要。这就是我们必须留下来的原因。你某天会来漫游港吗？如果会的话，你什么时候会到？）" }
textInfo
{ "inputType": "write", "passCondition": "1. 这份工作很重要 2. 这就是我们为什么要留下 3. 你什么时候将会到达？", "textList": [ { "mode": "preset", "desc": "Dear Rebecca,", "answerText": "", "hint": "" }, { "mode": "preset", "desc": "I know you are worried. But this is our best chance to explore Wander Port.", "answerText": "", "hint": "" }, { "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": "", "hint": "" }, { "mode": "fillingInput", "desc": "If so, _________ you arrive?", "answerText": "when will", "hint": "如果是这样的话，你什么时候将会（when will）到达？" } ] }
studyInfo
{ "learningPart": [ { "leadIn": { "desc": "1. Tell her your decision and why." }, "learning": [ { "question": { "type": "npc", "npcName": "Brainy", "content": "你准备给Rebecca写邮件，首先需要选择合适的邮件开头称呼，你会怎么写？" }, "optionList": [ { "option": "Dear Rebecca,", "feedback": { "type": "npc", "npcName": "Brainy", "content": "非常好！这是英文邮件给熟人开头的标准正确称呼，很合适。" } }, { "option": "Hey Rebecca! What's up?", "feedback": { "type": "npc", "npcName": "Brainy", "content": "这个表达太口语化啦，更适合日常闲聊消息，正式邮件开头一般不会这么写哦，再试试吧。" } }, { "option": "Dear Ms. Rebecca,", "feedback": { "type": "npc", "npcName": "Brainy", "content": "这个表达略显生硬，Rebecca是你的熟人，不需要用Ms.这么正式的尊称，直接用名字就可以啦。" } } ], "answer": [ 0 ], "write": { "desc": "Dear Rebecca,", "trans": "亲爱的丽贝卡，" }, "feedback": { "type": "npc", "npcName": "Brainy", "content": "你写的很好！" } } ] }, { "leadIn": { "desc": "1. Tell her your decision and why." }, "learning": [ { "question": { "type": "npc", "npcName": "Brainy", "content": "开头写完后，你首先要回应Rebecca的担心，同时说明你们留下的理由，你会怎么表述这部分内容？" }, "optionList": [ { "option": "I know you are worried. But this is our best chance to explore Wander Port.", "feedback": { "type": "npc", "npcName": "Brainy", "content": "太棒了！这句话既回应了她的担心，也清晰说明了你们想要留下探索的原因，逻辑非常通顺。" } }, { "option": "I know you are worried. But we don't care about the danger.", "feedback": { "type": "npc", "npcName": "Brainy", "content": "这句话语气太生硬啦，会让Rebecca更担心你们的，没有体现出你们留下的合理原因哦，再试试吧。" } }, { "option": "I know you are worried. We will come back right now.", "feedback": { "type": "npc", "npcName": "Brainy", "content": "这句话意思是你们现在就要回来，和你们要继续留在Wander Port的决定完全相反哦，再想想吧。" } } ], "answer": [ 0 ], "write": { "desc": "I know you are worried. But this is our best chance to explore Wander Port.", "trans": "我知道你很担心。但这是我们探索漫游港的最佳机会。" }, "feedback": { "type": "npc", "npcName": "Brainy", "content": "你写的很好！" } } ] }, { "leadIn": { "desc": "1. Tell her your decision and why." }, "learning": [ { "question": { "type": "npc", "npcName": "Brainy", "content": "你想进一步说明，这份探索工作对你们很重要，需要选合适的词填空：The ____ is important for us." }, "optionList": [ { "option": "job", "feedback": { "type": "npc", "npcName": "Brainy", "content": "答对啦！这里be动词是is，说明主语是单数，job作为单数名词符合句子语法和语义要求，完美。" } }, { "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": "1. Tell her your decision and why." }, "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": "不对哦，\"That's 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": "2. Ask her when she will arrive." }, "learning": [ { "question": { "type": "npc", "npcName": "Brainy", "content": "说完你们的决定后，你想询问Rebecca未来会不会来Wander Port，你会怎么问？" }, "optionList": [ { "option": "Will you come to Wander Port some day?", "feedback": { "type": "npc", "npcName": "Brainy", "content": "非常棒！这句话准确礼貌地询问了对方未来是否会来Wander Port，符合邮件的语境。" } }, { "option": "Can you come to Wander Port right now?", "feedback": { "type": "npc", "npcName": "Brainy", "content": "这句话是询问对方能不能马上来，语气太急切了，你只是想问她未来会不会来，不是要求她立刻过来哦。" } }, { "option": "When will you come to Wander Port?", "feedback": { "type": "npc", "npcName": "Brainy", "content": "这句话是直接问对方什么时候来，前提是已经确定对方会来，但你现在还不知道她会不会来，所以不合适哦。" } } ], "answer": [ 0 ], "write": { "desc": "Will you come to Wander Port some day?", "trans": "你某天会来漫游港吗？" }, "feedback": { "type": "npc", "npcName": "Brainy", "content": "你写的很好！" } } ] }, { "leadIn": { "desc": "2. Ask her when she will arrive." }, "learning": [ { "question": { "type": "npc", "npcName": "Brainy", "content": "你接着说如果她会来的话，想询问她到达的时间，需要选合适的内容填空：If so, _________ you arrive?" }, "optionList": [ { "option": "when will", "feedback": { "type": "npc", "npcName": "Brainy", "content": "答对啦！询问时间用特殊疑问词when，一般将来时的疑问句结构是“will+主语+动词原形”，所以when will完全符合语法和语义要求。" } }, { "option": "when is", "feedback": { "type": "npc", "npcName": "Brainy", "content": "不对哦，句子后面已经有实义动词arrive了，不能再用be动词is啦，实义动词的疑问句需要借助助动词will哦。" } }, { "option": "how is", "feedback": { "type": "npc", "npcName": "Brainy", "content": "不对哦，how是用来询问方式的，你这里想问的是到达的时间，而且后面有实义动词arrive，也不能用be动词is，再想想吧。" } } ], "answer": [ 0 ], "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...以及询问对方未来行程和到达时间的句型，成功完成了给Rebecca的邮件编写！" } }
evalInfo
{ "title": "编写给 Rebecca 的邮件", "taskDesc": "请根据提示问题，用英文组句完成这封邮件。", "sceneDesc": "Rebecca听上去十分担心你们的安全，你们刚刚做出了决定，要继续留在 Wander Port 进行学院的探索任务，你需要回一封邮件给她，告诉她你们的决定以及原因，顺便询问她何时会来。", "knowledge": "The job is... 这份工作......That's why we have to... 这就是为什么我们必须……When will you arrive? 你什么时候会到？", "passCondition": "1. 这份工作很重要 2. 这就是我们为什么要留下 3. 你什么时候将会到达？", "textList": [ { "mode": "preset", "desc": "Dear Rebecca,", "answerText": "", "hint": "" }, { "mode": "preset", "desc": "I know you are worried. But this is our best chance to explore Wander Port.", "answerText": "", "hint": "" }, { "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": "", "hint": "" }, { "mode": "fillingInput", "desc": "If so, _________ you arrive?", "answerText": "when will", "hint": "如果是这样的话，你什么时候将会（when will）到达？" } ] }
kpInfo (1个知识点)

# | kpId | kpType | kpTitle | kpSkill | kpSkillName
--- | --- | --- | --- | --- | ---
[0] |  |  | The job is... 这份工作......That's why we have to... 这就是为什么我们必须……When will you arrive? 你什么时候会到？ |  |

中间结果: 学习流程配置

    ```
    # 问题1：
    Brainy: 你准备给Rebecca写邮件，首先需要选择合适的邮件开头称呼，你会怎么写？
    用户选项:
    （选项 A）Dear Rebecca, [正确]
      Brainy: 非常好！这是英文邮件给熟人开头的标准正确称呼，很合适。
    （选项 B）Hey Rebecca! What's up?
      Brainy: 这个表达太口语化啦，更适合日常闲聊消息，正式邮件开头一般不会这么写哦，再试试吧。
    （选项 C）Dear Ms. Rebecca,
      Brainy: 这个表达略显生硬，Rebecca是你的熟人，不需要用Ms.这么正式的尊称，直接用名字就可以啦。

    # 问题2：
    Brainy: 开头写完后，你首先要回应Rebecca的担心，同时说明你们留下的理由，你会怎么表述这部分内容？
    用户选项:
    （选项 A）I know you are worried. But this is our best chance to explore Wander Port. [正确]
      Brainy: 太棒了！这句话既回应了她的担心，也清晰说明了你们想要留下探索的原因，逻辑非常通顺。
    （选项 B）I know you are worried. But we don't care about the danger.
      Brainy: 这句话语气太生硬啦，会让Rebecca更担心你们的，没有体现出你们留下的合理原因哦，再试试吧。
    （选项 C）I know you are worried. We will come back right now.
      Brainy: 这句话意思是你们现在就要回来，和你们要继续留在Wander Port的决定完全相反哦，再想想吧。

    # 问题3：
    Brainy: 你想进一步说明，这份探索工作对你们很重要，需要选合适的词填空：The ____ is important for us.
    用户选项:
    （选项 A）job [正确]
      Brainy: 答对啦！这里be动词是is，说明主语是单数，job作为单数名词符合句子语法和语义要求，完美。
    （选项 B）jobs
      Brainy: 不对哦，jobs是复数形式，后面的be动词应该用are才对，和句子里的is不匹配哦，再试一下。
    （选项 C）projects
      Brainy: 不对哦，projects是复数形式，后面的be动词应该用are才对，和句子里的is不匹配哦，再想想。

    # 问题4：
    Brainy: 接下来你要说明这就是你们必须留下的原因，需要选合适的词填空：That's ____ we have to stay.
    用户选项:
    （选项 A）why [正确]
      Brainy: 太厉害啦！"That's why..."是固定表达，意思是“这就是……的原因”，正好符合这里要解释留下原因的语境。
    （选项 B）how
      Brainy: 不对哦，"That's how..."是用来说明方式的，意思是“这就是如何做……的”，不符合这里解释原因的语境哦。
    （选项 C）which
      Brainy: 不对哦，which的意思是“哪一个”，放在这里句子逻辑不通顺，无法表达解释原因的含义，再试一下吧。

    # 问题5：
    Brainy: 说完你们的决定后，你想询问Rebecca未来会不会来Wander Port，你会怎么问？
    用户选项:
    （选项 A）Will you come to Wander Port some day? [正确]
      Brainy: 非常棒！这句话准确礼貌地询问了对方未来是否会来Wander Port，符合邮件的语境。
    （选项 B）Can you come to Wander Port right now?
      Brainy: 这句话是询问对方能不能马上来，语气太急切了，你只是想问她未来会不会来，不是要求她立刻过来哦。
    （选项 C）When will you come to Wander Port?
      Brainy: 这句话是直接问对方什么时候来，前提是已经确定对方会来，但你现在还不知道她会不会来，所以不合适哦。

    # 问题6：
    Brainy: 你接着说如果她会来的话，想询问她到达的时间，需要选合适的内容填空：If so, _________ you arrive?
    用户选项:
    （选项 A）when will [正确]
      Brainy: 答对啦！询问时间用特殊疑问词when，一般将来时的疑问句结构是“will+主语+动词原形”，所以when will完全符合语法和语义要求。
    （选项 B）when is
      Brainy: 不对哦，句子后面已经有实义动词arrive了，不能再用be动词is啦，实义动词的疑问句需要借助助动词will哦。
    （选项 C）how is
      Brainy: 不对哦，how是用来询问方式的，你这里想问的是到达的时间，而且后面有实义动词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? If so, when will you arrive?（亲爱的丽贝卡，我知道你很担心。但这是我们探索漫游港的最佳机会。这份工作对我们来说很重要。这就是我们必须留下来的原因。你某天会来漫游港吗？如果会的话，你什么时候会到？）

30 对话表达 cId: 0000800 mid_dialog_express
已保存 ▶
jsonData
{ "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 (1个知识点)

# | kpId | kpType | kpTitle | kpSkill | kpSkillName
--- | --- | --- | --- | --- | ---
[0] |  |  | spring |  |

31 对话选择 cId: 0000800 mid_dialog_choose
已保存 ▶
jsonData
{ "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 (1个知识点)

# | kpId | kpType | kpTitle | kpSkill | kpSkillName
--- | --- | --- | --- | --- | ---
[0] |  |  | home |  |

32 对话选读 cId: 0000800 mid_dialog_select
已保存 ▶
jsonData
{ "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 (1个知识点)

# | kpId | kpType | kpTitle | kpSkill | kpSkillName
--- | --- | --- | --- | --- | ---
[0] |  |  | healthy(词义) |  |

33 信息描写 cId: 0000800 mid_message_trace
已保存 ▶
jsonData
{ "cType": "mid_message_trace", "cId": "0000800", "title": "购买葡萄", "resourceMapping": { "Vicky": 658 }, "cDesc": "You bought the grapes as you needed. (你购买了你需要的葡萄。)", "question": { "desc": "请描写你需要的水果" }, "trace": "grape", "img": "0000800.png", "inputSet": [] }
kpInfo (1个知识点)

# | kpId | kpType | kpTitle | kpSkill | kpSkillName
--- | --- | --- | --- | --- | ---
[0] |  |  | Grape (词形 - 拼写规律) |  |

34 信息拼词 cId: 0000800 mid_message_spell
已保存 ▶
jsonData
{ "cType": "mid_message_spell", "cId": "0000800", "title": "购买葡萄", "resourceMapping": { "Vicky": 658 }, "cDesc": "You bought a bunch of fresh grapes. (你购买了葡萄。)", "question": { "desc": "请填入“葡萄”的正确的英文拼写" }, "tip": "葡萄的英文是 grape / 第二个字母是 r 哦，再想想最后一个空应该填什么吧", "inputConfig": [ { "stem": "G（2）pe", "value": "ra" } ], "stemList": [ "h", "a", "r", "l", "e", "w" ], "img": "0000800.png", "inputSet": [] }
kpInfo (1个知识点)

# | kpId | kpType | kpTitle | kpSkill | kpSkillName
--- | --- | --- | --- | --- | ---
[0] |  |  | Grape (词形 - 拼写规律) |  |

35 信息组句 cId: 0000800 mid_message_combine
已保存 ▶
jsonData
{ "cType": "mid_message_combine", "cId": "0000800", "title": "填写信息表", "resourceMapping": { "Vicky": 658 }, "cDesc": "You formed the 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 (1个知识点)

# | kpId | kpType | kpTitle | kpSkill | kpSkillName
--- | --- | --- | --- | --- | ---
[0] |  |  | Grape (词形 - 拼写规律) |  |

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

# | kpId | kpType | kpTitle | kpSkill | kpSkillName
--- | --- | --- | --- | --- | ---
[0] |  |  | Grape (词形 - 拼写规律) |  |

37 信息填词 cId: 0000800 mid_message_word
已保存 ▶
jsonData
{ "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 (1个知识点)

# | kpId | kpType | kpTitle | kpSkill | kpSkillName
--- | --- | --- | --- | --- | ---
[0] |  |  | Grape (词形 - 拼写规律) |  |

38 信息填句 cId: 0000800 mid_message_sentence
已保存 ▶
jsonData
{ "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 (1个知识点)

# | kpId | kpType | kpTitle | kpSkill | kpSkillName
--- | --- | --- | --- | --- | ---
[0] |  |  | Grape (词形 - 拼写规律) |  |

39 图片单选 cId: 0000800 mid_image_choose
已保存 ▶
jsonData
{ "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": [ "02" ], "preDialog": [ { "type": "user", "content": "Look!" } ], "tip": "warm 指“温暖的”。", "corFeedback": { "type": "user", "npcName": "", "content": "Warm water here!" }, "errFeedback": { "type": "user", "npcName": "", "content": "It doesn't seem like there's warm water." }, "postDialog": [], "cDesc": "You found the warm water area. (你找到了温暖的水域。)" }
kpInfo (1个知识点)

# | kpId | kpType | kpTitle | kpSkill | kpSkillName
--- | --- | --- | --- | --- | ---
[0] |  |  | warm |  |

40 图片多选 cId: 0000800 mid_image_multiple
已保存 ▶
jsonData
{ "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 (1个知识点)

# | kpId | kpType | kpTitle | kpSkill | kpSkillName
--- | --- | --- | --- | --- | ---
[0] |  |  | house |  |

41 图片有序 cId: 0000800 mid_image_sequence
已保存 ▶
jsonData
{ "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 the hopscotch order one by one. (你一个接一个排好了跳格子的顺序。)" }
kpInfo (1个知识点)

# | kpId | kpType | kpTitle | kpSkill | kpSkillName
--- | --- | --- | --- | --- | ---
[0] |  |  | ... one by one. |  |

42 图片拖拽 cId: 0000800 mid_image_drag
已保存 ▶
jsonData
{ "cType": "mid_image_drag", "cId": "0000800", "title": "选出正确的物品", "meaning": "", "resourceMapping": { "Vicky": 658 }, "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": [ 0, 2, 1 ], "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 picked fish, crab and octopus in order. (你按顺序选出了鱼、螃蟹和章鱼。)" }
kpInfo (1个知识点)

# | kpId | kpType | kpTitle | kpSkill | kpSkillName
--- | --- | --- | --- | --- | ---
[0] |  |  | hammer （词义） |  |