# components

script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: mid
cType: mid_dialog_repeat
type_name: 对话朗读
level: L1
unit_id: U14
knowledge_points_raw: school
status: generated
bitable_token: MuwubKXoSaJe55sO4k9c63VSnmh
db_table: middle_interaction_component
created_at: 2026-04-30 11:56:30
updated_at: 2026-04-30 11:56:30
raw_config:
  【任务标题】
  表示大家一起上学

  【资源配置】
  图片时机：
  互动内容

  【情境引入】
  User: Great!
  User: Oh, there's no time left.

  【互动内容】
  User: Let's go to school now. (朗读)

  【后置对话】
  无

final_config_json:
  {"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": []}

kp_info_json:
  {"pushType": "relationKp", "cType": "mid_dialog_repeat", "cId": "0000800", "kpInfo": [{"kpId": null, "kpType": "vocab", "kpTitle": "school", "kpSkill": "vocab_meaning", "kpSkillName": "词义", "candidates": []}]}


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: mid
cType: mid_dialog_fillin
type_name: 对话挖空
level: L1
unit_id: U14
knowledge_points_raw: school
status: generated
bitable_token: X6nHbUztFaGY5tsSHnKcmeJtnm5
db_table: middle_interaction_component
created_at: 2026-04-30 11:56:34
updated_at: 2026-04-30 11:56:34
raw_config:
  【任务标题】
  表示一起去上学

  【资源配置】
  无

  【情境引入】
  User: Peter, Eva!

  【互动内容】
  Let's go to ___.（音频）
  选项1：school（正确）
  选项2：zoo

  【互动反馈】
  正确：无
  错误 Vicky: I don't think so.

  【后置对话】
  无

final_config_json:
  {"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": []}

kp_info_json:
  {"pushType": "relationKp", "cType": "mid_dialog_fillin", "cId": "0000801", "kpInfo": [{"kpId": null, "kpType": "vocab", "kpTitle": "school", "kpSkill": "vocab_meaning", "kpSkillName": "词义", "candidates": []}]}


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: mid
cType: mid_dialog_repeat
type_name: 对话朗读
level: L1
unit_id: U14
knowledge_points_raw:
  You need to... 1
  study
  play

status: generated
bitable_token: MuwubKXoSaJe55sO4k9c63VSnmh
db_table: middle_interaction_component
created_at: 2026-04-30 11:56:39
updated_at: 2026-04-30 11:56:39
raw_config:
  【任务标题】
  告诉 Eva 和 Peter 需要学习

  【资源配置】
  无

  【情境引入】
  无

  【互动内容】
  User: You need to study. (朗读)

  【后置对话】
  Eva: No, we want to play!

final_config_json:
  {"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!"}]}

kp_info_json:
  {"pushType": "relationKp", "cType": "mid_dialog_repeat", "cId": "0000802", "kpInfo": [{"kpId": "0107009", "kpType": "sentence", "kpTitle": "You need to...", "kpSkill": "sentence_meaning", "kpSkillName": "语义", "candidates": [{"kp_id": "0107009", "type": "sentence", "title": "You need to...", "vala_level": "L2", "en_desc": ""}]}, {"kpId": "0112033", "kpType": "vocab", "kpTitle": "study", "kpSkill": "vocab_meaning", "kpSkillName": "词义", "candidates": [{"kp_id": "0112033", "type": "vocab", "title": "study", "vala_level": "L2", "en_desc": "to learn about something by reading, observing, or doing experiments"}]}, {"kpId": null, "kpType": "vocab", "kpTitle": "play", "kpSkill": "vocab_meaning", "kpSkillName": "词义", "candidates": [{"kp_id": "0110025", "type": "vocab", "title": "player", "vala_level": "L2", "en_desc": "a person who takes part in a game or sport"}, {"kp_id": "0110027", "type": "sentence", "title": "There are... players in the band.", "vala_level": "L2", "en_desc": ""}]}]}


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: mid
cType: mid_dialog_repeat
type_name: 对话朗读
level: L1
unit_id: U14
knowledge_points_raw:
  We can... 1
  play
  school

status: generated
bitable_token: MuwubKXoSaJe55sO4k9c63VSnmh
db_table: middle_interaction_component
created_at: 2026-04-30 11:56:44
updated_at: 2026-04-30 11:56:44
raw_config:
  【任务标题】
  表示在学校里也可以玩

  【资源配置】
  无

  【情境引入】
  无

  【互动内容】
  User: We can play at school. (朗读)

  【后置对话】
  Peter: That's not fun!

final_config_json:
  {"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!"}]}

kp_info_json:
  {"pushType": "relationKp", "cType": "mid_dialog_repeat", "cId": "0000803", "kpInfo": [{"kpId": "0112016", "kpType": "sentence", "kpTitle": "We can...", "kpSkill": "sentence_meaning", "kpSkillName": "语义", "candidates": [{"kp_id": "0112016", "type": "sentence", "title": "We can...", "vala_level": "L2", "en_desc": ""}]}, {"kpId": null, "kpType": "vocab", "kpTitle": "play", "kpSkill": "vocab_meaning", "kpSkillName": "词义", "candidates": [{"kp_id": "0110025", "type": "vocab", "title": "player", "vala_level": "L2", "en_desc": "a person who takes part in a game or sport"}, {"kp_id": "0110027", "type": "sentence", "title": "There are... players in the band.", "vala_level": "L2", "en_desc": ""}]}, {"kpId": null, "kpType": "vocab", "kpTitle": "school", "kpSkill": "vocab_meaning", "kpSkillName": "词义", "candidates": []}]}


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: mid
cType: mid_dialog_repeat
type_name: 对话朗读
level: L1
unit_id: U14
knowledge_points_raw: student
status: generated
bitable_token: MuwubKXoSaJe55sO4k9c63VSnmh
db_table: middle_interaction_component
created_at: 2026-04-30 11:56:48
updated_at: 2026-04-30 11:56:48
raw_config:
  【任务标题】
  询问 Eva 和 Peter 是否想做学生

  【资源配置】
  无

  【情境引入】
  无

  【互动内容】
  User: Do you want to be a student? (朗读)

  【后置对话】
  无

final_config_json:
  {"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": []}

kp_info_json:
  {"pushType": "relationKp", "cType": "mid_dialog_repeat", "cId": "0000804", "kpInfo": [{"kpId": null, "kpType": "vocab", "kpTitle": "student", "kpSkill": "vocab_meaning", "kpSkillName": "词义", "candidates": []}]}


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: mid
cType: mid_dialog_sentence
type_name: 对话组句
level: L1
unit_id: U14
knowledge_points_raw: student
status: generated
bitable_token: OfgZbhomiaYj2psBNhuc7THMnF9
db_table: middle_interaction_component
created_at: 2026-04-30 11:56:52
updated_at: 2026-04-30 11:56:52
raw_config:
  【任务标题】
  表示自己是学生

  【资源配置】
  无

  【情境引入】
  User: Hey, look at me.

  【互动内容】
  题目：表示我是一个学生。
  （音频）
  选项1：I'm
  选项2：student
  选项3：a
  答案：I'm a student.
  辅助信息：student 指“学生”。

  【互动反馈】
  正确：无
  错误 Vicky: Try again.

  【后置对话】
  无

final_config_json:
  {"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": []}

kp_info_json:
  {"pushType": "relationKp", "cType": "mid_dialog_sentence", "cId": "0000805", "kpInfo": [{"kpId": null, "kpType": "vocab", "kpTitle": "student", "kpSkill": "vocab_meaning", "kpSkillName": "词义", "candidates": []}]}


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: mid
cType: mid_dialog_repeat
type_name: 对话朗读
level: L1
unit_id: U14
raw_config:
  【任务标题】
  表示自己在学校学习

  【资源配置】
  图片时机：
  互动内容

  【情境引入】
  无

  【互动内容】
  User: I study at school. (朗读)

  【后置对话】
  无

status: generated
bitable_token: MuwubKXoSaJe55sO4k9c63VSnmh
db_table: middle_interaction_component
created_at: 2026-04-30 11:56:56
updated_at: 2026-04-30 11:56:56
final_config_json:
  {"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": []}


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: mid
cType: mid_dialog_repeat
type_name: 对话朗读
level: L1
unit_id: U14
raw_config:
  【任务标题】
  表示自己也玩

  【资源配置】
  图片时机：
  互动内容

  【情境引入】
  无

  【互动内容】
  User: And I play too. (朗读)

  【后置对话】
  无

status: generated
bitable_token: MuwubKXoSaJe55sO4k9c63VSnmh
db_table: middle_interaction_component
created_at: 2026-04-30 11:56:59
updated_at: 2026-04-30 11:56:59
final_config_json:
  {"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": []}


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: mid
cType: mid_dialog_fillin
type_name: 对话挖空
level: L1
unit_id: U14
knowledge_points_raw: study
status: generated
bitable_token: X6nHbUztFaGY5tsSHnKcmeJtnm5
db_table: middle_interaction_component
created_at: 2026-04-30 11:57:03
updated_at: 2026-04-30 11:57:03
raw_config:
  【任务标题】
  表示并不是要学习

  【资源配置】
  无

  【情境引入】
  无

  【互动内容】
  We're not here to ___.（音频）
  选项1：study（正确）
  选项2：student

  【互动反馈】
  正确：无
  错误 Grace: Are you sure? 

  【后置对话】
  无

final_config_json:
  {"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": []}

kp_info_json:
  {"pushType": "relationKp", "cType": "mid_dialog_fillin", "cId": "0000808", "kpInfo": [{"kpId": "0112033", "kpType": "vocab", "kpTitle": "study", "kpSkill": "vocab_meaning", "kpSkillName": "词义", "candidates": [{"kp_id": "0112033", "type": "vocab", "title": "study", "vala_level": "L2", "en_desc": "to learn about something by reading, observing, or doing experiments"}]}]}


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: mid
cType: mid_dialog_repeat
type_name: 对话朗读
level: L1
unit_id: U14
raw_config:
  【任务标题】
  说出书名

  【资源配置】
  图片时机：
  互动内容

  【情境引入】
  无

  【互动内容】
  User: It's "Go to School". (朗读)

  【后置对话】
  无

status: generated
bitable_token: MuwubKXoSaJe55sO4k9c63VSnmh
db_table: middle_interaction_component
created_at: 2026-04-30 11:57:06
updated_at: 2026-04-30 11:57:06
final_config_json:
  {"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": []}


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: mid
cType: mid_dialog_sentence
type_name: 对话组句
level: L1
unit_id: U14
knowledge_points_raw:
  You need to... 1
  study

status: generated
bitable_token: OfgZbhomiaYj2psBNhuc7THMnF9
db_table: middle_interaction_component
created_at: 2026-04-30 11:57:11
updated_at: 2026-04-30 11:57:11
raw_config:
  【任务标题】
  表示你们需要学习

  【资源配置】
  无

  【情境引入】
  无

  【互动内容】
  题目：表示你们需要学习。
  （音频）
  选项1：need to
  选项2：you
  选项3：study
  答案：You need to study.
  辅助信息：study 指“学习”。

  【互动反馈】
  正确：无
  错误 Peter: Huh?

  【后置对话】
  无

final_config_json:
  {"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": []}

kp_info_json:
  {"pushType": "relationKp", "cType": "mid_dialog_sentence", "cId": "0000811", "kpInfo": [{"kpId": "0107009", "kpType": "sentence", "kpTitle": "You need to...", "kpSkill": "sentence_meaning", "kpSkillName": "语义", "candidates": [{"kp_id": "0107009", "type": "sentence", "title": "You need to...", "vala_level": "L2", "en_desc": ""}]}, {"kpId": "0112033", "kpType": "vocab", "kpTitle": "study", "kpSkill": "vocab_meaning", "kpSkillName": "词义", "candidates": [{"kp_id": "0112033", "type": "vocab", "title": "study", "vala_level": "L2", "en_desc": "to learn about something by reading, observing, or doing experiments"}]}]}


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: mid
cType: mid_dialog_sentence
type_name: 对话组句
level: L1
unit_id: U14
knowledge_points_raw:
  You need to...
  school

status: generated
bitable_token: OfgZbhomiaYj2psBNhuc7THMnF9
db_table: middle_interaction_component
created_at: 2026-04-30 11:57:15
updated_at: 2026-04-30 11:57:15
raw_config:
  【任务标题】
  表示你们需要上学

  【资源配置】
  无

  【情境引入】
  无

  【互动内容】
  题目：表示你们需要上学。
  （音频）
  选项1：need to
  选项2：go to school
  选项3：you
  答案：You need to go to school.
  辅助信息：go to school 指“上学”。

  【互动反馈】
  正确：无
  错误 Grace: Try again.

  【后置对话】
  无

final_config_json:
  {"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": []}

kp_info_json:
  {"pushType": "relationKp", "cType": "mid_dialog_sentence", "cId": "0000812", "kpInfo": [{"kpId": "0107009", "kpType": "sentence", "kpTitle": "You need to...", "kpSkill": "sentence_meaning", "kpSkillName": "语义", "candidates": [{"kp_id": "0107009", "type": "sentence", "title": "You need to...", "vala_level": "L2", "en_desc": ""}]}, {"kpId": null, "kpType": "vocab", "kpTitle": "school", "kpSkill": "vocab_meaning", "kpSkillName": "词义", "candidates": []}]}


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: mid
cType: mid_dialog_fillin
type_name: 对话挖空
level: L1
unit_id: U14
knowledge_points_raw: play
status: generated
bitable_token: X6nHbUztFaGY5tsSHnKcmeJtnm5
db_table: middle_interaction_component
created_at: 2026-04-30 11:57:20
updated_at: 2026-04-30 11:57:20
raw_config:
  【任务标题】
  表示可以在学校玩耍

  【资源配置】
  无

  【情境引入】
  无

  【互动内容】
  Then you can ___ there.（音频）
  选项1：play（正确）
  选项2：catch

  【互动反馈】
  正确：无
  错误 Grace: I don't think so. 

  【后置对话】
  无

final_config_json:
  {"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": []}

kp_info_json:
  {"pushType": "relationKp", "cType": "mid_dialog_fillin", "cId": "0000813", "kpInfo": [{"kpId": null, "kpType": "vocab", "kpTitle": "play", "kpSkill": "vocab_meaning", "kpSkillName": "词义", "candidates": [{"kp_id": "0110025", "type": "vocab", "title": "player", "vala_level": "L2", "en_desc": "a person who takes part in a game or sport"}, {"kp_id": "0110027", "type": "sentence", "title": "There are... players in the band.", "vala_level": "L2", "en_desc": ""}]}]}


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: mid
cType: mid_dialog_sentence
type_name: 对话组句
level: L1
unit_id: U14
knowledge_points_raw: We can...
status: generated
bitable_token: OfgZbhomiaYj2psBNhuc7THMnF9
db_table: middle_interaction_component
created_at: 2026-04-30 11:57:24
updated_at: 2026-04-30 11:57:24
raw_config:
  【任务标题】
  表示可以坐校车上学

  【资源配置】
  无

  【情境引入】
  无

  【互动内容】
  题目：表示我们可以坐校车上学。
  （音频）
  选项1：we can
  选项2：the school bus
  选项3：take
  答案：We can take the school bus.
  辅助信息：句子以 we can 开头。

  【互动反馈】
  正确：无
  错误 Vicky: No, try again.

  【后置对话】
  无

final_config_json:
  {"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": []}

kp_info_json:
  {"pushType": "relationKp", "cType": "mid_dialog_sentence", "cId": "0000814", "kpInfo": [{"kpId": "0112016", "kpType": "sentence", "kpTitle": "We can...", "kpSkill": "sentence_meaning", "kpSkillName": "语义", "candidates": [{"kp_id": "0112016", "type": "sentence", "title": "We can...", "vala_level": "L2", "en_desc": ""}]}]}


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: mid
cType: mid_dialog_fillin
type_name: 对话挖空
level: L1
unit_id: U14
knowledge_points_raw: student
status: generated
bitable_token: X6nHbUztFaGY5tsSHnKcmeJtnm5
db_table: middle_interaction_component
created_at: 2026-04-30 11:57:29
updated_at: 2026-04-30 11:57:29
raw_config:
  【任务标题】
  表示 Peter 是学生了

  【资源配置】
  无

  【情境引入】
  无

  【互动内容】
  You are a ___ now.（音频）
  选项1：play
  选项2：student（正确）

  【互动反馈】
  正确：无
  错误 Grace: Try again. 

  【后置对话】
  无

final_config_json:
  {"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": []}

kp_info_json:
  {"pushType": "relationKp", "cType": "mid_dialog_fillin", "cId": "0000815", "kpInfo": [{"kpId": null, "kpType": "vocab", "kpTitle": "student", "kpSkill": "vocab_meaning", "kpSkillName": "词义", "candidates": []}]}


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: core
cType: core_reading_order
type_name: 合作阅读
level: L1
unit_id: U14
knowledge_points_raw:
  club
  join
  member
  choose
  interested

status: generated
bitable_token: H6DJweNkpigCbak2Y5LcTZ8Vnfb
db_table: core_interaction_component
created_at: 2026-04-30 13:59:41
updated_at: 2026-04-30 13:59:41
raw_config:
  【任务标题】
  阅读 《在 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.

final_config_json:
  {"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}}

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

task_info_json:
  {"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}}

material_info_json:
  {"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": ""}]}

flow_info_json:
  {"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]}]}

study_info_json:
  {"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": [{"option": "但是你需要礼物才能升级。", "feedback": {"type": "npc", "content": "不对哦，points在这里指的是积分，不是礼物，再想想看~", "npcName": "Brainy"}}, {"option": "但是你需要积分才能升级。", "feedback": {"type": "npc", "content": "太棒啦！你已经掌握了points的含义和整个句子的意思~", "npcName": "Brainy"}}], "question": {"type": "npc", "npcName": "Brainy", "content": "接下来，我们来看下包含points的句子\"But you need points to level up!\"是什么意思呢？"}}, {"answer": [0], "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的意思是俱乐部，加入喜欢的俱乐部可以认识很多志同道合的朋友哦。", "npcName": "Brainy", "learning": [{"answer": [1], "meaning": "句意选择题", "optionList": [{"option": "你可以选择你最喜欢的课程去学习。", "feedback": {"type": "npc", "content": "不对哦，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": [1], "meaning": "段落大意题", "optionList": [{"option": "所有的俱乐部都很受欢迎，你可以和朋友一起创建新的俱乐部。", "feedback": {"type": "npc", "content": "这部分内容不在这个段落里哦，再看看这段讲的是什么吧~", "npcName": "Brainy"}}, {"option": "你可以选择自己喜欢的俱乐部加入，对什么感兴趣就能找到对应的俱乐部。", "feedback": {"type": "npc", "content": "太赞了！你完全理解了这段的核心意思~", "npcName": "Brainy"}}], "question": {"type": "npc", "npcName": "Brainy", "content": "我们来看看这一段主要表达了什么内容吧？"}}]}]}

intermediate_json:
  {"阅读材料格式化": "```\n# 材料2\n类型：电子屏\n标题：How to Join Clubs?\n正文:\n<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]\n```", "学习材料格式化": "```\n# 段落1\n重点词汇: \n正文:\n---\nAt Vala Academy, Pioneers don't have exams. But you need points to level up!\n---\n```\n```\n# 段落2\n重点词汇: \n正文:\n---\nYou can choose your favourite club to join. If you are interested in something, you can find a club for it.\n---\n```", "学习过程配置": "```\n# 段落1\n## 段落内容\n---\nAt Vala Academy, Pioneers don't have exams. But you need points to level up!\n---\n## 互动题目\nBrainy: 我们来认识一下这段话中的重点词汇 points，points在这里的意思是积分、分数，攒够了积分才能升级哦。\n1. 句意选择题\nBrainy：接下来，我们来看下包含points的句子\"But you need points to level up!\"是什么意思呢？\n- 但是你需要礼物才能升级。\n  Brainy：不对哦，points在这里指的是积分，不是礼物，再想想看~\n- 但是你需要积分才能升级。[正确]\n  Brainy：太棒啦！你已经掌握了points的含义和整个句子的意思~\n2. 段落大意题\nBrainy：了解了重点词汇和句子，我们来看看这一段主要讲了什么吧？\n- 在瓦拉学院，开拓者们没有考试，但是需要积分来升级。[正确]\n  Brainy：完全正确！你精准抓住了段落的两个核心信息，太厉害啦~\n- 在瓦拉学院，开拓者们需要通过考试获得积分来升级。\n  Brainy：不对哦，段落里明确说了开拓者们没有考试，再仔细读一读段落内容吧~\n# 段落2\n## 段落内容\n---\nYou can choose your favourite club to join. If you are interested in something, you can find a club for it.\n---\n## 互动题目\nBrainy: 我们来认识一下这段话中的重点词汇 club，club的意思是俱乐部，加入喜欢的俱乐部可以认识很多志同道合的朋友哦。\n1. 句意选择题\nBrainy：接下来，我们来看下包含club的句子\"You can choose your favourite club to join.\"是什么意思呢？\n- 你可以选择你最喜欢的课程去学习。\n  Brainy：不对哦，club指的是俱乐部，不是课程，再回忆一下它的释义吧~\n- 你可以选择你最喜欢的俱乐部加入。[正确]\n  Brainy：回答正确！你已经掌握了club的含义和这个句子的意思啦~\n2. 段落大意题\nBrainy：我们来看看这一段主要表达了什么内容吧？\n- 所有的俱乐部都很受欢迎，你可以和朋友一起创建新的俱乐部。\n  Brainy：这部分内容不在这个段落里哦，再看看这段讲的是什么吧~\n- 你可以选择自己喜欢的俱乐部加入，对什么感兴趣就能找到对应的俱乐部。[正确]\n  Brainy：太赞了！你完全理解了这段的核心意思~\n# 完结反馈\nBrainy: 恭喜你完成了这部分内容的学习，你真棒！继续加油哦~\n```"}


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: core
cType: core_reading_imageDrag
type_name: 看图选词
level: L1
unit_id: U14
knowledge_points_raw:
  lake n. 湖
  monkey n. 猴子
  three num. 三
  How many ...? 多少……？
  There be ... 有……

status: generated
bitable_token: MVo7wugWfimJPIkxhJCcqppFnyf
db_table: core_interaction_component
created_at: 2026-04-30 14:00:36
updated_at: 2026-04-30 14:00:36
raw_config:
  【任务标题】看图选词填句
  【任务背景】你来到了神奇的单词城堡，城堡的墙上有很多缺了单词的句子，你需要找到正确的单词把它们补全，才能打开城堡的大门哦！
  【任务描述】观察主图内容，将下方选项池中的单词拖拽到对应句子的空白处，补全所有句子。
  【通关知识】
  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

final_config_json:
  {"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": "To open the castle gate, you read a question from Ben asking where hippos live, and fill the blank in \"in the ___\" with \"lake\", confirming hippos make their homes in the lake. You move on to Brainy's question about other animals in the zoo, and pick \"tree\" as the right choice, noting there are animals that live in trees in the zoo."}

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

task_info_json:
  {"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": "To open the castle gate, you read a question from Ben asking where hippos live, and fill the blank in \"in the ___\" with \"lake\", confirming hippos make their homes in the lake. You move on to Brainy's question about other animals in the zoo, and pick \"tree\" as the right choice, noting there are animals that live in trees in the zoo."}

study_info_json:
  {"learningPart": [{"image": "1201001_02.png", "learning": [{"question": {"type": "npc", "npcName": "Brainy", "content": "这道题我们要学习表示地点的核心名词哦，先考考你哪个单词的意思是“湖”呀？"}, "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”，意思是“在湖里”，现在试着大声把这个短语读出来吧~"}}, {"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": "答对啦！tree的中文意思就是“树”，这个知识点你记得很牢哦~"}}, {"option": "grass", "feedback": {"type": "npc", "npcName": "Brainy", "content": "grass的意思是“草”，不是我们要找的“树”哦，再想想看，你肯定可以的~"}}], "answer": [1]}, {"question": {"type": "npc", "npcName": "Brainy", "content": "现在Brainy问“动物园里还有什么其他动物？”，我们要选一个和动物生存场景相关的内容哦，提示你一下，猴子这类动物通常会在上面活动哦。"}, "optionList": [{"option": "tree", "feedback": {"type": "npc", "npcName": "Brainy", "content": "答对啦！动物园里的树上面会住着猴子之类的动物，是动物园里很常见的动物活动区域哦，试着把这个单词大声读出来吧~"}}, {"option": "lake", "feedback": {"type": "npc", "npcName": "Brainy", "content": "lake是湖，是河马、天鹅这类动物的生存区域，不符合这道题问的“其他动物”的对应场景哦，再想想看~"}}, {"option": "grass", "feedback": {"type": "npc", "npcName": "Brainy", "content": "grass是草地，是斑马、小鹿这类动物的活动区域，不符合“其他动物”的对应场景哦，再选一次吧~"}}], "answer": [0]}]}], "closing": {"type": "npc", "npcName": "Brainy", "content": "太棒了！你已经顺利完成了所有的对话任务，还复习了lake、tree、grass这些核心名词的词义和使用场景，英语表达能力又进步啦，继续加油哦~"}}

intermediate_json:
  {"学习流程配置": "```\n# 小题 4\n## 材料内容\n【展示图片1201001_02.png】\n\n## 互动题目\n### 1. 句意选词题\nBrainy：这道题我们要学习表示地点的核心名词哦，先考考你哪个单词的意思是“湖”呀？\n- 选项 A：tree\n  Brainy：tree的意思是“树”，不是我们要找的“湖”哦，没关系，再试一次吧~\n- 选项 B：lake\n  Brainy：答对啦！lake的中文意思就是“湖”，这个知识点你掌握得很棒哦~\n- 选项 C：grass\n  Brainy：grass的意思是“草”，不是我们要找的“湖”哦，再想想看，你肯定能选对的~\n\n### 2. 原题降级\nBrainy：现在看对话哦，Ben问“河马生活在哪里？”，我们需要选一个适合河马生存的地点填到横线上~\n- 选项 A：lake [正确]\n  Brainy：答对啦！河马是生活在湖里的，完整的句子是“in the lake”，意思是“在湖里”，现在试着大声把这个短语读出来吧~\n- 选项 B：tree\n  Brainy：tree是树的意思，河马不会生活在树上哦，结合河马的生活习性再选一次吧~\n- 选项 C：grass\n  Brainy：grass是草的意思，河马不是长期生活在草地上的哦，再想想看~\n\n---\n# 小题 5\n## 材料内容\n【展示图片1201001_02.png】\n\n## 互动题目\n### 1. 句意选词题\nBrainy：这道题我们要区分不同的名词词义，先考考你哪个单词的意思是“树”呀？\n- 选项 A：lake\n  Brainy：lake的意思是“湖”，不是我们要找的“树”哦，没关系，再试一次吧~\n- 选项 B：tree [正确]\n  Brainy：答对啦！tree的中文意思就是“树”，这个知识点你记得很牢哦~\n- 选项 C：grass\n  Brainy：grass的意思是“草”，不是我们要找的“树”哦，再想想看，你肯定可以的~\n\n### 2. 原题降级\nBrainy：现在Brainy问“动物园里还有什么其他动物？”，我们要选一个和动物生存场景相关的内容哦，提示你一下，猴子这类动物通常会在上面活动哦。\n- 选项 A：tree [正确]\n  Brainy：答对啦！动物园里的树上面会住着猴子之类的动物，是动物园里很常见的动物活动区域哦，试着把这个单词大声读出来吧~\n- 选项 B：lake\n  Brainy：lake是湖，是河马、天鹅这类动物的生存区域，不符合这道题问的“其他动物”的对应场景哦，再想想看~\n- 选项 C：grass\n  Brainy：grass是草地，是斑马、小鹿这类动物的活动区域，不符合“其他动物”的对应场景哦，再选一次吧~\n\n---\n# 完结反馈\nBrainy：太棒了！你已经顺利完成了所有的对话任务，还复习了lake、tree、grass这些核心名词的词义和使用场景，英语表达能力又进步啦，继续加油哦~\n```", "互动描述": "To open the castle gate, you read a question from Ben asking where hippos live, and fill the blank in \"in the ___\" with \"lake\", confirming hippos make their homes in the lake.\nYou move on to Brainy's question about other animals in the zoo, and pick \"tree\" as the right choice, noting there are animals that live in trees in the zoo."}

question_group_json:
  [{"image": "1201001_02.png", "questionList": [{"type": "npc", "npcName": "Ben", "content": "Where do hippos live？", "desc": "in the ___", "optionList": [{"option": "lake"}, {"option": "tree"}, {"option": "grass"}], "answer": [0]}, {"type": "npc", "npcName": "Brainy", "title": "What other animals are there in the zoo？", "desc": "___", "optionList": [{"option": "lake"}, {"option": "tree"}, {"option": "grass"}], "answer": [1]}]}]


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: core
cType: core_speaking_reply
type_name: 口语快答
level: L1
unit_id: U14
knowledge_points_raw:
  Let's...（结构）
  Instead of..., we'd better...（结构）
  ... love(s) to...（结构）

dialog_setting_json: {"setting": {"npcName": "Logan", "round": 5, "checkRound": 3}}
status: generated
bitable_token: TSwcw0nFmi21khkpUndchNMsn6f
db_table: core_interaction_component
created_at: 2026-04-30 14:01:51
updated_at: 2026-04-30 14:01:51
raw_config:
  【任务标题】
  求助清洁工人为大象洗澡
  【任务背景】
  你们了解到大象想要洗澡，哪里可以找到干净的水呢？你们想起了清洁中心一定有水！快求助工作人员，顺利让大象洗个痛快澡！
  【任务描述】
  请你告诉清洁站的工人，大象需要洗澡，你们乐意帮助，希望送一些干净的水过来。
  【通关知识】
  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.

final_config_json:
  {"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}}

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

task_info_json:
  {"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}}

study_info_json:
  {"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. Let's give her some bananas.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，现在我们要和Logan说的是大象需要洗澡的事，这句话是说大象饿了要喂香蕉，和当前情境不匹配，再选一次吧~"}}, {"option": "The elephant is lost. We need to find the keeper for her.", "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 should wait for the keeper 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 need to go home now, we can't help her.", "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": "Sorry, we are too busy to help.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，我们本来就是想帮忙给大象洗澡的，这句话说我们太忙没法帮忙，和我们的需求不符，再选一次吧~"}}, {"option": "We don't know how to shower an elephant.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，现在要回复Logan我们愿意帮忙，这句话是说我们不知道怎么给大象洗澡，不符合现在要表达的意思哦，再试试吧~"}}], "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": "太棒啦，你已经顺利完成了这次对话任务！你成功告诉了清洁站的工人大象需要洗澡，也表达了你们愿意帮忙，工人也同意马上送干净的水过来啦，你做得非常好~"}}}

intermediate_json:
  {"学习流程配置": "```\n# 开场回合\nLogan：Hi. What happened to the elephant?\n\n# 中间回合1\nBrainy：Logan问你大象发生什么事啦，现在你需要告诉他大象需要洗澡，我们想帮它准备洗澡的相关安排哦。\n用户选项:\n（A）The elephant needs a shower. Let's set up a shower for her. ✅\n  Brainy：太棒啦，你选对了！试着大声把这句话读出来吧~\n（B）The elephant is hungry. Let's give her some bananas.\n  Brainy：不对哦，现在我们要和Logan说的是大象需要洗澡的事，这句话是说大象饿了要喂香蕉，和当前情境不匹配，再选一次吧~\n（C）The elephant is lost. We need to find the keeper for her.\n  Brainy：不对哦，现在我们要沟通的是大象洗澡的需求，这句话是说大象走丢了要找饲养员，不符合现在的情况，再试试吧~\nLogan：Are you saying she hasn't had a shower yet? Maybe someone will probably come soon.\n\n# 中间回合2\nBrainy：Logan说你是说大象还没洗澡吗？说不定很快就会有人来处理啦。现在你要表达与其在这里等，我们最好先去给它拿点水哦。\n用户选项:\n（A）We should wait for the keeper to come and help her.\n  Brainy：不对哦，我们现在想说的是不要等别人，自己先去取水，这句话说我们要等饲养员来帮忙，和要表达的意思相反啦，再选一次吧~\n（B）Instead of waiting here, we'd better get some water for her first. ✅\n  Brainy：回答正确！快大声把这句话读出来呀~\n（C）We need to go home now, we can't help her.\n  Brainy：不对哦，我们是愿意帮助大象洗澡的，这句话说我们要回家没法帮忙，不符合情境哦，再试试吧~\nLogan：The keepers are too careless! Thank you! Can you help her shower?\n\n# 中间回合3\nBrainy：Logan说饲养员太粗心了，谢谢你，还问你能不能帮忙给大象洗澡。你现在要表达你们很乐意帮忙哦。\n用户选项:\n（A）We'd love to help. ✅\n  Brainy：太厉害啦，选对了！试着把这句话朗读出来吧~\n（B）Sorry, we are too busy to help.\n  Brainy：不对哦，我们本来就是想帮忙给大象洗澡的，这句话说我们太忙没法帮忙，和我们的需求不符，再选一次吧~\n（C）We don't know how to shower an elephant.\n  Brainy：不对哦，现在要回复Logan我们愿意帮忙，这句话是说我们不知道怎么给大象洗澡，不符合现在要表达的意思哦，再试试吧~\nLogan：Great. We will send some water to her right away.\n\n# 结尾回合\nBrainy：太棒啦，你已经顺利完成了这次对话任务！你成功告诉了清洁站的工人大象需要洗澡，也表达了你们愿意帮忙，工人也同意马上送干净的水过来啦，你做得非常好~\n```", "promptInfo配置": "```\n# 1. 角色（你要扮演谁）\n你是Logan，在Wander Port的清洁站工作。你的语言风格亲切友好，简单易懂，适合儿童理解。\n# 2. 任务（你如何参与对话）\n1. 开场首先询问用户大象遇到了什么情况，确认大象是不是需要洗澡。\n2. 得到用户确认大象需要洗澡的回答后，表达疑惑，告诉用户可以先等一等，或许饲养员很快会来。\n3. 等用户回应后，询问用户是否愿意帮忙给大象洗澡。\n4. 如果用户表示愿意帮忙，先向用户表达感谢，然后告诉用户你会立刻送干净的水过去。\n5. 确认所有信息后，友好结束对话，比如可以说\"Thank you for your help!\"。\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```", "语音识别热词": "elephant,shower,water,keepers,help,careless,Wander Port,Logan"}

dialog_config_json:
  {"config": {"asrPrompt": ["elephant", "shower", "water", "keepers", "help", "careless", "Wander Port", "Logan"], "promptInfo": {"default": "# 1. 角色（你要扮演谁）\n你是Logan，在Wander Port的清洁站工作。你的语言风格亲切友好，简单易懂，适合儿童理解。\n# 2. 任务（你如何参与对话）\n1. 开场首先询问用户大象遇到了什么情况，确认大象是不是需要洗澡。\n2. 得到用户确认大象需要洗澡的回答后，表达疑惑，告诉用户可以先等一等，或许饲养员很快会来。\n3. 等用户回应后，询问用户是否愿意帮忙给大象洗澡。\n4. 如果用户表示愿意帮忙，先向用户表达感谢，然后告诉用户你会立刻送干净的水过去。\n5. 确认所有信息后，友好结束对话，比如可以说\"Thank you for your help!\"。\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- 除开场轮次外，每次回应，可以先基于用户的话给一句反馈。然后再推进你的任务。", "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... ……很乐意……"}}}


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: core
cType: core_speaking_inquiry
type_name: 口语妙问
level: L1
unit_id: U14
knowledge_points_raw: Where can I...?（语义）Can I have... please?（语义）What else can I...?（语义）
dialog_setting_json: {"setting": {"npcName": "Chloe", "round": 5, "checkRound": 3}}
status: generated
bitable_token: GJUVwNSEkis3EXkrVj0ccbqdn8c
db_table: core_interaction_component
created_at: 2026-04-30 14:03:08
updated_at: 2026-04-30 14:03:08
raw_config:
  【任务标题】
  询问空乘关于健身房的信息
  【任务背景】
  吃太饱，头晕晕，连刚刚去过的健身房都不记得怎么走了。好在 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.

final_config_json:
  {"cType": "core_speaking_inquiry", "cId": "0000800", "title": "向Chloe询问健身房位置并讨要毛巾做好运动准备", "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}}

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

task_info_json:
  {"cType": "core_speaking_inquiry", "cId": "0000800", "title": "向Chloe询问健身房位置并讨要毛巾做好运动准备", "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}}

study_info_json:
  {"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 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": "太厉害啦！你正确地向Chloe提出了要毛巾的请求。请大声朗读这句话！"}}, {"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": "你已经知道健身房的位置啦，不用再问啦，现在问问健身房的其他用途吧，再试一次哦。"}}, {"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": "Chloe已经告诉你在健身房可以运动、欣赏风景，也可以放松休息，你已经问清楚了所有需要的信息，任务圆满完成啦！"}}}

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

dialog_config_json:
  {"config": {"asrPrompt": "gym,towel,exercise,sightseeing,walkway,relax", "promptInfo": {"default": "# 1. 角色（你要扮演谁）\n你是Chloe，是Twilight的空乘，把服务好每一位乘客当作自己的使命，对帮过你的用户格外友善热情。\n# 2. 任务（你如何参与到整个对话）\n- 你只在用户提问时提供特定信息，不主动透露知识库中的信息。\n- 如果用户提问的内容在知识库范围内，你会准确回答。\n- 如果用户的问题不清晰，你会尝试确认问题。\n- 一般情况下，一次最多只回答知识库中的一条信息，除非用户明确地分别提问到多条信息。\n- 如果用户不提问，你会温和、自然地进行交谈。\n# 3. 背景信息\n你是 Chloe，是 Twilight 的空乘，服务好每一位乘客是你的使命。\n用户之前帮你在另一位乘客面前解了围，你很感谢用户的帮忙，对用户的态度也格外友善热情。\n你发现用完餐的用户正在东张西望，似乎在寻找什么，你确认用户需要帮助，于是上前询问。你发现用户想去健身房消消食，但是不知道方向，于是回答了用户的问题，提供了你的帮助。\n# 4. 知识库（你知道的信息）\n- 健身房就在前方过道的尽头。\n- 你会为有需要的用户准备一条新毛巾。\n- 在健身房可以进行的活动：运动、看宇宙风光（sightseeing），或者可以拉伸放松、进行休息。\n- 对用户的任何提问，你都耐心安抚并一一回答。\n# 5. 语言风格\n- 使用 CEFR A1-A2 等级英语，避免复杂句，每句话不超过 10 个词，比如\n  \"我要去...\" 可以用句子 I am going to ...，不用 My destination is ...，确保小学2-4年级的孩子能听懂\n- 回答一般不超过两句话\n- 避免重复表达，适当变换措辞\n# 6. 开场白\n你由你开始对话，你会说：Can I help you?\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? 我在那儿还能做些什么？"}}}


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: core
cType: core_speaking_image
type_name: 看图说话
level: L1
unit_id: U14
knowledge_points_raw:
  winter
  cold
  snow

image_info_json: {"questionImg": "0000800_question.png"}
status: generated
bitable_token: KBOXwzVHfin6ORkKbA3c3eWEnoh
db_table: core_interaction_component
created_at: 2026-04-30 14:04:03
updated_at: 2026-04-30 14:04:03
raw_config:
  【任务标题】
  和 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.

final_config_json:
  {"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."}

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

task_info_json:
  {"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."}

study_info_json:
  {"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": "这句话的意思是“冷的”，但老师现在问的是当下的季节是什么，不是天气感受。请再仔细听清问题，告诉老师现在的季节。"}}, {"option": "Snow.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句话的意思是“雪”，但老师现在问的是季节，不是冬天能看到的事物。请再仔细听清问题，告诉老师现在的季节。"}}], "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": "这句话的意思是“冬天”，但老师现在问的是冬天的天气是热还是冷，不是季节本身。请再仔细听清问题，告诉老师冬天的天气感受。"}}, {"option": "Cold.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "太棒了！你正确回答了冬天天气很冷。请大声朗读这个单词！"}}, {"option": "Snow.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句话的意思是“雪”，但老师现在问的是天气冷热，不是冬天能看到的事物。请再仔细听清问题，告诉老师冬天的天气感受。"}}], "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": "这句话的意思是“冬天”，但老师现在问的是冬天能看到的东西，不是季节本身。请再仔细听清问题，告诉老师你在冬天能看到的事物。"}}, {"option": "Cold.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句话的意思是“冷的”，但老师现在问的是能看到的事物，不是天气感受。请再仔细听清问题，告诉老师你在冬天能看到的事物。"}}, {"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 got all the answers right. You'll have hot food soon."}}]}], "closing": {"type": "npc", "npcName": "Brainy", "content": "恭喜你完美完成了本次和Rock老师的对话练习，你不仅掌握了冬天相关的英文表达，还学会了如何回答关于季节、天气和季节特有事物的问题，表现非常出色！"}}

intermediate_json:
  {"学习流程配置": "```\n# 中间回合1\nRock: What season is it?\nBrainy: Rock 老师询问你现在是什么季节，你需要回答他当前所处的季节。\n用户选项:\n（选项 A）Winter. [正确]\n  Brainy: 太棒了！你正确回答了现在是冬天。请大声朗读这个单词！\n（选项 B）Cold.\n  Brainy: 这句话的意思是“冷的”，但老师现在问的是当下的季节是什么，不是天气感受。请再仔细听清问题，告诉老师现在的季节。\n（选项 C）Snow.\n  Brainy: 这句话的意思是“雪”，但老师现在问的是季节，不是冬天能看到的事物。请再仔细听清问题，告诉老师现在的季节。\n\n# 中间回合2\nRock: Is it hot or cold?\nBrainy: Rock 老师现在问你天气是热还是冷，你需要回答当前冬天的天气感受。\n用户选项:\n（选项 A）Winter.\n  Brainy: 这句话的意思是“冬天”，但老师现在问的是冬天的天气是热还是冷，不是季节本身。请再仔细听清问题，告诉老师冬天的天气感受。\n（选项 B）Cold. [正确]\n  Brainy: 太棒了！你正确回答了冬天天气很冷。请大声朗读这个单词！\n（选项 C）Snow.\n  Brainy: 这句话的意思是“雪”，但老师现在问的是天气冷热，不是冬天能看到的事物。请再仔细听清问题，告诉老师冬天的天气感受。\n\n# 中间回合3\nRock: What do you see in winter?\nBrainy: Rock 老师询问你在冬天能看到什么，你需要回答冬天特有的事物。\n用户选项:\n（选项 A）Winter.\n  Brainy: 这句话的意思是“冬天”，但老师现在问的是冬天能看到的东西，不是季节本身。请再仔细听清问题，告诉老师你在冬天能看到的事物。\n（选项 B）Cold.\n  Brainy: 这句话的意思是“冷的”，但老师现在问的是能看到的事物，不是天气感受。请再仔细听清问题，告诉老师你在冬天能看到的事物。\n（选项 C）Snow. [正确]\n  Brainy: 太棒了！你正确回答了冬天能看到雪。请大声朗读这个单词！\n\n# 结尾回合\nBrainy: 你和 Rock 老师的聊天非常顺利，答对了所有问题，再等一会就能吃到热乎乎的食物啦，任务成功完成！\n```", "语音识别热词": "winter,cold,snow,season,hot"}

dialog_config_json:
  {"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."}]}}}

option_list_json:
  [{"option": "0000800_option_00.png"}, {"option": "0000800_option_01.png"}, {"option": "0000800_option_02.png"}]

question_list_json:
  [{"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."}]


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: core
cType: core_listening_order
type_name: 合作听力
level: L1
unit_id: U14
knowledge_points_raw:
  bake（词义）
  healthy（词义）
  money（词义）
  cake（词义）
  alcohol（词义）

flow_info_json: {"sequence": [{"audio": [0]}, {"question": [0]}, {"audio": [1]}, {"question": [1, 2, 3]}]}
status: generated
bitable_token: FrxtwNRQDizqiikPkATcBzTCnYe
db_table: core_interaction_component
created_at: 2026-04-30 14:04:56
updated_at: 2026-04-30 14:04:56
raw_config:
  【任务标题】
  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】

final_config_json:
  {"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}}

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

task_info_json:
  {"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}}

material_info_json:
  {"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": "无"}]}

study_info_json:
  {"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，意思是在家烘焙。这里的 bake 是动词，指烘烤（面包、糕点等食物）哦。", "type": "npc", "npcName": "Brainy", "learning": [{"answer": [1], "meaning": "听音选句", "optionList": [{"feedback": {"type": "npc", "content": "不对哦，句子里说的是在家做点心，不是去商店买，再仔细听听音频吧~", "npcName": "Brainy"}, "option": "When you really want sweet food, like biscuits or cake, you can buy at the shop."}, {"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."}], "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"}}]}]}

intermediate_json:
  {"学习过程配置": "```\n# 重点句子 1\n音频文本：When you really want sweet food, like biscuits or cake, you can bake at home.\n讲解文本：刚刚听到的音频中，包含了一个关键短语 bake at home，意思是在家烘焙。这里的 bake 是动词，指烘烤（面包、糕点等食物）哦。\n1. 听音选句\nBrainy：仔细听音频，选出和你听到的句子内容一致的选项吧。\n- When you really want sweet food, like biscuits or cake, you can buy at the shop.\n  - Brainy：不对哦，句子里说的是在家做点心，不是去商店买，再仔细听听音频吧~\n- When you really want sweet food, like biscuits or cake, you can bake at home. [正确]\n  - Brainy：太厉害啦！你准确听出了句子里的重点短语 bake at home！\n\n2. 听音选意\nBrainy：现在来看看这句话是什么意思，选出正确的中文翻译吧。\n- 当你很想吃甜食，比如饼干或者蛋糕时，你可以在家烘焙。[正确]\n  - Brainy：答对啦！你完全理解了这个句子，还掌握了 bake at home 这个实用的短语哦，真棒！\n- 当你很想吃甜食，比如饼干或者蛋糕时，你可以去外面的餐厅吃。\n  - Brainy：这个选项和句子说的做法不一样哦，再看看句子里说的是在哪里做点心呀，重新选一次试试看~\n---\n# 完成反馈\nBrainy：很好！你已经回答完了全部问题，相信你已经听懂了这个任务中所有的重点句子。现在让我们来查看结果吧!\n```", "互动描述": "You listened to a part of the audio \"How to live a healthy life?\" and learned that a healthy routine means going to bed on time and getting up early, and you should stay away from smoking and alcohol.（你听了《如何健康生活》的部分音频，了解到健康的作息是早睡早起，还要远离烟酒。）\nYou also got to know that keeping a healthy body doesn't require much money or expensive things, and good habits are the most important for health.（你还了解到保持健康不需要很多钱或是昂贵的东西，好的习惯对健康来说才是最重要的。）"}


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: core
cType: core_reading_order
type_name: 合作阅读
level: L1
unit_id: U14
knowledge_points_raw:
  club
  join
  member
  choose
  interested

status: generated
bitable_token: H6DJweNkpigCbak2Y5LcTZ8Vnfb
db_table: core_interaction_component
created_at: 2026-04-30 14:05:03
updated_at: 2026-04-30 14:05:03
raw_config:
  【任务标题】
  阅读 《在 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.

final_config_json:
  {"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}}

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

task_info_json:
[cell repeats an earlier one in this file: 626 characters]

material_info_json:
  {"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": ""}]}

flow_info_json:
  {"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]}]}

study_info_json:
  {"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": "接下来看看这段整体想表达什么内容吧？"}}]}]}

intermediate_json:
  {"阅读材料格式化": "```\n# 材料2\n类型：电子屏\n标题：How to Join Clubs?\n正文:\n<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]\n```", "学习材料格式化": "```\n# 段落1\n重点词汇: \n正文:\n---\nAt Vala Academy, Pioneers don't have exams. But you need points to level up!\n---\n# 段落2\n重点词汇: \n正文:\n---\nYou can choose your favourite club to join. If you are interested in something, you can find a club for it.\n---\n```", "学习过程配置": "```\n# 段落1\n## 段落内容\n---\nAt Vala Academy, Pioneers don't have exams. But you need points to level up!\n---\n## 互动题目\nBrainy：我们来认识一下这段话中的关键单词 exams。exams 是 exam 的复数形式，意思是考试，我们常说的参加考试可以说 take exams。\n1. 句意选择题\nBrainy：接下来，我们来看下包含 exams 的句子 At Vala Academy, Pioneers don't have exams. 是什么意思呢？\n- 在瓦拉学院，开拓者们没有考试。[正确]\n  Brainy：太棒啦！你准确理解了 exams 的含义，也掌握了这句话的意思哦～\n- 在瓦拉学院，开拓者们没有课程。\n  Brainy：不对哦，课程的英文是 classes，我们这里讲的 exams 是考试的意思，再回忆一下释义吧。\n\n2. 段落大意题\nBrainy：了解了关键单词和句子，我们来看看这段主要讲了什么内容吧？\n- 瓦拉学院的开拓者不需要考试，也不需要任何积分就能升级。\n  Brainy：有点小偏差哦，文中明确提到升级是需要积分的，再仔细看看段落内容吧。\n- 瓦拉学院的开拓者没有考试，但是升级需要积分。[正确]\n  Brainy：回答得太完美了！你完全抓住了这段的两个核心信息点～\n# 段落2\n## 段落内容\n---\nYou can choose your favourite club to join. If you are interested in something, you can find a club for it.\n---\n## 互动题目\nBrainy：我们先来认识本段的关键单词 club，club 的意思是俱乐部，加入俱乐部可以说 join a club。\n1. 句意选择题\nBrainy：我们来看包含 club 的句子 You can choose your favourite club to join. 是什么意思呢？\n- 你可以选择自己最喜欢的课程去学习。\n  Brainy：不对哦，课程的英文是 course，我们这里的关键词 club 是俱乐部的意思，再回忆一下释义吧。\n- 你可以选择自己最喜欢的俱乐部加入。[正确]\n  Brainy：完全正确！你已经掌握了 club 的意思，也理解了这句话的含义啦～\n\n2. 段落大意题\nBrainy：接下来看看这段整体想表达什么内容吧？\n- 你可以选择加入喜欢的俱乐部，如果对某个事物感兴趣，也能找到对应的俱乐部。[正确]\n  Brainy：太厉害了！你精准理解了这两句话的意思，把整段的核心内容都抓住了～\n- 所有的俱乐部都非常受欢迎，你必须加入其中一个。\n  Brainy：不对哦，这段没有提到俱乐部受欢迎，也没有要求必须加入俱乐部，再仔细看看内容吧。\n# 完结反馈\nBrainy：太优秀啦！你已经完成了所有段落的学习，知识点都掌握得非常好哦～\n```"}


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: core
cType: core_listening_choose
type_name: 听力选择
level: L1
unit_id: U14
knowledge_points_raw: summerhotshortstrousersCould you...It feels...
question_group_json: "无"
status: generated
bitable_token: Kwrcw6A4jip2sxkdLn4czd1knvf
db_table: core_interaction_component
created_at: 2026-04-30 14:05:47
updated_at: 2026-04-30 14:05:47
raw_config:
  【任务标题】
  请求路边钓鱼的叔叔帮忙
  【任务背景】
  心心念念的短裤原来卡在石头间了，快抓紧时间请钓鱼叔叔帮忙钓上来吧！
  【通关知识】
  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...】

final_config_json:
  {"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": "请您提供完整的任务名称、具体的题目材料以及对应的正确答案信息哦，只有拿到这些核心内容，我才能按照要求生成符合规范的叙事化描述~"}

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

task_info_json:
  {"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": "请您提供完整的任务名称、具体的题目材料以及对应的正确答案信息哦，只有拿到这些核心内容，我才能按照要求生成符合规范的叙事化描述~"}

study_info_json:
  {"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": "Oops，这句话说到的是 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": "错 / No", "feedback": {"type": "npc", "content": "答对啦！summer 是夏天的意思，你已经牢牢记住这个单词啦！", "npcName": "Brainy"}}, {"option": "对 / Yes", "feedback": {"type": "npc", "content": "要注意哦，句子里说的不是冬天，再想想 summer 的意思是什么吧，你可以的！", "npcName": "Brainy"}}], "answer": [0]}]}], "closing": {"type": "npc", "content": "很好！你已经回答完了全部问题，相信你已经听懂了这个任务中所有的重点句子。现在让我们来查看结果吧!", "npcName": "Brainy"}}

intermediate_json:
  {"学习过程配置": "```\n# 重点句子 1\n音频文本：This summer!\n讲解文本：刚刚听到的音频中，包含了重点短语 summer，意思是夏天，是一年中天气最热的季节哦。\n1. 听音选句\nBrainy：仔细听音频，哪一个句子和你听到的内容一致呢？\n- This winter!\n  - Brainy：Oops，这句话说到的是 winter（冬天），不是我们听到的夏天哦，再听一遍试试吧。\n- This summer! [正确]\n  - Brainy：太棒啦！你准确听出了句子里的重点单词 summer，听力超棒的！\n\n2. 听音选意\nBrainy：\"这个冬天！\"是这句话的中文意思吗？\n- 错 / No [正确]\n  - Brainy：答对啦！summer 是夏天的意思，你已经牢牢记住这个单词啦！\n- 对 / Yes\n  - Brainy：要注意哦，句子里说的不是冬天，再想想 summer 的意思是什么吧，你可以的！\n---\n# 完成反馈\nBrainy：很好！你已经回答完了全部问题，相信你已经听懂了这个任务中所有的重点句子。现在让我们来查看结果吧!\n```", "互动描述": "请您提供完整的任务名称、具体的题目材料以及对应的正确答案信息哦，只有拿到这些核心内容，我才能按照要求生成符合规范的叙事化描述~"}


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: core
cType: core_reading_imageDrag
type_name: 看图选词
level: L1
unit_id: U14
knowledge_points_raw:
  lake n. 湖
  monkey n. 猴子
  three num. 三
  How many ...? 多少……？
  There be ... 有……

status: generated
bitable_token: MVo7wugWfimJPIkxhJCcqppFnyf
db_table: core_interaction_component
created_at: 2026-04-30 14:06:02
updated_at: 2026-04-30 14:06:02
raw_config:
  【任务标题】看图选词填句
  【任务背景】你来到了神奇的单词城堡，城堡的墙上有很多缺了单词的句子，你需要找到正确的单词把它们补全，才能打开城堡的大门哦！
  【任务描述】观察主图内容，将下方选项池中的单词拖拽到对应句子的空白处，补全所有句子。
  【通关知识】
  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

final_config_json:
  {"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": "你探索单词城堡时听到本问河马住在哪里，你想到它们栖息在湖里，补全了墙上的空缺句子。当布莱尼说起动物园里的其他动物时，你想到树木是很多动物园动物的栖息地，完成了城堡墙上的下一句句子。"}

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

task_info_json:
  {"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": "你探索单词城堡时听到本问河马住在哪里，你想到它们栖息在湖里，补全了墙上的空缺句子。当布莱尼说起动物园里的其他动物时，你想到树木是很多动物园动物的栖息地，完成了城堡墙上的下一句句子。"}

study_info_json:
  {"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这些单词的用法，知道了河马的生活环境，还有动物园里的常见事物，英语表达能力又进步啦，继续加油哦~"}}

intermediate_json:
  {"学习流程配置": "```\n# 小题 4\n## 材料内容\n【展示图片ID：1201001_02.png】\n\n## 互动题目\n### 1. 句意选词题\nBrainy：小朋友，这道题我们要选河马居住的地方哦，先来学习三个核心单词的意思吧~\n- 选项 A：tree\n  Brainy：tree的意思是“树”，河马体型很大，没办法住在树上哦，再试试看吧~\n- 选项 B：grass\n  Brainy：grass的意思是“草”，草是河马的食物，不是它居住的地方哦，再想想~\n- 选项 C：lake [正确]\n  Brainy：答对啦！lake的意思是“湖”，河马很喜欢待在水里，湖泊就是它的家哦，你真棒！\n\n### 2. 原题降级\nBrainy：现在我们来看题目哦，Ben问“河马住在哪里？”，我们要选合适的单词填到“in the ___”里，完成回答~\n- 选项 A：lake [正确]\n  Brainy：太厉害啦！回答就是“in the lake（在湖里）”，河马确实生活在湖里，现在跟着大声读一遍这个句子吧：Where do hippos live? In the lake.\n- 选项 B：tree\n  Brainy：tree是树哦，河马这么大的体型，住在树上可太不现实啦，结合图片里的河马生存环境再选一次吧~\n- 选项 C：grass\n  Brainy：grass是草哦，这里问的是河马的居住地点，不是它的食物，再仔细想想哦~\n\n---\n\n# 小题 5\n## 材料内容\n【展示图片ID：1201001_02.png】\n\n## 互动题目\n### 1. 句意选词题\nBrainy：这道题我们要找动物园里存在的事物，先复习几个单词的含义哦~\n- 选项 A：lake\n  Brainy：lake是“湖”，湖是自然景观，不是动物园里的动物哦，再试试看~\n- 选项 B：grass\n  Brainy：grass是“草”，草是植物，也不是动物哦，再想想~\n- 选项 C：tree [正确]\n  Brainy：对啦，tree是“树”，动物园里会种树给动物们遮阴，是动物园里常见的事物哦，你记住啦~\n\n### 2. 原题降级\nBrainy：现在看题目，Brainy问“动物园里还有什么其他的？”，我们要选出符合动物园场景的事物哦~\n- 选项 A：lake\n  Brainy：lake是湖哦，一般动物园不会有大型的湖泊，这个不符合动物园的常见配置，再选一次吧~\n- 选项 B：tree [正确]\n  Brainy：答对啦！动物园里会种很多树，给动物们提供自然的生活环境，完全符合哦，现在大声读一遍对话吧：What other animals are there in the zoo? Tree.\n- 选项 C：grass\n  Brainy：grass是草哦，虽然动物园里也有草，但树是动物园里更有代表性的、给动物提供栖息环境的事物哦，再想想~\n\n---\n\n# 完结反馈\nBrainy：太棒了！你已经顺利完成了所有的对话任务，还学会了lake、tree、grass这些单词的用法，知道了河马的生活环境，还有动物园里的常见事物，英语表达能力又进步啦，继续加油哦~\n```", "互动描述": "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.（你探索单词城堡时听到本问河马住在哪里，你想到它们栖息在湖里，补全了墙上的空缺句子。）\nWhen 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.（当布莱尼说起动物园里的其他动物时，你想到树木是很多动物园动物的栖息地，完成了城堡墙上的下一句句子。）"}

question_group_json:
  [{"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]}]}]


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: core
cType: core_speaking_reply
type_name: 口语快答
level: L1
unit_id: U14
knowledge_points_raw:
  Let's...（结构）
  Instead of..., we'd better...（结构）
  ... love(s) to...（结构）

dialog_setting_json: {"setting": {"npcName": "Logan", "round": 5, "checkRound": 3}}
status: generated
bitable_token: TSwcw0nFmi21khkpUndchNMsn6f
db_table: core_interaction_component
created_at: 2026-04-30 14:07:21
updated_at: 2026-04-30 14:07:21
raw_config:
  【任务标题】
  求助清洁工人为大象洗澡
  【任务背景】
  你们了解到大象想要洗澡，哪里可以找到干净的水呢？你们想起了清洁中心一定有水！快求助工作人员，顺利让大象洗个痛快澡！
  【任务描述】
  请你告诉清洁站的工人，大象需要洗澡，你们乐意帮助，希望送一些干净的水过来。
  【通关知识】
  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.

final_config_json:
  {"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}}

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

task_info_json:
  {"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}}

study_info_json:
  {"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沟通好了帮助大象洗澡的事，你做得超棒哦！"}}}

intermediate_json:
  {"学习流程配置": "```\n# 开场回合\nLogan：Hi. What happened to the elephant?\n\n# 中间回合1\nBrainy：Logan问你大象怎么了，现在你需要告诉他大象需要洗澡，咱们可以一起帮大象准备淋浴哦。\n用户选项:\n（A）The elephant needs a shower. Let's set up a shower for her.\n  Brainy：回答正确哦！你真棒，现在试着把这句话大声朗读出来吧~\n（B）The elephant is sleeping. Don't wake her up.\n  Brainy：这个回答不太对哦，现在大象是需要洗澡，不是在睡觉呀，再选一次试试看吧。\n（C）I don't know where the elephant is.\n  Brainy：这个回答不符合现在的情况哦，咱们已经知道大象的状况啦，再选一次吧。\nLogan：Are you saying she hasn't had a shower yet? Maybe someone will probably come soon.\n\n# 中间回合2\nBrainy：Logan问你是不是说大象还没洗澡，他说可能很快就会有人过来啦，现在你要建议我们别在这儿等，最好先去给她拿点水哦。\n用户选项:\n（A）Let's wait for the keepers together.\n  Brainy：这个回答不对哦，现在我们不要原地等待，要主动先去取水呀，再试一次吧。\n（B）Instead of waiting here, we'd better get some water for her first.\n  Brainy：答对啦！你太厉害了，现在把这句话大声读出来就更好啦~\n（C）We can go home first and come back later.\n  Brainy：这个不合适哦，我们现在要帮大象洗澡，不能先回家呀，再选一次吧。\nLogan：The keepers are too careless! Thank you! Can you help her shower?\n\n# 中间回合3\nBrainy：Logan说饲养员太粗心了，还谢谢你，现在他问你们能不能帮忙给大象洗澡，你要告诉他你们很乐意帮忙哦。\n用户选项:\n（A）We'd love to help.\n  Brainy：完全正确！你太优秀啦，试着朗读一下这句话吧~\n（B）We are too busy to help.\n  Brainy：这个回答不对哦，我们本来就很愿意帮大象洗澡的，再选一次吧。\n（C）We need to ask our parents first.\n  Brainy：这个回答不符合现在的情境哦，我们已经准备好帮忙啦，再试一次吧。\nLogan：Great. We will send some water to her right away.\n\n# 结尾回合\nBrainy：太棒啦！你已经顺利完成了这次对话任务，成功和Logan沟通好了帮助大象洗澡的事，你做得超棒哦！\n```", "promptInfo配置": "```\n# 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- 除开场轮次外，每次回应，可以先基于用户的话给一句反馈。然后再推进你的任务。\n```", "语音识别热词": "elephant,shower,water,keepers,help,clean,Wander Port,Logan"}

dialog_config_json:
  {"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... ……很乐意……"}}}


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: core
cType: core_writing_questionMakeSentence
type_name: 邮件组句
level: L1
unit_id: U14
knowledge_points_raw:
  That's why we have to...（结构）
  The job is...（结构）When will you arrive? （语义）

status: generated
bitable_token: M5oTwUP6wiImC4kVJU8cRYnfnyf
db_table: core_interaction_component
created_at: 2026-04-30 14:07:35
updated_at: 2026-04-30 14:07:35
raw_config:
  【任务名称】
   编写给 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
  【通过规则】
  用户写出：
  这份工作很重要。
  这就是我们为什么要留下。
  你什么时候将会到达？

final_config_json:
  {"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?（亲爱的丽贝卡：我知道你很担心。但这是我们探索漫游港的最佳机会。这项任务对我们来说很重要。这就是我们必须留下来的原因。你会不会哪天来漫游港呀？你什么时候会到呢？）"}

kp_info_json:
  {"pushType": "relationKp", "cType": "core_writing_questionMakeSentence", "cId": "0000800", "kpInfo": [{"kpId": "0328017", "kpType": "sentence", "kpTitle": "The job is...", "kpSkill": "sentence_meaning", "kpSkillName": "语义", "candidates": [{"kp_id": "0328017", "type": "sentence", "title": "The job is...", "vala_level": "L2", "en_desc": ""}]}, {"kpId": null, "kpType": "sentence", "kpTitle": "这份工作......", "kpSkill": "sentence_meaning", "kpSkillName": "语义", "candidates": []}, {"kpId": "0328016", "kpType": "sentence", "kpTitle": "That's why we have to...", "kpSkill": "sentence_meaning", "kpSkillName": "语义", "candidates": [{"kp_id": "0328016", "type": "sentence", "title": "That's why we have to...", "vala_level": "L2", "en_desc": ""}]}, {"kpId": null, "kpType": "vocab", "kpTitle": "这就是为什么我们必须……", "kpSkill": "vocab_meaning", "kpSkillName": "词义", "candidates": []}, {"kpId": "0328014", "kpType": "sentence", "kpTitle": "When will you arrive?", "kpSkill": "sentence_meaning", "kpSkillName": "语义", "candidates": [{"kp_id": "0328014", "type": "sentence", "title": "When will you arrive?", "vala_level": "L2", "en_desc": ""}]}, {"kpId": null, "kpType": "vocab", "kpTitle": "你什么时候会到？", "kpSkill": "vocab_meaning", "kpSkillName": "词义", "candidates": []}]}

task_info_json:
  {"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?（亲爱的丽贝卡：我知道你很担心。但这是我们探索漫游港的最佳机会。这项任务对我们来说很重要。这就是我们必须留下来的原因。你会不会哪天来漫游港呀？你什么时候会到呢？）"}

study_info_json:
  {"learningPart": [{"leadIn": {"desc": "What is your opinion on the job?"}, "learning": [{"question": {"type": "npc", "npcName": "Brainy", "content": "你在邮件中向Rebecca解释留在Wander Port的原因，想表达“这份工作对我们来说很重要”，现在需要补全句子\"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是job的复数形式，和句子里的单数be动词is不匹配，语法上是错误的，再试试吧。"}}, {"option": "projects", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，projects是“项目”的复数形式，一方面和单数be动词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什么时候会到达，需要补全句子\"___ you arrive?\""}, "optionList": [{"option": "When will", "feedback": {"type": "npc", "npcName": "Brainy", "content": "答对啦！这是一般将来时的特殊疑问句，询问将来的时间要用\"when will + 主语 + 动词原形\"的结构，正好符合你询问Rebecca到达时间的需求~"}}, {"option": "When is", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，句子里已经有实义动词arrive了，不能再用be动词is，语法结构不对，再试试吧。"}}, {"option": "How is", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，how是询问方式的疑问词，你这里想要问的是到达的时间，而且同样也不能和实义动词arrive搭配使用，不符合需求哦。"}}], "answer": [0], "write": {"desc": "When will you arrive?", "trans": "你什么时候会到？"}, "feedback": {"type": "npc", "npcName": "Brainy", "content": "你写的很好！"}}]}], "closing": {"type": "npc", "npcName": "Brainy", "content": "恭喜你，你已经掌握了名词和be动词的单复数搭配、固定表达\"That's why...\"的用法以及一般将来时特殊疑问句的结构，顺利完成了给Rebecca的邮件编写！"}}

intermediate_json:
  {"学习流程配置": "```\n# 问题1：\nBrainy: 你在邮件中向Rebecca解释留在Wander Port的原因，想表达“这份工作对我们来说很重要”，现在需要补全句子\"The ___ is important for us.\"\n用户选项:\n（选项 A）job [正确]\n  Brainy: 答对啦！句子里的be动词是is，说明主语是单数，job作为单数名词符合这里的语法和语义要求，完美表达了“这份工作对我们很重要”的意思~\n（选项 B）jobs\n  Brainy: 不对哦，jobs是job的复数形式，和句子里的单数be动词is不匹配，语法上是错误的，再试试吧。\n（选项 C）projects\n  Brainy: 不对哦，projects是“项目”的复数形式，一方面和单数be动词is不匹配，另一方面语义也不符合这里要表达的含义，再想一想~\n\n# 问题2：\nBrainy: 你接下来要在邮件里说明“这就是我们必须留下来的原因”，需要补全句子\"That's ___ we have to stay.\"\n用户选项:\n（选项 A）why [正确]\n  Brainy: 太棒了！\"That's why...\"是固定表达，意思是“这就是……的原因”，正好对应你要表达的留下来的原因，用在这里非常合适。\n（选项 B）how\n  Brainy: 不对哦，how表示“如何、怎样”，代入句子的话就变成“这就是我们必须怎么留下来”，语义不通顺，不符合你想表达的说明原因的需求，再试试~\n（选项 C）which\n  Brainy: 不对哦，which表示“哪一个”，放在这里句子逻辑不通，没法表达你要说明留下来的原因的意思，再想一想~\n\n# 问题3：\nBrainy: 你在邮件最后想询问Rebecca什么时候会到达，需要补全句子\"___ you arrive?\"\n用户选项:\n（选项 A）When will [正确]\n  Brainy: 答对啦！这是一般将来时的特殊疑问句，询问将来的时间要用\"when will + 主语 + 动词原形\"的结构，正好符合你询问Rebecca到达时间的需求~\n（选项 B）When is\n  Brainy: 不对哦，句子里已经有实义动词arrive了，不能再用be动词is，语法结构不对，再试试吧。\n（选项 C）How is\n  Brainy: 不对哦，how是询问方式的疑问词，你这里想要问的是到达的时间，而且同样也不能和实义动词arrive搭配使用，不符合需求哦。\n```", "互动描述": "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?（亲爱的丽贝卡：我知道你很担心。但这是我们探索漫游港的最佳机会。这项任务对我们来说很重要。这就是我们必须留下来的原因。你会不会哪天来漫游港呀？你什么时候会到呢？）"}

text_info_json:
  {"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]}]}

eval_info_json:
  {"title": "编写给 Rebecca 的邮件", "taskDesc": "请根据提示问题，用英文组句完成这封邮件。", "sceneDesc": "Rebecca听上去十分担心你们的安全，你们刚刚做出了决定，要继续留在 Wander Port 进行学院的探索任务，你需要回一封邮件给她，告诉她你们的决定以及原因，顺便询问她何时会来。", "knowledge": "The job is... 这份工作......\nThat's why we have to... 这就是为什么我们必须……\nWhen 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]}]}


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: core
cType: core_speaking_inquiry
type_name: 口语妙问
level: L1
unit_id: U14
knowledge_points_raw: Where can I...?（语义）Can I have... please?（语义）What else can I...?（语义）
dialog_setting_json: {"setting": {"npcName": "Chloe", "round": 5, "checkRound": 3}}
status: generated
bitable_token: GJUVwNSEkis3EXkrVj0ccbqdn8c
db_table: core_interaction_component
created_at: 2026-04-30 14:08:42
updated_at: 2026-04-30 14:08:42
raw_config:
  【任务标题】
  询问空乘关于健身房的信息
  【任务背景】
  吃太饱，头晕晕，连刚刚去过的健身房都不记得怎么走了。好在 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.

final_config_json:
  {"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}}

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

task_info_json:
  {"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}}

study_info_json:
  {"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": "你已经成功问到了健身房的位置、拿到了毛巾，也知道了健身房里可以做的事，任务圆满完成啦！"}}}

intermediate_json:
  {"学习流程配置": "```\n# 开场回合\nChloe：Can I help you?\n\n# 中间回合1\nBrainy：空乘Chloe主动询问你是否需要帮助，现在你需要向她询问健身房的位置。\n用户选项:\n（选项A）Where can I find the gym? [正确]\n  Brainy：太棒了！你正确询问了健身房的位置。请大声朗读这句话！\n（选项B）Can I have a towel please?\n  Brainy：这句话是用来索要毛巾的，现在我们首先需要问健身房的位置哦，请再试一次。\n（选项C）What can I do in the gym?\n  Brainy：这句话是询问健身房里可以做什么的，不是用来问位置的，请再试一次。\nChloe：Look, it's over there at the end of this walkway.\n\n# 中间回合2\nBrainy：Chloe已经告诉你健身房在走道的尽头了，现在你需要向她讨要毛巾，为运动做准备。\n用户选项:\n（选项A）Where is the gym?\n  Brainy：Chloe已经告诉你健身房的位置啦，现在你需要向她要毛巾哦，请再试一次。\n（选项B）Oh, and can I have a towel please? [正确]\n  Brainy：太对啦！你正确表达了想要毛巾的需求。请大声朗读这句话！\n（选项C）I want to drink some water.\n  Brainy：这句话是说你想要喝水，不是索要毛巾的表达哦，请再试一次。\nChloe：Of course! I'll bring a new one for you soon.\n\n# 中间回合3\nBrainy：Chloe说马上给你拿新毛巾，现在你可以问问在健身房里还能做些什么，了解更多相关信息。\n用户选项:\n（选项A）What else can I do there? [正确]\n  Brainy：你太棒了！正确询问了在健身房里可以做的其他事。请大声朗读这句话！\n（选项B）Can you give me a towel?\n  Brainy：Chloe已经答应给你拿毛巾啦，不需要再问啦，试着问问健身房还有什么可以做的吧。\n（选项C）Where is the restaurant?\n  Brainy：这句话是询问餐厅位置的，我们现在需要问健身房相关的内容哦，请再试一次。\nChloe：Well, you can do some exercise and enjoy sightseeing there. Or you can just relax.\n\n# 结尾回合\nBrainy：你已经成功问到了健身房的位置、拿到了毛巾，也知道了健身房里可以做的事，任务圆满完成啦！\n```", "promptInfo配置": "```\n# 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- 不主动提问题\n```", "语音识别热词": "gym,towel,exercise,sightseeing,relax,walkway"}

dialog_config_json:
  {"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? 我在那儿还能做些什么？"}}}


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: core
cType: core_writing_questionWrite
type_name: 邮件撰写
level: L1
unit_id: U14
knowledge_points_raw: That's why we have to...（结构）The job is...（结构）When will you arrive? （语义）
status: generated
bitable_token: Brn0wldKYizsLZkBqK6clp1tnKd
db_table: core_interaction_component
created_at: 2026-04-30 14:09:03
updated_at: 2026-04-30 14:09:03
raw_config:
  【任务名称】 编写给 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
  【通过规则】用户写出：这份工作很重要。这就是我们为什么要留下。你什么时候将会到达？

final_config_json:
  {"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?（亲爱的丽贝卡：我知道你很担心。但这是我们探索漫游港的最佳机会。这项工作对我们很重要。这就是我们必须留下来的原因。你哪天会来漫游港吗？如果会的话，你什么时候到呢？）"}

kp_info_json:
  {"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": "语义", "candidates": []}]}

task_info_json:
  {"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?（亲爱的丽贝卡：我知道你很担心。但这是我们探索漫游港的最佳机会。这项工作对我们很重要。这就是我们必须留下来的原因。你哪天会来漫游港吗？如果会的话，你什么时候到呢？）"}

study_info_json:
  {"learningPart": [{"leadIn": {"desc": "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": "这个表达太口语化啦，更适合日常聊天，写给担心你们安全的Rebecca用正式一点的称呼会更合适哦，再试试吧。"}}, {"option": "Hello Sir,", "feedback": {"type": "npc", "npcName": "Brainy", "content": "Sir是对男性的尊称，Rebecca是女性名字，这个称呼用错啦，再想想正确的开头吧。"}}], "answer": [0], "write": {"desc": "Dear Rebecca,", "trans": "亲爱的丽贝卡："}, "feedback": {"type": "npc", "npcName": "Brainy", "content": "你写的很好！"}}, {"question": {"type": "npc", "npcName": "Brainy", "content": "你需要先回应Rebecca的担心，同时说明你们留在Wander Port的原因，下列哪句话最适合放在邮件开头表达这个意思？"}, "optionList": [{"option": "I know you are worried. But this is our best chance to explore Wander Port.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "回答得非常好！你既回应了Rebecca的担忧，也清晰说明了留下的初步理由，逻辑很通顺。"}}, {"option": "Don't worry about us, we don't need your care.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句话语气太生硬无礼啦，会让担心你们的Rebecca更难过，不符合友好沟通的需求哦，再试一次。"}}, {"option": "We are not interested in exploring Wander Port.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这和你们要留下探索的决定完全相反啦，不符合你要传达的意思，再想想正确的表达吧。"}}], "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": "你写的很好！"}}, {"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动词is不匹配哦，语法上是错误的，再试一下吧。"}}, {"option": "projects", "feedback": {"type": "npc", "npcName": "Brainy", "content": "projects是复数形式，既和单数be动词is不搭配，也不符合这里指代单项探索任务的语境哦，再想想。"}}], "answer": [0], "write": {"desc": "The job is important for us.", "trans": "这项工作对我们很重要。"}, "feedback": {"type": "npc", "npcName": "Brainy", "content": "你写的很好！"}}, {"question": {"type": "npc", "npcName": "Brainy", "content": "你要向Rebecca解释这就是你们必须留下的原因，补全句子\"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": "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": "非常好！你准确地用将来时询问了Rebecca未来是否会来Wander Port，符合邮件的询问需求。"}}, {"option": "Did you come to Wander Port yesterday?", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句话是询问过去的动作，问的是Rebecca昨天有没有来，而你要问的是未来会不会来，时态和语义都不对哦，再试一次。"}}, {"option": "When do 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": "你写的很好！"}}, {"question": {"type": "npc", "npcName": "Brainy", "content": "你接着问如果Rebecca来的话，她什么时候会到，补全句子\"If so, _________ you arrive?\"，哪个选项正确？"}, "optionList": [{"option": "when will", "feedback": {"type": "npc", "npcName": "Brainy", "content": "太棒了！询问将来的时间要用一般将来时，结构是\"when will + 主语 + 动词原形\"，这个选项完全符合语法和语义要求。"}}, {"option": "when is", "feedback": {"type": "npc", "npcName": "Brainy", "content": "句子后面已经有实义动词arrive了，不能再用be动词is啦，语法结构错误哦，再试一下吧。"}}, {"option": "how is", "feedback": {"type": "npc", "npcName": "Brainy", "content": "how是询问方式的，你这里要问的是到达的时间，而且同样不能和实义动词arrive搭配使用哦，不符合要求，再想想。"}}], "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 important for us.\"\"That's why we have to stay.\"以及将来时询问对方行程的表达，成功完成了给Rebecca的邮件编写！"}}

intermediate_json:
  {"学习流程配置": "```\n# 问题1：\nBrainy: 你准备给Rebecca写邮件，首先需要填写合适的称呼，下列哪个是正确的邮件开头称呼？\n用户选项:\n（选项 A）Dear Rebecca, [正确]\n  Brainy: 太棒了！这是英文邮件写给熟人非常标准的开头称呼，完全符合场景需求。\n（选项 B）Hey Rebecca! What's up?\n  Brainy: 这个表达太口语化啦，更适合日常聊天，写给担心你们安全的Rebecca用正式一点的称呼会更合适哦，再试试吧。\n（选项 C）Hello Sir,\n  Brainy: Sir是对男性的尊称，Rebecca是女性名字，这个称呼用错啦，再想想正确的开头吧。\n\n# 问题2：\nBrainy: 你需要先回应Rebecca的担心，同时说明你们留在Wander Port的原因，下列哪句话最适合放在邮件开头表达这个意思？\n用户选项:\n（选项 A）I know you are worried. But this is our best chance to explore Wander Port. [正确]\n  Brainy: 回答得非常好！你既回应了Rebecca的担忧，也清晰说明了留下的初步理由，逻辑很通顺。\n（选项 B）Don't worry about us, we don't need your care.\n  Brainy: 这句话语气太生硬无礼啦，会让担心你们的Rebecca更难过，不符合友好沟通的需求哦，再试一次。\n（选项 C）We are not interested in exploring Wander Port.\n  Brainy: 这和你们要留下探索的决定完全相反啦，不符合你要传达的意思，再想想正确的表达吧。\n\n# 问题3：\nBrainy: 你想说明这项探索工作对你们很重要，需要补全句子\"The ____ is important for us.\"，下列哪个选项正确？\n用户选项:\n（选项 A）job [正确]\n  Brainy: 太棒了！be动词是is，说明主语是单数，job作为单数名词完全符合语法和语义要求。\n（选项 B）jobs\n  Brainy: jobs是复数形式，和后面的单数be动词is不匹配哦，语法上是错误的，再试一下吧。\n（选项 C）projects\n  Brainy: projects是复数形式，既和单数be动词is不搭配，也不符合这里指代单项探索任务的语境哦，再想想。\n\n# 问题4：\nBrainy: 你要向Rebecca解释这就是你们必须留下的原因，补全句子\"That's ____ we have to stay.\"，哪个选项正确？\n用户选项:\n（选项 A）why [正确]\n  Brainy: 太聪明啦！\"That's why...\"是固定表达，意思是“这就是……的原因”，正好契合你要解释留下原因的需求。\n（选项 B）how\n  Brainy: \"That's how...\"是用来说明方式的，意思是“这就是如何做……的”，不是用来解释原因的哦，不符合语境，再试试。\n（选项 C）which\n  Brainy: which是“哪一个”的意思，放在这个句子里语义不通顺哦，无法表达解释原因的作用，再想想正确的答案吧。\n\n# 问题5：\nBrainy: 你想要询问Rebecca未来会不会来Wander Port，下列哪句话表达最准确？\n用户选项:\n（选项 A）Will you come to Wander Port some day? [正确]\n  Brainy: 非常好！你准确地用将来时询问了Rebecca未来是否会来Wander Port，符合邮件的询问需求。\n（选项 B）Did you come to Wander Port yesterday?\n  Brainy: 这句话是询问过去的动作，问的是Rebecca昨天有没有来，而你要问的是未来会不会来，时态和语义都不对哦，再试一次。\n（选项 C）When do you come to Wander Port?\n  Brainy: 这句话是一般现在时，多用于询问常规的、习惯性的动作，不适合询问未来的计划哦，再想想正确的表达吧。\n\n# 问题6：\nBrainy: 你接着问如果Rebecca来的话，她什么时候会到，补全句子\"If so, _________ you arrive?\"，哪个选项正确？\n用户选项:\n（选项 A）when will [正确]\n  Brainy: 太棒了！询问将来的时间要用一般将来时，结构是\"when will + 主语 + 动词原形\"，这个选项完全符合语法和语义要求。\n（选项 B）when is\n  Brainy: 句子后面已经有实义动词arrive了，不能再用be动词is啦，语法结构错误哦，再试一下吧。\n（选项 C）how is\n  Brainy: how是询问方式的，你这里要问的是到达的时间，而且同样不能和实义动词arrive搭配使用哦，不符合要求，再想想。\n```", "互动描述": "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（亲爱的丽贝卡：我知道你很担心。但这是我们探索漫游港的最佳机会。这项工作对我们很重要。这就是我们必须留下来的原因。你哪天会来漫游港吗？如果会的话，你什么时候到呢？）"}

text_info_json:
  {"inputType": "write", "passCondition": "1. 用户写出：这份工作很重要。2. 用户写出：这就是我们为什么要留下。3. 用户写出：你什么时候将会到达？", "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）到达？"}]}

eval_info_json:
  {"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": ""}, {"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）到达？"}]}


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: mid
cType: mid_dialog_express
type_name: 对话表达
level: L1
unit_id: U14
knowledge_points_raw: spring
status: generated
bitable_token: IC2kbvgP0aLrj7sfzZicIozZn1e
db_table: middle_interaction_component
created_at: 2026-04-30 14:09:11
updated_at: 2026-04-30 14:09:11
raw_config:
  【任务标题】
  回答养蜂人的问题
  【资源配置】
  图片时机：
  互动内容
  互动反馈
  【情境引入】
  无
  【互动内容】
  回答养蜂人的问题。
  示例回答：
  User : Spring!
  辅助信息：春天会收获最多的蜂蜜哦~
  【互动反馈】
  正确 Sunny: You are so clever!
  错误 Beekeeper: Try again.
  【后置对话】
  无

final_config_json:
  {"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": []}

kp_info_json:
  {"pushType": "relationKp", "cType": "mid_dialog_express", "cId": "0000800", "kpInfo": [{"kpId": null, "kpType": "vocab", "kpTitle": "spring", "kpSkill": "vocab_meaning", "kpSkillName": "词义", "candidates": []}]}


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: mid
cType: mid_dialog_choose
type_name: 对话选择
level: L1
unit_id: U14
knowledge_points_raw: home
status: generated
bitable_token: MsETbgiUAaG8h4sct0ycTOzGnfb
db_table: middle_interaction_component
created_at: 2026-04-30 14:09:17
updated_at: 2026-04-30 14:09:17
raw_config:
  【任务标题】
  房屋主人是谁
  【资源配置】
  图片时机：
  互动内容
  互动反馈
  【情境引入】
  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.
  【后置对话】
  无

final_config_json:
  {"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": []}

kp_info_json:
  {"pushType": "relationKp", "cType": "mid_dialog_choose", "cId": "0000800", "kpInfo": [{"kpId": null, "kpType": "vocab", "kpTitle": "home", "kpSkill": "vocab_meaning", "kpSkillName": "词义", "candidates": []}]}


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: mid
cType: mid_dialog_select
type_name: 对话选读
level: L1
unit_id: U14
knowledge_points_raw: healthy(词义)
status: generated
bitable_token: GsNEbjVVYarWqpsNanTcf8UnnPf
db_table: middle_interaction_component
created_at: 2026-04-30 14:09:22
updated_at: 2026-04-30 14:09:22
raw_config:
  【任务标题】
  评价随地睡觉的习惯
  【资源配置】
  无
  【情境引入】
  空
  【互动内容】
  要求：选择一个你想表达的观点
  选项：
  选项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!

final_config_json:
  {"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!"}]}

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


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: mid
cType: mid_message_trace
type_name: 信息描写
level: L1
unit_id: U14
knowledge_points_raw: Grape (词形 - 拼写规律)
raw_config:
  【任务标题】
  购买葡萄
  【互动内容】
  任务：请描写你需要的水果
  答案：grape

status: generated
bitable_token: Nd8cb0tnKankIHsVgw1caL1Xn3f
db_table: middle_interaction_component
created_at: 2026-04-30 14:09:28
updated_at: 2026-04-30 14:09:28
final_config_json:
  {"cType": "mid_message_trace", "cId": "0000800", "title": "购买葡萄", "resourceMapping": {"Vicky": 658}, "cDesc": "You bought the grapes you needed. (你购买了需要的葡萄。)", "question": {"desc": "请描写你需要的水果"}, "trace": "grape", "img": "0000800.png", "inputSet": []}

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


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: mid
cType: mid_message_spell
type_name: 信息拼词
level: L1
unit_id: U14
knowledge_points_raw: Grape (词形 - 拼写规律)
status: generated
bitable_token: X0sPb1KERarvocs4rb3cK35AnFg
db_table: middle_interaction_component
created_at: 2026-04-30 14:09:37
updated_at: 2026-04-30 14:09:37
raw_config:
  【任务标题】
  购买葡萄
  【互动内容】
  任务描述：请填入“葡萄”的正确的英文拼写
  题干：G（2）pe
  答案：ra
  选项：h, a, r, l, e, w
  辅助信息：葡萄的英文是 grape / 第二个字母是 r 哦，再想想最后一个空应该填什么吧

final_config_json:
  {"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": []}

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


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: core
cType: core_speaking_image
type_name: 看图说话
level: L1
unit_id: U14
knowledge_points_raw:
  winter
  cold
  snow

image_info_json: {"questionImg": "0000800_question.png"}
status: generated
bitable_token: KBOXwzVHfin6ORkKbA3c3eWEnoh
db_table: core_interaction_component
created_at: 2026-04-30 14:09:38
updated_at: 2026-04-30 14:09:38
raw_config:
  【任务标题】
  和 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.

final_config_json:
  {"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."}

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

task_info_json:
[cell repeats an earlier one in this file: 576 characters]

study_info_json:
  {"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的所有关于冬季的问题，完成了本次的聊天任务，很快就能吃到热热的食物咯！"}}

intermediate_json:
  {"学习流程配置": "```\n# 中间回合1\nRock：What season is it?\nBrainy：Rock 询问现在是什么季节，你需要回答他当前所处的季节。\n用户选项:\n（选项 A）Winter. [正确]\n  Brainy：太棒了！你正确回答了现在是冬季。请大声朗读这句话！\n（选项 B）Cold.\n  Brainy：这句话的意思是“寒冷的”，是用来描述天气感受的，而Rock现在问的是现在是什么季节，和问题不匹配。请再仔细听清问题，告诉Rock现在的季节。\n（选项 C）Snow.\n  Brainy：这句话的意思是“雪”，是冬天会出现的事物，而Rock现在问的是现在是什么季节，和问题不匹配。请再仔细听清问题，告诉Rock现在的季节。\n\n# 中间回合2\nRock：Is it hot or cold?\nBrainy：Rock 询问现在天气是热还是冷，你需要回答他冬季的天气感受。\n用户选项:\n（选项 A）Winter.\n  Brainy：这句话的意思是“冬季”，是用来回答季节相关问题的，而Rock现在问的是天气是热还是冷，和问题不匹配。请再仔细听清问题，告诉Rock冬天的天气感受。\n（选项 B）Cold. [正确]\n  Brainy：太棒了！你正确回答了冬天天气很冷。请大声朗读这句话！\n（选项 C）Snow.\n  Brainy：这句话的意思是“雪”，是冬天会出现的事物，而Rock现在问的是天气是热还是冷，和问题不匹配。请再仔细听清问题，告诉Rock冬天的天气感受。\n\n# 中间回合3\nRock：What do you see in winter?\nBrainy：Rock 询问你在冬天能看到什么，你需要回答冬季特有的事物。\n用户选项:\n（选项 A）Winter.\n  Brainy：这句话的意思是“冬季”，是用来回答季节相关问题的，而Rock现在问的是冬天能看到什么事物，和问题不匹配。请再仔细听清问题，告诉Rock你在冬天能看到的东西。\n（选项 B）Cold.\n  Brainy：这句话的意思是“寒冷的”，是用来描述天气感受的，而Rock现在问的是冬天能看到什么事物，和问题不匹配。请再仔细听清问题，告诉Rock你在冬天能看到的东西。\n（选项 C）Snow. [正确]\n  Brainy：太棒了！你正确回答了冬天能看到雪。请大声朗读这句话！\n\n# 结尾回合\nBrainy：你已经顺利回答了Rock的所有问题，聊天任务完成啦，很快就能吃到热热的食物咯！\n```", "语音识别热词": "winter,cold,snow,season,hot"}

dialog_config_json:
  {"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."}]}}}

option_list_json:
  [{"option": "0000800_option_00.png"}, {"option": "0000800_option_01.png"}, {"option": "0000800_option_02.png"}]

question_list_json:
  [{"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."}]


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: mid
cType: mid_message_combine
type_name: 信息组句
level: L1
unit_id: U14
knowledge_points_raw: Grape (词形 - 拼写规律)
status: generated
bitable_token: TXYobOAuaakk6KslHp9caUB7nXa
db_table: middle_interaction_component
created_at: 2026-04-30 14:09:47
updated_at: 2026-04-30 14:09:47
raw_config:
  【任务标题】填写信息表【互动内容】任务描述：请在空白处填入正确的单词，组成句子选项1：is选项2：the visitor选项3：you invited选项4：Maeve答案：Is Maeve the visitor you invited?辅助信息：可以用 is 引导的一般疑问句询问；you invited 是 visitor 的后置定语

final_config_json:
  {"cType": "mid_message_combine", "cId": "0000800", "title": "填写信息表", "resourceMapping": {"Vicky": 658}, "cDesc": "You filled in the blanks to make 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": []}

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


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: mid
cType: mid_message_fillin
type_name: 信息补词
level: L1
unit_id: U14
knowledge_points_raw: Grape (词形 - 拼写规律)
raw_config:
  【任务标题】
  填写信息表
  【互动内容】
  任务描述：请在空白处填入正确的字母，组成完整单词
  题干：K(3)ledge
  答案：now
  辅助信息：需要填入的单词的中文释义是“知识”

status: generated
bitable_token: FxwMb8MJmarcRsso2tQcV8thn5g
db_table: middle_interaction_component
created_at: 2026-04-30 14:09:55
updated_at: 2026-04-30 14:09:55
final_config_json:
  {"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": []}

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


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: mid
cType: mid_message_word
type_name: 信息填词
level: L1
unit_id: U14
knowledge_points_raw: Grape (词形 - 拼写规律)
raw_config:
  【任务标题】
  填写信息表
  【互动内容】
  任务描述：请在空白处填入合适的单词，使句意完整
  答案：knowledge, information
  辅助信息：需要填入的单词的中文释义是“知识”

status: generated
bitable_token: ElRebtQe3aeCyOsRjg6cEniznwg
db_table: middle_interaction_component
created_at: 2026-04-30 14:10:02
updated_at: 2026-04-30 14:10:02
final_config_json:
  {"cType": "mid_message_word", "cId": "0000800", "title": "填写信息表", "resourceMapping": {"Vicky": 658}, "cDesc": "You filled in \"knowledge\" and \"information\" in the form. (你在信息表中填入了“知识”对应的单词。)", "question": {"desc": "请在空白处填入合适的单词，使句意完整"}, "tip": "需要填入的单词的中文释义是“知识”", "answer": ["knowledge", "information"], "img": "0000800.png", "inputSet": []}

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


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: mid
cType: mid_message_sentence
type_name: 信息填句
level: L1
unit_id: U14
knowledge_points_raw: Grape (词形 - 拼写规律)
status: generated
bitable_token: CNFgbIIszaPWXfsekt7cCZjHnVh
db_table: middle_interaction_component
created_at: 2026-04-30 14:10:11
updated_at: 2026-04-30 14:10:11
raw_config:
  【任务标题】
  填写信息表

  【互动内容】
  任务描述：请填入正确的内容，使句意完整
  推荐答案：The main purpose of this tour is to learn knowledge about local traditional crafts.
  辅助信息：你可以使用 The main purpose of this tour is...

final_config_json:
  {"cType": "mid_message_sentence", "cId": "0000800", "title": "填写信息表", "resourceMapping": {"Vicky": 658}, "cDesc": "You completed the information form with the correct sentence. (你填好了信息表。)", "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": []}

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


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: mid
cType: mid_image_choose
type_name: 图片单选
level: L1
unit_id: U14
knowledge_points_raw: warm
status: generated
bitable_token: XyIVbYciraBkoasJtV1c3N5Gnhh
db_table: middle_interaction_component
created_at: 2026-04-30 14:10:21
updated_at: 2026-04-30 14:10:21
raw_config:
  【任务标题】
  选择合适的河段取水

  【情境引入】
  User: Look!

  【互动内容】
  Find $warm$ water. （音频）
  选项：
  00
  01
  02
  答案：
  02
  辅助信息：warm 指“温暖的”。

  【互动反馈】
  正确 User：Warm water here!
  错误 User：It doesn't seem like there's warm water. 

  【后置对话】
  无

final_config_json:
  {"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. (你找到了温暖的水域。)"}

kp_info_json:
  {"pushType": "relationKp", "cType": "mid_image_choose", "cId": "0000800", "kpInfo": [{"kpId": "0220004", "kpType": "vocab", "kpTitle": "warm", "kpSkill": "vocab_meaning", "kpSkillName": "词义", "candidates": [{"kp_id": "0220004", "type": "vocab", "title": "warm", "vala_level": "L2", "en_desc": "having a comfortable and pleasant temperature that is not too cold"}]}]}


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: mid
cType: mid_image_multiple
type_name: 图片多选
level: L1
unit_id: U14
knowledge_points_raw: house
status: generated
bitable_token: XZo5bwagdau3VvsTDL9cJPrInQd
db_table: middle_interaction_component
created_at: 2026-04-30 14:10:31
updated_at: 2026-04-30 14:10:31
raw_config:
  【任务标题】
  选出需要修复的部分

  【情境引入】
  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.

  【后置对话】
  无

final_config_json:
  {"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 damaged parts of the house. (你找到了房子需要修复的部分。)"}

kp_info_json:
  {"pushType": "relationKp", "cType": "mid_image_multiple", "cId": "0000800", "kpInfo": [{"kpId": null, "kpType": "vocab", "kpTitle": "house", "kpSkill": "vocab_meaning", "kpSkillName": "词义", "candidates": []}]}


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: core
cType: core_listening_order
type_name: 合作听力
level: L1
unit_id: U14
knowledge_points_raw:
  bake（词义）
  healthy（词义）
  money（词义）
  cake（词义）
  alcohol（词义）

flow_info_json: {"sequence": [{"audio": [0]}, {"question": [0]}, {"audio": [1]}, {"question": [1, 2, 3]}]}
status: generated
bitable_token: FrxtwNRQDizqiikPkATcBzTCnYe
db_table: core_interaction_component
created_at: 2026-04-30 14:10:33
updated_at: 2026-04-30 14:10:33
raw_config:
  【任务标题】
  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】

final_config_json:
  {"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}}

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

task_info_json:
  {"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}}

material_info_json:
  {"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": "无"}]}

study_info_json:
  {"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"}}]}]}

intermediate_json:
  {"学习过程配置": "```\n# 重点句子 1\n音频文本：When you really want sweet food, like biscuits or cake, you can bake at home.\n讲解文本：刚刚听到的音频中，包含了一个关键短语 bake at home，意思是在家烘焙。正确的发音是 /beɪk æt həʊm/。\n1. 听音选句\nBrainy：仔细听音频，选出你听到的句子哦。\n- When you really want sweet food, like biscuits or cake, you can bake at home. [正确]\n  Brainy：太棒啦！你准确捕捉到了句子里的重点短语 bake at home，听力超棒的！\n- When you really want sweet food, like biscuits or cake, you can buy at the shop.\n  Brainy：哎呀，这句话说的是 buy at the shop，不是我们听到的 bake at home 哦，再仔细听听音频吧~\n2. 听音选意\nBrainy：现在我们来看看这句话的中文意思是什么，选选看吧！\n- 当你非常想吃甜食，比如饼干或者蛋糕时，你可以在家烘焙。[正确]\n  Brainy：完全正确！你不仅听懂了整句话的意思，还掌握了 bake at home 这个实用短语，太厉害啦！\n- 当你非常想吃甜食，比如饼干或者蛋糕时，你可以去商店买。\n  Brainy：这句话的重点动作是在家烘焙，不是去商店购买哦，再仔细回忆一下句子内容试试看~\n---\n# 完成反馈\nBrainy：很好！你已经回答完了全部问题，相信你已经听懂了这个任务中所有的重点句子。现在让我们来查看结果吧!\n```", "互动描述": "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. (你听了《如何健康生活》的音频，了解到我们应该按时作息，远离烟酒，对于健康而言好习惯比金钱更重要。)\nIn 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. (在鲨鱼和医生的对话中，你得知我们可以用健康食材在家烘焙甜点，健康生活从来都不依赖金钱或者昂贵的物品。)"}


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: mid
cType: mid_image_sequence
type_name: 图片有序
level: L1
unit_id: U14
knowledge_points_raw: ... one by one.
status: generated
bitable_token: BZWebQROpagkJ0sxArGcsBjwnCU
db_table: middle_interaction_component
created_at: 2026-04-30 14:10:41
updated_at: 2026-04-30 14:10:41
raw_config:
  【任务标题】排序跳格子顺序
  【情境引入】
  无

  【互动内容】
   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.

  【后置对话】
  无

final_config_json:
  {"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. (你把跳格子的顺序一个接一个排好了。)"}

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


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: mid
cType: mid_image_drag
type_name: 图片拖拽
level: L1
unit_id: U14
knowledge_points_raw: hammer （词义）
status: generated
bitable_token: Qqq9bVv19aH6LisRrsVcvf6xnqe
db_table: middle_interaction_component
created_at: 2026-04-30 14:10:51
updated_at: 2026-04-30 14:10:51
raw_config:
  【任务标题】
  选出正确的物品

  【情境引入】
  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!

final_config_json:
  {"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. (你按顺序找出了鱼、螃蟹和章鱼。)"}

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


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: core
cType: core_listening_choose
type_name: 听力选择
level: L1
unit_id: U14
knowledge_points_raw: summerhotshortstrousersCould you...It feels...
question_group_json: "无"
status: generated
bitable_token: Kwrcw6A4jip2sxkdLn4czd1knvf
db_table: core_interaction_component
created_at: 2026-04-30 14:11:19
updated_at: 2026-04-30 14:11:19
raw_config:
  【任务标题】
  请求路边钓鱼的叔叔帮忙
  【任务背景】
  心心念念的短裤原来卡在石头间了，快抓紧时间请钓鱼叔叔帮忙钓上来吧！
  【通关知识】
  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...】

final_config_json:
  {"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": "请提供具体的题目材料内容哦，缺少材料的话无法按照要求生成对应的叙事描述~"}

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

task_info_json:
  {"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": "请提供具体的题目材料内容哦，缺少材料的话无法按照要求生成对应的叙事描述~"}

study_info_json:
  {"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"}}

intermediate_json:
  {"学习过程配置": "```\n# 重点句子 1\n音频文本：This summer!\n讲解文本：刚刚听到的音频中，包含了关键短语 summer，意思是夏天，是用来描述季节的常用单词哦。\n1. 听音选句\nBrainy：仔细听音频，哪一个选项和你听到的内容一致呢？\n- This winter!\n  - Brainy：不对哦，这句话里的单词是winter（冬天），不是我们听到的夏天哦，再试试吧~\n- This summer! [正确]\n  - Brainy：太厉害啦！你精准听出了句子里的重点单词summer！\n\n2. 听音选意\nBrainy：这句话的中文意思是“这个冬天！”，对吗？\n- 对 / Yes\n  - Brainy：summer是夏天的意思哦，再想想这句话的正确意思吧~\n- 错 / No [正确]\n  - Brainy：完全正确！你已经掌握了summer这个单词的意思啦，这句话的正确意思是“这个夏天！”哦。\n---\n# 完成反馈\nBrainy：很好！你已经回答完了全部问题，相信你已经听懂了这个任务中所有的重点句子。现在让我们来查看结果吧!\n```", "互动描述": "请提供具体的题目材料内容哦，缺少材料的话无法按照要求生成对应的叙事描述~"}


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: core
cType: core_writing_questionWrite
type_name: 邮件撰写
level: L1
unit_id: U14
knowledge_points_raw: That's why we have to...（结构）The job is...（结构）When will you arrive? （语义）
status: generated
bitable_token: Brn0wldKYizsLZkBqK6clp1tnKd
db_table: core_interaction_component
created_at: 2026-04-30 14:14:08
updated_at: 2026-04-30 14:14:08
raw_config:
  【任务名称】 编写给 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
  【通过规则】用户写出：这份工作很重要。这就是我们为什么要留下。你什么时候将会到达？

final_config_json:
  {"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?（亲爱的丽贝卡，我知道你很担心。但这是我们探索漫游港的最佳机会。这份工作对我们来说很重要。这就是我们必须留下来的原因。你某天会来漫游港吗？如果会的话，你什么时候会到？）"}

kp_info_json:
  {"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": "语义", "candidates": []}]}

task_info_json:
  {"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?（亲爱的丽贝卡，我知道你很担心。但这是我们探索漫游港的最佳机会。这份工作对我们来说很重要。这就是我们必须留下来的原因。你某天会来漫游港吗？如果会的话，你什么时候会到？）"}

study_info_json:
  {"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的邮件编写！"}}

intermediate_json:
  {"学习流程配置": "```\n# 问题1：\nBrainy: 你准备给Rebecca写邮件，首先需要选择合适的邮件开头称呼，你会怎么写？\n用户选项:\n（选项 A）Dear Rebecca, [正确]\n  Brainy: 非常好！这是英文邮件给熟人开头的标准正确称呼，很合适。\n（选项 B）Hey Rebecca! What's up?\n  Brainy: 这个表达太口语化啦，更适合日常闲聊消息，正式邮件开头一般不会这么写哦，再试试吧。\n（选项 C）Dear Ms. Rebecca,\n  Brainy: 这个表达略显生硬，Rebecca是你的熟人，不需要用Ms.这么正式的尊称，直接用名字就可以啦。\n\n# 问题2：\nBrainy: 开头写完后，你首先要回应Rebecca的担心，同时说明你们留下的理由，你会怎么表述这部分内容？\n用户选项:\n（选项 A）I know you are worried. But this is our best chance to explore Wander Port. [正确]\n  Brainy: 太棒了！这句话既回应了她的担心，也清晰说明了你们想要留下探索的原因，逻辑非常通顺。\n（选项 B）I know you are worried. But we don't care about the danger.\n  Brainy: 这句话语气太生硬啦，会让Rebecca更担心你们的，没有体现出你们留下的合理原因哦，再试试吧。\n（选项 C）I know you are worried. We will come back right now.\n  Brainy: 这句话意思是你们现在就要回来，和你们要继续留在Wander Port的决定完全相反哦，再想想吧。\n\n# 问题3：\nBrainy: 你想进一步说明，这份探索工作对你们很重要，需要选合适的词填空：The ____ is important for us.\n用户选项:\n（选项 A）job [正确]\n  Brainy: 答对啦！这里be动词是is，说明主语是单数，job作为单数名词符合句子语法和语义要求，完美。\n（选项 B）jobs\n  Brainy: 不对哦，jobs是复数形式，后面的be动词应该用are才对，和句子里的is不匹配哦，再试一下。\n（选项 C）projects\n  Brainy: 不对哦，projects是复数形式，后面的be动词应该用are才对，和句子里的is不匹配哦，再想想。\n\n# 问题4：\nBrainy: 接下来你要说明这就是你们必须留下的原因，需要选合适的词填空：That's ____ we have to stay.\n用户选项:\n（选项 A）why [正确]\n  Brainy: 太厉害啦！\"That's why...\"是固定表达，意思是“这就是……的原因”，正好符合这里要解释留下原因的语境。\n（选项 B）how\n  Brainy: 不对哦，\"That's how...\"是用来说明方式的，意思是“这就是如何做……的”，不符合这里解释原因的语境哦。\n（选项 C）which\n  Brainy: 不对哦，which的意思是“哪一个”，放在这里句子逻辑不通顺，无法表达解释原因的含义，再试一下吧。\n\n# 问题5：\nBrainy: 说完你们的决定后，你想询问Rebecca未来会不会来Wander Port，你会怎么问？\n用户选项:\n（选项 A）Will you come to Wander Port some day? [正确]\n  Brainy: 非常棒！这句话准确礼貌地询问了对方未来是否会来Wander Port，符合邮件的语境。\n（选项 B）Can you come to Wander Port right now?\n  Brainy: 这句话是询问对方能不能马上来，语气太急切了，你只是想问她未来会不会来，不是要求她立刻过来哦。\n（选项 C）When will you come to Wander Port?\n  Brainy: 这句话是直接问对方什么时候来，前提是已经确定对方会来，但你现在还不知道她会不会来，所以不合适哦。\n\n# 问题6：\nBrainy: 你接着说如果她会来的话，想询问她到达的时间，需要选合适的内容填空：If so, _________ you arrive?\n用户选项:\n（选项 A）when will [正确]\n  Brainy: 答对啦！询问时间用特殊疑问词when，一般将来时的疑问句结构是“will+主语+动词原形”，所以when will完全符合语法和语义要求。\n（选项 B）when is\n  Brainy: 不对哦，句子后面已经有实义动词arrive了，不能再用be动词is啦，实义动词的疑问句需要借助助动词will哦。\n（选项 C）how is\n  Brainy: 不对哦，how是用来询问方式的，你这里想问的是到达的时间，而且后面有实义动词arrive，也不能用be动词is，再想想吧。\n```", "互动描述": "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?（亲爱的丽贝卡，我知道你很担心。但这是我们探索漫游港的最佳机会。这份工作对我们来说很重要。这就是我们必须留下来的原因。你某天会来漫游港吗？如果会的话，你什么时候会到？）"}

text_info_json:
  {"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）到达？"}]}

eval_info_json:
  {"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）到达？"}]}


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: mid
cType: mid_message_trace
type_name: 信息描写
level: L1
unit_id: U14
knowledge_points_raw: Grape (词形 - 拼写规律)
raw_config:
  【任务标题】
  购买葡萄
  【互动内容】
  任务：请描写你需要的水果
  答案：grape

status: generated
bitable_token: Nd8cb0tnKankIHsVgw1caL1Xn3f
db_table: middle_interaction_component
created_at: 2026-04-30 14:14:35
updated_at: 2026-04-30 14:14:35
final_config_json:
  {"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": []}

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


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: mid
cType: mid_message_spell
type_name: 信息拼词
level: L1
unit_id: U14
knowledge_points_raw: Grape (词形 - 拼写规律)
status: generated
bitable_token: X0sPb1KERarvocs4rb3cK35AnFg
db_table: middle_interaction_component
created_at: 2026-04-30 14:14:45
updated_at: 2026-04-30 14:14:45
raw_config:
  【任务标题】
  购买葡萄
  【互动内容】
  任务描述：请填入“葡萄”的正确的英文拼写
  题干：G（2）pe
  答案：ra
  选项：h, a, r, l, e, w
  辅助信息：葡萄的英文是 grape / 第二个字母是 r 哦，再想想最后一个空应该填什么吧

final_config_json:
  {"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": []}

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


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: mid
cType: mid_message_combine
type_name: 信息组句
level: L1
unit_id: U14
knowledge_points_raw: Grape (词形 - 拼写规律)
status: generated
bitable_token: TXYobOAuaakk6KslHp9caUB7nXa
db_table: middle_interaction_component
created_at: 2026-04-30 14:14:53
updated_at: 2026-04-30 14:14:53
raw_config:
  【任务标题】填写信息表【互动内容】任务描述：请在空白处填入正确的单词，组成句子选项1：is选项2：the visitor选项3：you invited选项4：Maeve答案：Is Maeve the visitor you invited?辅助信息：可以用 is 引导的一般疑问句询问；you invited 是 visitor 的后置定语

final_config_json:
  {"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": []}

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


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: mid
cType: mid_message_fillin
type_name: 信息补词
level: L1
unit_id: U14
knowledge_points_raw: Grape (词形 - 拼写规律)
raw_config:
  【任务标题】
  填写信息表
  【互动内容】
  任务描述：请在空白处填入正确的字母，组成完整单词
  题干：K(3)ledge
  答案：now
  辅助信息：需要填入的单词的中文释义是“知识”

status: generated
bitable_token: FxwMb8MJmarcRsso2tQcV8thn5g
db_table: middle_interaction_component
created_at: 2026-04-30 14:15:01
updated_at: 2026-04-30 14:15:01
final_config_json:
  {"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": []}

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


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: mid
cType: mid_message_word
type_name: 信息填词
level: L1
unit_id: U14
knowledge_points_raw: Grape (词形 - 拼写规律)
raw_config:
  【任务标题】
  填写信息表
  【互动内容】
  任务描述：请在空白处填入合适的单词，使句意完整
  答案：knowledge, information
  辅助信息：需要填入的单词的中文释义是“知识”

status: generated
bitable_token: ElRebtQe3aeCyOsRjg6cEniznwg
db_table: middle_interaction_component
created_at: 2026-04-30 14:15:08
updated_at: 2026-04-30 14:15:08
final_config_json:
  {"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": []}

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


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: mid
cType: mid_message_sentence
type_name: 信息填句
level: L1
unit_id: U14
knowledge_points_raw: Grape (词形 - 拼写规律)
status: generated
bitable_token: CNFgbIIszaPWXfsekt7cCZjHnVh
db_table: middle_interaction_component
created_at: 2026-04-30 14:15:14
updated_at: 2026-04-30 14:15:14
raw_config:
  【任务标题】
  填写信息表

  【互动内容】
  任务描述：请填入正确的内容，使句意完整
  推荐答案：The main purpose of this tour is to learn knowledge about local traditional crafts.
  辅助信息：你可以使用 The main purpose of this tour is...

final_config_json:
  {"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": []}

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


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: mid
cType: mid_image_choose
type_name: 图片单选
level: L1
unit_id: U14
knowledge_points_raw: warm
status: generated
bitable_token: XyIVbYciraBkoasJtV1c3N5Gnhh
db_table: middle_interaction_component
created_at: 2026-04-30 14:15:23
updated_at: 2026-04-30 14:15:23
raw_config:
  【任务标题】
  选择合适的河段取水

  【情境引入】
  User: Look!

  【互动内容】
  Find $warm$ water. （音频）
  选项：
  00
  01
  02
  答案：
  02
  辅助信息：warm 指“温暖的”。

  【互动反馈】
  正确 User：Warm water here!
  错误 User：It doesn't seem like there's warm water. 

  【后置对话】
  无

final_config_json:
  {"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. (你找到了温暖的水域。)"}

kp_info_json:
  {"pushType": "relationKp", "cType": "mid_image_choose", "cId": "0000800", "kpInfo": [{"kpId": "0220004", "kpType": "vocab", "kpTitle": "warm", "kpSkill": "vocab_meaning", "kpSkillName": "词义", "candidates": [{"kp_id": "0220004", "type": "vocab", "title": "warm", "vala_level": "L2", "en_desc": "having a comfortable and pleasant temperature that is not too cold"}]}]}


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: core
cType: core_reading_order
type_name: 合作阅读
level: L1
unit_id: U14
knowledge_points_raw:
  club
  join
  member
  choose
  interested

status: generated
bitable_token: H6DJweNkpigCbak2Y5LcTZ8Vnfb
db_table: core_interaction_component
created_at: 2026-04-30 14:15:25
updated_at: 2026-04-30 14:15:25
raw_config:
  【任务标题】
  阅读 《在 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.

final_config_json:
  {"cType": "core_reading_order", "cId": "0000800", "title": "阅读Brainy的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": {"Eva": 738, "Peter": 739}}

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

task_info_json:
  {"cType": "core_reading_order", "cId": "0000800", "title": "阅读Brainy的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": {"Eva": 738, "Peter": 739}}

material_info_json:
  {"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": ""}]}

flow_info_json:
  {"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]}]}

study_info_json:
  {"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": [0], "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": "回答正确！你抓住了段落里的两个关键信息，太厉害啦！", "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 的意思是俱乐部，兴趣相同的人可以一起加入俱乐部参加活动哦。", "npcName": "Brainy", "learning": [{"answer": [1], "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": [0], "meaning": "段落大意题", "optionList": [{"feedback": {"type": "npc", "content": "答得太好了！你完全理解了段落想表达的核心内容~", "npcName": "Brainy"}, "option": "你可以根据自己的兴趣选择对应的俱乐部加入。"}, {"feedback": {"type": "npc", "content": "不对哦，这段讲的是加入俱乐部，不是创建俱乐部，再仔细看看段落内容吧。", "npcName": "Brainy"}, "option": "所有的俱乐部都需要你有对应的兴趣才能创建。"}], "question": {"type": "npc", "npcName": "Brainy", "content": "了解了关键单词和句子，我们来看看这一段主要讲了什么吧？"}}]}]}

intermediate_json:
  {"阅读材料格式化": "```\n# 材料2\n类型：电子屏\n标题：How to Join Clubs? \n正文:\n<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]\n```", "学习材料格式化": "```\n# 段落1\n重点词汇: \n正文:\n---\nAt Vala Academy, Pioneers don't have exams. But you need points to level up!\n---\n```\n```\n# 段落2\n重点词汇: \n正文:\n---\nYou can choose your favourite club to join. If you are interested in something, you can find a club for it.\n---\n```", "学习过程配置": "```\n# 段落1\n## 段落内容\n---\nAt Vala Academy, Pioneers don't have exams. But you need points to level up!\n---\n## 互动题目\nBrainy：我们来认识一下这段话中的关键单词 points。points 在这里指的是积分、分数，积累足够的积分才能升级哦。\n1. 句意选择题\nBrainy：接下来，我们来看下包含 points 的句子 But you need points to level up! 是什么意思呢？\n- 但是你需要积分来升级。[正确]\n  Brainy：太棒啦！你准确理解了points的意思和这句话的含义~\n- 但是你需要礼物来升级。\n  Brainy：不对哦，points在这里是积分的意思，不是礼物，再仔细看看释义吧。\n2. 段落大意题\nBrainy：了解了关键单词和句子，我们来看看这一段主要讲了什么吧？\n- 瓦拉学院的先锋们不需要考试，但是需要攒积分来升级。[正确]\n  Brainy：回答正确！你抓住了段落里的两个关键信息，太厉害啦！\n- 瓦拉学院的先锋们需要通过考试来获得积分升级。\n  Brainy：不对哦，段落里明确说了先锋们没有考试，再重新读一遍段落找找正确信息吧。\n\n# 段落2\n## 段落内容\n---\nYou can choose your favourite club to join. If you are interested in something, you can find a club for it.\n---\n## 互动题目\nBrainy：我们来认识一下这段话中的关键单词 club。club 的意思是俱乐部，兴趣相同的人可以一起加入俱乐部参加活动哦。\n1. 句意选择题\nBrainy：接下来，我们来看下包含 club 的句子 You can choose your favourite club to join. 是什么意思呢？\n- 你可以选择你最喜欢的课程去学习。\n  Brainy：不对哦，club是俱乐部的意思，不是课程，再确认一下单词释义吧。\n- 你可以选择你最喜欢的俱乐部加入。[正确]\n  Brainy：完美回答！你已经掌握了club的意思和这个句子的含义啦~\n\n2. 段落大意题\nBrainy：了解了关键单词和句子，我们来看看这一段主要讲了什么吧？\n- 你可以根据自己的兴趣选择对应的俱乐部加入。[正确]\n  Brainy：答得太好了！你完全理解了段落想表达的核心内容~\n- 所有的俱乐部都需要你有对应的兴趣才能创建。\n  Brainy：不对哦，这段讲的是加入俱乐部，不是创建俱乐部，再仔细看看段落内容吧。\n\n# 完结反馈\nBrainy：太棒啦！你已经完成了这部分内容的全部学习，给你点个大大的赞！\n```"}


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: mid
cType: mid_image_multiple
type_name: 图片多选
level: L1
unit_id: U14
knowledge_points_raw: house
status: generated
bitable_token: XZo5bwagdau3VvsTDL9cJPrInQd
db_table: middle_interaction_component
created_at: 2026-04-30 14:15:32
updated_at: 2026-04-30 14:15:32
raw_config:
  【任务标题】
  选出需要修复的部分

  【情境引入】
  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.

  【后置对话】
  无

final_config_json:
  {"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. (你找到了房子需要修复的部分。)"}

kp_info_json:
  {"pushType": "relationKp", "cType": "mid_image_multiple", "cId": "0000800", "kpInfo": [{"kpId": null, "kpType": "vocab", "kpTitle": "house", "kpSkill": "vocab_meaning", "kpSkillName": "词义", "candidates": []}]}


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: mid
cType: mid_image_sequence
type_name: 图片有序
level: L1
unit_id: U14
knowledge_points_raw: ... one by one.
status: generated
bitable_token: BZWebQROpagkJ0sxArGcsBjwnCU
db_table: middle_interaction_component
created_at: 2026-04-30 14:15:42
updated_at: 2026-04-30 14:15:42
raw_config:
  【任务标题】排序跳格子顺序
  【情境引入】
  无

  【互动内容】
   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.

  【后置对话】
  无

final_config_json:
  {"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. (你一个接一个排好了跳格子的顺序。)"}

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


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: mid
cType: mid_image_drag
type_name: 图片拖拽
level: L1
unit_id: U14
knowledge_points_raw: hammer （词义）
status: generated
bitable_token: Qqq9bVv19aH6LisRrsVcvf6xnqe
db_table: middle_interaction_component
created_at: 2026-04-30 14:15:50
updated_at: 2026-04-30 14:15:50
raw_config:
  【任务标题】
  选出正确的物品

  【情境引入】
  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!

final_config_json:
  {"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. (你按顺序选出了鱼、螃蟹和章鱼。)"}

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


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: core
cType: core_reading_order
type_name: 合作阅读
level: L1
unit_id: U14
knowledge_points_raw:
  club
  join
  member
  choose
  interested

status: generated
bitable_token: H6DJweNkpigCbak2Y5LcTZ8Vnfb
db_table: core_interaction_component
created_at: 2026-04-30 14:16:12
updated_at: 2026-04-30 14:16:12
raw_config:
[cell repeats an earlier one in this file: 2351 characters]

final_config_json:
[cell repeats an earlier one in this file: 626 characters]

kp_info_json:
[cell repeats an earlier one in this file: 865 characters]

task_info_json:
[cell repeats an earlier one in this file: 626 characters]

material_info_json:
[cell repeats an earlier one in this file: 2699 characters]

flow_info_json:
[cell repeats an earlier one in this file: 232 characters]

study_info_json:
  {"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 的意思是积分、分数，攒够积分升级就可以说 get enough points to level up。", "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": "太棒了！你抓住了 don't have exams 和 need points to level up 这两个重点！", "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 是俱乐部的意思，加入俱乐部可以说 join a club。", "npcName": "Brainy", "learning": [{"answer": [1], "meaning": "句意选择题", "optionList": [{"feedback": {"type": "npc", "content": "课程的英文表达是 course 哦，并不是我们讲的 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": [0], "meaning": "段落大意题", "optionList": [{"feedback": {"type": "npc", "content": "答得好！选择偏好和兴趣匹配的规则你都记住啦！", "npcName": "Brainy"}, "option": "你可以根据自己的兴趣选择对应的俱乐部加入。"}, {"feedback": {"type": "npc", "content": "小心看哦～文中说只要你对某件事感兴趣就能找到对应的俱乐部，没有提到固定加入条件的限制，再仔细看看正确的释义吧！", "npcName": "Brainy"}, "option": "所有俱乐部都有固定的加入条件，不符合就不能参加。"}], "question": {"type": "npc", "npcName": "Brainy", "content": "下面，让我们来看看这一段主要在讲什么。"}}]}]}

intermediate_json:
  {"阅读材料格式化": "```\n# 材料2\n类型：电子屏\n标题：How to Join Clubs?\n正文:\n<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]\n```", "学习材料格式化": "```\n# 段落1\n重点词汇: 无\n正文:\n---\nAt Vala Academy, Pioneers don't have exams. But you need points to level up!\n---\n```\n```\n# 段落2\n重点词汇: 无\n正文:\n---\nYou can choose your favourite club to join. If you are interested in something, you can find a club for it.\n---\n```", "学习过程配置": "```\n# 段落1\n## 段落内容\n---\nAt Vala Academy, Pioneers don't have exams. But you need points to level up!\n---\n## 互动题目\nBrainy：我们来认识一下这段话中的关键单词 points。points 的意思是积分、分数，攒够积分升级就可以说 get enough points to level up。\n1. 句意选择题\nBrainy：接下来，我们来看下包含 points 的句子 But you need points to level up! 是什么意思呢？\n- 但是你需要完成考试才能升级。\n  Brainy：不对哦，文中说开拓者们没有考试，升级需要的是points也就是积分，再确认下正确答案吧。\n- 但是你需要积分才能升级。[正确]\n  Brainy：完美回答！你已经掌握了句中的关键单词 points 和整个句子的意思了～\n2. 段落大意题\nBrainy：了解了关键单词和关键句子的意思，那我们来一起看看这一段主要在说什么呢？\n- 瓦拉学院里开拓者没有考试，靠积分升级。[正确]\n  Brainy：太棒了！你抓住了 don't have exams 和 need points to level up 这两个重点！\n- 瓦拉学院里开拓者需要通过考试获得积分。\n  Brainy：不太对哦，文中明确说没有考试，积分是升级的条件，不是通过考试获得的，再读一读试试看！\n\n# 段落2\n## 段落内容\n---\nYou can choose your favourite club to join. If you are interested in something, you can find a club for it.\n---\n## 互动题目\nBrainy：本段围绕一个关键词 club 展开，你认识这个单词吗？club 是俱乐部的意思，加入俱乐部可以说 join a club。\n1. 句意选择题\nBrainy：接下来我们看看包含 club 的句子 You can choose your favourite club to join. 你知道它是什么意思吗？\n- 你可以选择你最喜欢的课程去上课。\n  Brainy：课程的英文表达是 course 哦，并不是我们讲的 club，再认真看看正确的释义吧\n- 你可以选择你最喜欢的俱乐部加入。[正确]\n  Brainy：完美回答！你已经掌握了文中的关键单词 club 和关键句子的意思了～\n\n2. 段落大意题\nBrainy：下面，让我们来看看这一段主要在讲什么。\n- 你可以根据自己的兴趣选择对应的俱乐部加入。[正确]\n  Brainy：答得好！选择偏好和兴趣匹配的规则你都记住啦！\n- 所有俱乐部都有固定的加入条件，不符合就不能参加。\n  Brainy：小心看哦～文中说只要你对某件事感兴趣就能找到对应的俱乐部，没有提到固定加入条件的限制，再仔细看看正确的释义吧！\n\n# 完结反馈\nBrainy：太棒了！你已经完成了全部的学习流程，对两段内容的知识点都掌握得很好哦～\n```"}


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: core
cType: core_reading_imageDrag
type_name: 看图选词
level: L1
unit_id: U14
knowledge_points_raw:
  lake n. 湖
  monkey n. 猴子
  three num. 三
  How many ...? 多少……？
  There be ... 有……

status: generated
bitable_token: MVo7wugWfimJPIkxhJCcqppFnyf
db_table: core_interaction_component
created_at: 2026-04-30 14:16:25
updated_at: 2026-04-30 14:16:25
raw_config:
  【任务标题】看图选词填句
  【任务背景】你来到了神奇的单词城堡，城堡的墙上有很多缺了单词的句子，你需要找到正确的单词把它们补全，才能打开城堡的大门哦！
  【任务描述】观察主图内容，将下方选项池中的单词拖拽到对应句子的空白处，补全所有句子。
  【通关知识】
  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

final_config_json:
  {"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": {"Eva": 738, "Peter": 739}, "cDesc": "When you first start exploring the word castle, you hear Ben ask where hippos live, and you pick the right word to finish the sentence \"in the lake\", learning hippos make their homes in lakes. Next, Brainy asks what other animals you can find in the zoo, and you choose the matching word to give the answer, knowing there are trees as part of the zoo's natural environment for animals."}

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

task_info_json:
  {"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": {"Eva": 738, "Peter": 739}, "cDesc": "When you first start exploring the word castle, you hear Ben ask where hippos live, and you pick the right word to finish the sentence \"in the lake\", learning hippos make their homes in lakes. Next, Brainy asks what other animals you can find in the zoo, and you choose the matching word to give the answer, knowing there are trees as part of the zoo's natural environment for animals."}

study_info_json:
  {"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 ___”的回答，告诉Ben河马的居住地哦。"}, "optionList": [{"option": "lake", "feedback": {"type": "npc", "npcName": "Brainy", "content": "答对啦！河马是住在湖里的，完整回答就是“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": "答对啦！tree是“树”，动物园里会有树木给动物提供生活环境，你记得很准哦~"}}, {"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": "答对啦！动物园里会有树木，给动物们提供贴近自然的生活环境，快把“tree”这个单词大声读出来吧~"}}, {"option": "grass", "feedback": {"type": "npc", "npcName": "Brainy", "content": "grass是草，不符合这道题的要求哦，结合对动物园的了解再试一次吧~"}}], "answer": [1]}]}], "closing": {"type": "npc", "npcName": "Brainy", "content": "太棒了！你已经完成了这两个题目的练习，复习了lake、tree、grass这些单词的意思，还学会了怎么用英文回答关于动物栖息地和动物园事物的问题，你的英语又进步啦！"}}

intermediate_json:
  {"学习流程配置": "```\n# 小题 4\n## 材料内容\n【展示该小题对应的图片 ID：1201001_02.png】\n\n## 互动题目\n### 1. 句意选词题\nBrainy：这道题我们要先认识三个表示地点和事物的单词哦，来看看哪个是“湖”的意思吧~\n- 选项 A：tree\n  Brainy：tree的意思是“树”，河马可不是住在树上的哦，再想想看吧~\n- 选项 B：grass\n  Brainy：grass的意思是“草”，这个也不是河马居住的地方呀，再选一次吧~\n- 选项 C：lake[正确]\n  Brainy：答对啦！lake就是“湖”的意思，你太棒了，这个知识点你记住啦~\n\n### 2. 原题降级\nBrainy：Ben问“河马住在哪里呀？”，你要选一个合适的单词填到横线上，完成“in the ___”的回答，告诉Ben河马的居住地哦。\n- 选项 A：lake[正确]\n  Brainy：答对啦！河马是住在湖里的，完整回答就是“in the lake”，快大声把这个回答读出来吧~\n- 选项 B：tree\n  Brainy：tree是树的意思，河马不会住在树上呀，结合图片里的场景再想想看~\n- 选项 C：grass\n  Brainy：grass是草的意思，这里不是河马的主要居住环境哦，再试一次吧~\n\n---\n\n# 小题 5\n## 材料内容\n【展示该小题对应的图片 ID：1201001_02.png】\n\n## 互动题目\n### 1. 句意选词题\nBrainy：这道题我们要找一找哪个单词是动物园里存在的事物哦，先回忆下之前学的单词意思吧~\n- 选项 A：lake\n  Brainy：lake是“湖”，湖是自然水域，不是动物园里的动物哦，再想想看吧~\n- 选项 B：tree[正确]\n  Brainy：答对啦！tree是“树”，动物园里会有树木给动物提供生活环境，你记得很准哦~\n- 选项 C：grass\n  Brainy：grass是“草”，虽然动物园里也可能有草，但这不是我们这道题的正确答案哦，再选一次吧~\n\n### 2. 原题降级\nBrainy：Brainy问“动物园里还有什么其他的事物？”，你要选出正确的选项回答这个问题哦。\n- 选项 A：lake\n  Brainy：lake是湖，这里问的是动物园里的其他事物，湖不属于动物园里特有的这类事物哦，再想想看~\n- 选项 B：tree[正确]\n  Brainy：答对啦！动物园里会有树木，给动物们提供贴近自然的生活环境，快把“tree”这个单词大声读出来吧~\n- 选项 C：grass\n  Brainy：grass是草，不符合这道题的要求哦，结合对动物园的了解再试一次吧~\n\n---\n\n# 完结反馈\nBrainy：太棒了！你已经完成了这两个题目的练习，复习了lake、tree、grass这些单词的意思，还学会了怎么用英文回答关于动物栖息地和动物园事物的问题，你的英语又进步啦！\n```", "互动描述": "When you first start exploring the word castle, you hear Ben ask where hippos live, and you pick the right word to finish the sentence \"in the lake\", learning hippos make their homes in lakes.\nNext, Brainy asks what other animals you can find in the zoo, and you choose the matching word to give the answer, knowing there are trees as part of the zoo's natural environment for animals."}

question_group_json:
  [{"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]}]}]


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: core
cType: core_reading_imageDrag
type_name: 看图选词
level: L1
unit_id: U14
knowledge_points_raw:
  lake n. 湖
  monkey n. 猴子
  three num. 三
  How many ...? 多少……？
  There be ... 有……

status: generated
bitable_token: MVo7wugWfimJPIkxhJCcqppFnyf
db_table: core_interaction_component
created_at: 2026-04-30 14:17:11
updated_at: 2026-04-30 14:17:11
raw_config:
[cell repeats an earlier one in this file: 747 characters]

final_config_json:
  {"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": "To open the gate of the magical word castle, you first look at the question from Ben about where hippos live, and you fill in the blank with \"lake\" to complete the sentence \"in the lake\" (你首先回答了Ben关于河马栖息地的问题，填入lake完成了“在湖里”的表述，向着打开城堡大门迈进了一步)。Then you respond to Brainy's query about other animals in the zoo, and you pick \"tree\" as the right content to give the correct related information (接着你回应了Brainy关于动物园里其他相关事物的问题，选出了tree作为合适的答案，离解开城堡的谜题又近了一步)。"}

kp_info_json:
[cell repeats an earlier one in this file: 756 characters]

task_info_json:
  {"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": "To open the gate of the magical word castle, you first look at the question from Ben about where hippos live, and you fill in the blank with \"lake\" to complete the sentence \"in the lake\" (你首先回答了Ben关于河马栖息地的问题，填入lake完成了“在湖里”的表述，向着打开城堡大门迈进了一步)。Then you respond to Brainy's query about other animals in the zoo, and you pick \"tree\" as the right content to give the correct related information (接着你回应了Brainy关于动物园里其他相关事物的问题，选出了tree作为合适的答案，离解开城堡的谜题又近了一步)。"}

study_info_json:
  {"learningPart": [{"image": "1201001_02.png", "learning": [{"question": {"type": "npc", "npcName": "Brainy", "content": "这道题我们要认识表示地点的名词哦，先来看看哪个词的意思是“湖”吧~"}, "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是正确的，快大声把这个回答读出来吧~"}}, {"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": "答对啦！tree就是“树”的意思，你记得很准确哦~"}}, {"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": "答对啦！动物园里会种植很多树木，所以tree是正确的，快大声把这个单词读出来吧~"}}, {"option": "grass", "feedback": {"type": "npc", "npcName": "Brainy", "content": "grass是草，不符合这道题的要求哦，再试一次吧~"}}], "answer": [1]}]}], "closing": {"type": "npc", "npcName": "Brainy", "content": "太棒了！你已经顺利完成了这两个题目的练习，巩固了lake、tree、grass这些核心词汇，也学会了怎么回答关于地点和事物的问题，进步超级大哦，继续加油吧！"}}

intermediate_json:
  {"学习流程配置": "```\n# 小题 4\n## 材料内容\n【展示该小题对应的图片 ID：1201001_02.png】\n\n## 互动题目\n### 1. 句意选词题\nBrainy：这道题我们要认识表示地点的名词哦，先来看看哪个词的意思是“湖”吧~\n- 选项 A：tree\n  Brainy：tree的意思是“树”，不是我们要找的“湖”哦，再想想看吧~\n- 选项 B：lake [正确]\n  Brainy：答对啦！lake就是“湖”的意思，你太棒了，这个词汇已经掌握啦~\n- 选项 C：grass\n  Brainy：grass的意思是“草”，不符合我们要找的词义哦，再试一次吧~\n\n### 2. 原题降级\nBrainy：现在我们来完成对话哦，Ben问“河马生活在哪里？”，你需要选一个合适的地点，补全“在____里”这个回答，想想河马的生活环境是什么样的吧~\n- 选项 A：lake [正确]\n  Brainy：答对啦！河马是生活在湖里的，所以回答in the lake是正确的，快大声把这个回答读出来吧~\n- 选项 B：tree\n  Brainy：tree是树，河马不会生活在树上哦，结合河马的生活习惯再选一次吧~\n- 选项 C：grass\n  Brainy：grass是草，河马不是生活在草里哦，再想一想吧~\n\n---\n# 小题 5\n## 材料内容\n【展示该小题对应的图片 ID：1201001_02.png】\n\n## 互动题目\n### 1. 句意选词题\nBrainy：这道题我们要选出表示“树”的英文单词，一起来试试吧~\n- 选项 A：lake\n  Brainy：lake的意思是“湖”，不是“树”哦，再想想看吧~\n- 选项 B：tree [正确]\n  Brainy：答对啦！tree就是“树”的意思，你记得很准确哦~\n- 选项 C：grass\n  Brainy：grass的意思是“草”，不是我们要找的“树”哦，再试一次吧~\n\n### 2. 原题降级\nBrainy：现在Brainy问“动物园里还有什么其他的事物？”，你需要选出动物园里存在的事物哦。\n- 选项 A：lake\n  Brainy：lake是湖，不是这里要选的正确答案哦，再想想动物园里还有什么吧~\n- 选项 B：tree [正确]\n  Brainy：答对啦！动物园里会种植很多树木，所以tree是正确的，快大声把这个单词读出来吧~\n- 选项 C：grass\n  Brainy：grass是草，不符合这道题的要求哦，再试一次吧~\n\n---\n# 完结反馈\nBrainy：太棒了！你已经顺利完成了这两个题目的练习，巩固了lake、tree、grass这些核心词汇，也学会了怎么回答关于地点和事物的问题，进步超级大哦，继续加油吧！\n```", "互动描述": "To open the gate of the magical word castle, you first look at the question from Ben about where hippos live, and you fill in the blank with \"lake\" to complete the sentence \"in the lake\" (你首先回答了Ben关于河马栖息地的问题，填入lake完成了“在湖里”的表述，向着打开城堡大门迈进了一步)。\nThen you respond to Brainy's query about other animals in the zoo, and you pick \"tree\" as the right content to give the correct related information (接着你回应了Brainy关于动物园里其他相关事物的问题，选出了tree作为合适的答案，离解开城堡的谜题又近了一步)。"}

question_group_json:
  [{"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]}]}]


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: core
cType: core_speaking_reply
type_name: 口语快答
level: L1
unit_id: U14
knowledge_points_raw:
  Let's...（结构）
  Instead of..., we'd better...（结构）
  ... love(s) to...（结构）

dialog_setting_json: {"setting": {"npcName": "Logan", "round": 5, "checkRound": 3}}
status: generated
bitable_token: TSwcw0nFmi21khkpUndchNMsn6f
db_table: core_interaction_component
created_at: 2026-04-30 14:17:48
updated_at: 2026-04-30 14:17:48
raw_config:
  【任务标题】
  求助清洁工人为大象洗澡
  【任务背景】
  你们了解到大象想要洗澡，哪里可以找到干净的水呢？你们想起了清洁中心一定有水！快求助工作人员，顺利让大象洗个痛快澡！
  【任务描述】
  请你告诉清洁站的工人，大象需要洗澡，你们乐意帮助，希望送一些干净的水过来。
  【通关知识】
  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.

final_config_json:
  {"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}}

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

task_info_json:
[cell repeats an earlier one in this file: 609 characters]

study_info_json:
  {"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. We can play with her later.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "现在的情境是要告诉Logan大象需要洗澡哦，这句话说的是大象在睡觉，和当前的情况不匹配，再选一次吧。"}}, {"option": "The elephant is eating bananas. She looks very happy.", "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 have to 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": "I think we can go home and come back tomorrow.", "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": "Sorry, we don't know 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": "太棒啦！你已经顺利完成了这次的对话任务，你表现得特别好哦。"}}}

intermediate_json:
  {"学习流程配置": "```\n# 开场回合\nLogan：Hi. What happened to the elephant?\n\n# 中间回合1\nBrainy：Logan问你大象怎么啦，现在你要告诉他大象需要洗澡，你们想要给她安排洗澡哦。\n用户选项:\n（A）The elephant needs a shower. Let's set up a shower for her.\n  Brainy：答对啦！你真棒，现在试着把这句话大声读出来吧~\n（B）The elephant is sleeping. We can play with her later.\n  Brainy：现在的情境是要告诉Logan大象需要洗澡哦，这句话说的是大象在睡觉，和当前的情况不匹配，再选一次吧。\n（C）The elephant is eating bananas. She looks very happy.\n  Brainy：现在我们需要说的是大象需要洗澡的相关内容，这句话说的是大象在吃香蕉，不符合当前要表达的意思，再试试吧。\nLogan：Are you saying she hasn't had a shower yet? Maybe someone will probably come soon.\n\n# 中间回合2\nBrainy：Logan说你是说她还没洗澡吗？可能很快就有人过来了。现在你要回应说与其在这里等，你们最好先去给她拿点水。\n用户选项:\n（A）We have to wait for the keepers to come and help her.\n  Brainy：现在我们要表达的是不等别人、先去拿水的意思哦，这句话说的是要等饲养员来，和要表达的内容相反啦，再选一次吧。\n（B）Instead of waiting here, we'd better get some water for her first.\n  Brainy：完全正确！你太厉害了，来把这句话大声朗读出来吧~\n（C）I think we can go home and come back tomorrow.\n  Brainy：现在我们是要帮大象洗澡，不是要回家哦，这句话不符合当前的情境，再试试吧。\nLogan：The keepers are too careless! Thank you! Can you help her shower?\n\n# 中间回合3\nBrainy：Logan说饲养员太粗心了，谢谢你，还问你能不能帮大象洗澡。现在你要回答你们很乐意帮忙哦。\n用户选项:\n（A）We'd love to help.\n  Brainy：太棒了，选对啦！现在试着把这句话读出来吧。\n（B）We are too busy to help her.\n  Brainy：我们本来就是想要帮忙的哦，这句话说的是太忙了帮不了，不符合现在的情况，再选一次吧。\n（C）Sorry, we don't know how to shower an elephant.\n  Brainy：现在要表达的是乐意帮忙的意思哦，这句话说的是不知道怎么给大象洗澡，和我们要回应的内容不匹配，再试试吧。\nLogan：Great. We will send some water to her right away.\n\n# 结尾回合\nBrainy：太棒啦！你已经顺利完成了这次的对话任务，你表现得特别好哦。\n```", "promptInfo配置": "```\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```", "语音识别热词": "elephant,shower,water,keepers,help"}

dialog_config_json:
  {"config": {"asrPrompt": "elephant,shower,water,keepers,help", "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... ……很乐意……"}}}


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: core
cType: core_speaking_reply
type_name: 口语快答
level: L1
unit_id: U14
knowledge_points_raw:
  Let's...（结构）
  Instead of..., we'd better...（结构）
  ... love(s) to...（结构）

dialog_setting_json: {"setting": {"npcName": "Logan", "round": 5, "checkRound": 3}}
status: generated
bitable_token: TSwcw0nFmi21khkpUndchNMsn6f
db_table: core_interaction_component
created_at: 2026-04-30 14:18:40
updated_at: 2026-04-30 14:18:40
raw_config:
[cell repeats an earlier one in this file: 998 characters]

final_config_json:
  {"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}}

kp_info_json:
[cell repeats an earlier one in this file: 537 characters]

task_info_json:
  {"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}}

study_info_json:
  {"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 likes eating bananas, we can feed her.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句话的意思是“大象喜欢吃香蕉，我们可以喂她”，现在我们是要告诉对方大象需要洗澡，和当前情境不匹配哦，再试一次吧。"}}, {"option": "The keeper is here to take care of the elephant.", "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 keeper to come here.", "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 want to help the elephant take a shower.", "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 have no time to help her.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句话的意思是“我们没时间帮她”，我们是愿意帮忙的，所以这个选项不对哦，再试一次吧。"}}, {"option": "We need to go home now, goodbye.", "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": "太棒啦！你顺利完成了这次对话任务，你已经可以准确表达想要帮忙给大象洗澡、请求送水的相关英语表达啦，进步很大哦。"}}}

intermediate_json:
  {"学习流程配置": "```\n# 开场回合\nLogan：Hi. What happened to the elephant?\n\n# 中间回合1\nBrainy：Logan问你大象发生什么事啦，你现在需要告诉对方大象需要洗澡，你们想要帮她安排洗澡哦。\n用户选项:\n（A）The elephant needs a shower. Let's set up a shower for her.\n  Brainy：回答正确哦！你很棒，现在试着把这句话大声读出来吧。\n（B）The elephant likes eating bananas, we can feed her.\n  Brainy：这句话的意思是“大象喜欢吃香蕉，我们可以喂她”，现在我们是要告诉对方大象需要洗澡，和当前情境不匹配哦，再试一次吧。\n（C）The keeper is here to take care of the elephant.\n  Brainy：这句话的意思是“饲养员在这里照顾大象”，但我们要表达的是大象需要洗澡的需求，不符合现在要回应的内容，再选一次呀。\nLogan：Are you saying she hasn't had a shower yet? Maybe someone will probably come soon.\n\n# 中间回合2\nBrainy：Logan说“你是说她还没洗澡吗？可能很快就会有人过来了”，现在你要表达与其在这等，不如我们先去给她拿点水哦。\n用户选项:\n（A）We can wait for the keeper to come here.\n  Brainy：这句话的意思是“我们可以等饲养员来这里”，但我们要表达的是不等了先去拿水，意思正好相反哦，再试一次吧。\n（B）Instead of waiting here, we'd better get some water for her first.\n  Brainy：太对啦！你理解得很好，现在试着把这句话朗读出来吧。\n（C）We don't want to help the elephant take a shower.\n  Brainy：这句话的意思是“我们不想帮大象洗澡”，和我们要主动帮忙的想法完全不一样哦，再选一次呀。\nLogan：The keepers are too careless! Thank you! Can you help her shower?\n\n# 中间回合3\nBrainy：Logan说“饲养员太粗心了！谢谢你们！你们能帮她洗澡吗？”，现在你要告诉对方你们很乐意帮忙哦。\n用户选项:\n（A）We'd love to help.\n  Brainy：回答正确！做得特别好，来把这句话读出来吧。\n（B）We have no time to help her.\n  Brainy：这句话的意思是“我们没时间帮她”，我们是愿意帮忙的，所以这个选项不对哦，再试一次吧。\n（C）We need to go home now, goodbye.\n  Brainy：这句话的意思是“我们现在要回家了，再见”，不符合我们要帮忙的回应哦，再选一次吧。\nLogan：Great. We will send some water to her right away.\n\n# 结尾回合\nBrainy：太棒啦！你顺利完成了这次对话任务，你已经可以准确表达想要帮忙给大象洗澡、请求送水的相关英语表达啦，进步很大哦。\n```", "promptInfo配置": "```\n# 1. 角色（你要扮演谁）\n你是Wander Port清洁站的工作人员Logan，性格友善亲切，语言风格简单易懂，适合和小朋友交流。\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```", "语音识别热词": "elephant,shower,water,keepers,help,clean,wander port,logan"}

dialog_config_json:
  {"config": {"asrPrompt": ["elephant", "shower", "water", "keepers", "help", "clean", "wander port", "logan"], "promptInfo": {"default": "# 1. 角色（你要扮演谁）\n你是Wander Port清洁站的工作人员Logan，性格友善亲切，语言风格简单易懂，适合和小朋友交流。\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- 除开场轮次外，每次回应，可以先基于用户的话给一句反馈。然后再推进你的任务。", "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... ……很乐意……"}}}


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: core
cType: core_speaking_inquiry
type_name: 口语妙问
level: L1
unit_id: U14
knowledge_points_raw: Where can I...?（语义）Can I have... please?（语义）What else can I...?（语义）
dialog_setting_json: {"setting": {"npcName": "Chloe", "round": 5, "checkRound": 3}}
status: generated
bitable_token: GJUVwNSEkis3EXkrVj0ccbqdn8c
db_table: core_interaction_component
created_at: 2026-04-30 14:19:18
updated_at: 2026-04-30 14:19:18
raw_config:
  【任务标题】
  询问空乘关于健身房的信息
  【任务背景】
  吃太饱，头晕晕，连刚刚去过的健身房都不记得怎么走了。好在 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.

final_config_json:
  {"cType": "core_speaking_inquiry", "cId": "0000800", "title": "向Chloe询问健身房的位置，以及讨要毛巾，做好开始运动的准备", "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}}

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

task_info_json:
  {"cType": "core_speaking_inquiry", "cId": "0000800", "title": "向Chloe询问健身房的位置，以及讨要毛巾，做好开始运动的准备", "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}}

study_info_json:
  {"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 restroom?", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句话是询问洗手间位置的，现在你需要索要毛巾哦，再试一次~"}}, {"option": "Can I have a towel please?", "feedback": {"type": "npc", "npcName": "Brainy", "content": "太好啦！你正确地表达了想要一条毛巾的需求。请大声朗读这句话！"}}, {"option": "How much is the towel?", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句话是询问毛巾价格的，不需要问价格哦，直接向Chloe索要毛巾就可以啦，再试一次~"}}], "answer": [1], "read": {"type": "user", "content": "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 go to the gym with me?", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句话是邀请Chloe和你一起去健身房的，我们现在是要了解健身房里的其他可做事项哦，再试一次~"}}, {"option": "When does the gym close?", "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": "你已经问清楚了健身房的位置，也索要了毛巾，还了解了在健身房可以做的事，这次对话任务圆满完成啦！"}}

intermediate_json:
  {"学习流程配置": "```\n# 开场回合\nChloe：Can I help you?\n\n# 中间回合1\nBrainy: 空乘Chloe主动询问你是否需要帮助，现在你需要向她询问健身房的位置。\n用户选项:\n（选项 A）Where can I find the gym? [正确]\n  Brainy: 太棒了！你正确地问出了健身房的位置。请大声朗读这句话！\n（选项 B）Can I have a towel please?\n  Brainy: 这句话是索要毛巾的，现在你还没询问健身房位置哦，先问问健身房在哪里吧，再试一次~\n（选项 C）What can I do in the gym?\n  Brainy: 这句话是询问健身房里可以做什么的，现在你首先需要知道健身房的位置哦，再试一次~\n\nChloe：Look, it's over there at the end of this walkway.\n\n# 中间回合2\nBrainy: Chloe已经告诉了你健身房在走廊的尽头，现在你需要向她要一条毛巾，为运动做准备。\n用户选项:\n（选项 A）Where is the restroom?\n  Brainy: 这句话是询问洗手间位置的，现在你需要索要毛巾哦，再试一次~\n（选项 B）Can I have a towel please? [正确]\n  Brainy: 太好啦！你正确地表达了想要一条毛巾的需求。请大声朗读这句话！\n（选项 C）How much is the towel?\n  Brainy: 这句话是询问毛巾价格的，不需要问价格哦，直接向Chloe索要毛巾就可以啦，再试一次~\n\nChloe：Of course! I'll bring a new one for you soon.\n\n# 中间回合3\nBrainy: Chloe答应很快给你拿一条新毛巾，现在你可以问问在健身房里还能做些什么，了解更多相关信息。\n用户选项:\n（选项 A）What else can I do there? [正确]\n  Brainy: 非常棒！你正确地询问了在健身房还可以做的事。请大声朗读这句话！\n（选项 B）Can you go to the gym with me?\n  Brainy: 这句话是邀请Chloe和你一起去健身房的，我们现在是要了解健身房里的其他可做事项哦，再试一次~\n（选项 C）When does the gym close?\n  Brainy: 这句话是询问健身房关门时间的，现在你需要问的是在健身房里还能做什么，再试一次~\n\nChloe：Well, you can do some exercise and enjoy sightseeing there. Or you can just relax.\n\n# 结尾回合\nBrainy: 你已经问清楚了健身房的位置，也索要了毛巾，还了解了在健身房可以做的事，这次对话任务圆满完成啦！\n```", "promptInfo配置": "```\n# 1. 角色（你要扮演谁）\n你是Chloe，是Twilight航班的空乘，服务好每一位乘客是你的使命。你对曾经帮你解过围的用户态度格外友善热情。\n\n# 2. 任务（你如何参与到整个对话）\n- 你只在用户提问时提供特定信息，不主动透露知识库中的信息。\n- 如果用户提问的内容在知识库范围内，你会准确回答。\n- 如果用户的问题不清晰，你会尝试确认问题。\n- 一般情况下，一次最多只回答知识库中的一条信息，除非用户明确地分别提问到多条信息。\n- 如果用户不提问，你会温和、自然地进行交谈。\n\n# 3. 背景信息\n你是Chloe，是Twilight的空乘，服务好每一位乘客是你的使命。用户之前帮你在另一位乘客面前解了围，你很感谢用户的帮忙，对用户的态度也格外友善热情。你发现用完餐的用户正在东张西望，似乎在寻找什么，你确认用户需要帮助，于是上前询问。你发现用户想去健身房消消食，但是不知道方向，于是回答了用户的问题，提供了你的帮助。\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- 不主动提问题\n```", "语音识别热词": "gym,towel,exercise,sightseeing,relax,walkway"}

dialog_config_json:
  {"config": {"asrPrompt": "gym,towel,exercise,sightseeing,relax,walkway", "promptInfo": {"default": "# 1. 角色（你要扮演谁）\n你是Chloe，是Twilight航班的空乘，服务好每一位乘客是你的使命。你对曾经帮你解过围的用户态度格外友善热情。\n\n# 2. 任务（你如何参与到整个对话）\n- 你只在用户提问时提供特定信息，不主动透露知识库中的信息。\n- 如果用户提问的内容在知识库范围内，你会准确回答。\n- 如果用户的问题不清晰，你会尝试确认问题。\n- 一般情况下，一次最多只回答知识库中的一条信息，除非用户明确地分别提问到多条信息。\n- 如果用户不提问，你会温和、自然地进行交谈。\n\n# 3. 背景信息\n你是Chloe，是Twilight的空乘，服务好每一位乘客是你的使命。用户之前帮你在另一位乘客面前解了围，你很感谢用户的帮忙，对用户的态度也格外友善热情。你发现用完餐的用户正在东张西望，似乎在寻找什么，你确认用户需要帮助，于是上前询问。你发现用户想去健身房消消食，但是不知道方向，于是回答了用户的问题，提供了你的帮助。\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? 我在那儿还能做些什么？"}}}


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: core
cType: core_speaking_inquiry
type_name: 口语妙问
level: L1
unit_id: U14
knowledge_points_raw: Where can I...?（语义）Can I have... please?（语义）What else can I...?（语义）
dialog_setting_json: {"setting": {"npcName": "Chloe", "round": 5, "checkRound": 3}}
status: generated
bitable_token: GJUVwNSEkis3EXkrVj0ccbqdn8c
db_table: core_interaction_component
created_at: 2026-04-30 14:20:07
updated_at: 2026-04-30 14:20:07
raw_config:
[cell repeats an earlier one in this file: 1022 characters]

final_config_json:
  {"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}}

kp_info_json:
[cell repeats an earlier one in this file: 568 characters]

task_info_json:
  {"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}}

study_info_json:
  {"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 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": "这句话是询问在健身房还能做什么的，现在你需要先向Chloe要毛巾哦。请再试一次吧。"}}], "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": "你已经知道健身房的位置啦，这个问题不需要再问啦。现在你可以问问在健身房里能做什么，请再试一次吧。"}}, {"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": "Chloe已经告诉了你健身房的位置、给你提供了毛巾，还和你说了健身房里可以做的事，你已经做好运动的全部准备啦，任务圆满完成！"}}}

intermediate_json:
  {"学习流程配置": "```\n# 开场回合\nChloe：Can I help you?\n\n# 中间回合1\nBrainy: 空乘Chloe主动询问你是否需要帮助，现在你需要向她询问健身房的位置。\n用户选项:\n（选项 A）Where can I find the gym? [正确]\n  Brainy: 太棒了！你正确地问出了健身房的位置。请大声朗读这句话！\n（选项 B）Can I have a towel please?\n  Brainy: 这句话是询问能不能要毛巾的，现在你还没问健身房的位置哦。请再试一次，问问健身房在哪里吧。\n（选项 C）What can I do in the gym?\n  Brainy: 这句话是问健身房里能做什么的，现在你首先需要询问健身房的位置哦。请再试一次吧。\nChloe：Look, it's over there at the end of this walkway.\n\n# 中间回合2\nBrainy: Chloe已经告诉你健身房在这条走道的尽头，现在你需要接着向她要一条毛巾，方便之后运动使用。\n用户选项:\n（选项 A）Where can I find the gym?\n  Brainy: 你已经问过健身房的位置啦，Chloe也已经告诉你了哦。现在你需要向她要一条毛巾，请再试一次吧。\n（选项 B）Oh, and can I have a towel please? [正确]\n  Brainy: 太厉害啦！你正确地表达了想要一条毛巾的需求。请大声朗读这句话！\n（选项 C）What else can I do there?\n  Brainy: 这句话是询问在健身房还能做什么的，现在你需要先向Chloe要毛巾哦。请再试一次吧。\nChloe：Of course! I'll bring a new one for you soon.\n\n# 中间回合3\nBrainy: Chloe同意给你拿一条新毛巾啦，现在你可以问问在健身房里还能做些什么，提前了解一下哦。\n用户选项:\n（选项 A）Where can I find the gym?\n  Brainy: 你已经知道健身房的位置啦，这个问题不需要再问啦。现在你可以问问在健身房里能做什么，请再试一次吧。\n（选项 B）Can I have a towel please?\n  Brainy: Chloe已经答应给你拿毛巾啦，不用再问这个问题啦。现在你可以问问在健身房里能做什么，请再试一次吧。\n（选项 C）What else can I do there? [正确]\n  Brainy: 你太聪明啦！正确问出了在健身房可以做的其他事情。请大声朗读这句话！\nChloe：Well, you can do some exercise and enjoy sightseeing there. Or you can just relax.\n\n# 结尾回合\nBrainy: Chloe已经告诉了你健身房的位置、给你提供了毛巾，还和你说了健身房里可以做的事，你已经做好运动的全部准备啦，任务圆满完成！\n```", "promptInfo配置": "```\n# 1. 角色（你要扮演谁）\n- 你是 Chloe，是Twilight航班的空乘，服务乘客是你的职责。\n- 你对之前帮你解过围的用户格外友善热情。\n\n# 2. 任务（你如何参与到整个对话）\n- 你只在用户提问时提供特定信息，不主动透露知识库中的信息。\n- 如果用户提问的内容在知识库范围内，你会准确回答。\n- 如果用户的问题不清晰，你会尝试确认问题。\n- 一般情况下，一次最多只回答知识库中的一条信息，除非用户明确地分别提问到多条信息。\n- 如果用户不提问，你会温和、自然地进行交谈。\n\n# 3. 背景信息\n你是 Chloe，是 Twilight 的空乘，服务好每一位乘客是你的使命。用户之前帮你在另一位乘客面前解了围，你很感谢用户的帮忙，对用户的态度也格外友善热情。你发现用完餐的用户正在东张西望，似乎在寻找什么，你确认用户需要帮助，于是上前询问。你发现用户想去健身房消消食，但是不知道方向，于是回答了用户的问题，提供了你的帮助。\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- 不主动提问题\n```", "语音识别热词": "gym,towel,exercise,sightseeing,relax,walkway"}

dialog_config_json:
  {"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# 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 的空乘，服务好每一位乘客是你的使命。用户之前帮你在另一位乘客面前解了围，你很感谢用户的帮忙，对用户的态度也格外友善热情。你发现用完餐的用户正在东张西望，似乎在寻找什么，你确认用户需要帮助，于是上前询问。你发现用户想去健身房消消食，但是不知道方向，于是回答了用户的问题，提供了你的帮助。", "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 的空乘，服务好每一位乘客是你的使命。用户之前帮你在另一位乘客面前解了围，你很感谢用户的帮忙，对用户的态度也格外友善热情。你发现用完餐的用户正在东张西望，似乎在寻找什么，你确认用户需要帮助，于是上前询问。你发现用户想去健身房消消食，但是不知道方向，于是回答了用户的问题，提供了你的帮助。", "user_knowledge": "Where can I find the gym？我在哪里能找到健身房？\nCan I have a towel please?？我能要一条毛巾吗？\nWhat else can I do there? 我在那儿还能做些什么？"}}}


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: core
cType: core_speaking_image
type_name: 看图说话
level: L1
unit_id: U14
knowledge_points_raw:
  winter
  cold
  snow

image_info_json: {"questionImg": "0000800_question.png"}
status: generated
bitable_token: KBOXwzVHfin6ORkKbA3c3eWEnoh
db_table: core_interaction_component
created_at: 2026-04-30 14:20:21
updated_at: 2026-04-30 14:20:21
raw_config:
  【任务标题】
  和 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.

final_config_json:
  {"cType": "core_speaking_image", "cId": "0000800", "title": "回答Mr Rock的问题", "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."}

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

task_info_json:
  {"cType": "core_speaking_image", "cId": "0000800", "title": "回答Mr Rock的问题", "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."}

study_info_json:
  {"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": "Summer.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句话的意思是夏天，但是现在我们在冬季岛屿，周围还有热腾腾的食物用来取暖，和夏天的特点不符哦。请仔细看当前的场景，告诉 Rock 老师现在的季节吧。"}}, {"option": "Cold.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句话的意思是寒冷的，这是用来描述天气感受的词，不是季节哦。请仔细听清问题，告诉 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": "Hot.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句话的意思是热的，冬天的温度很低，是很寒冷的，和实际情况不符哦。请仔细感受当前场景的温度，告诉 Rock 老师冬天的感受吧。"}}, {"option": "Cold.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "太厉害啦！冬天确实是寒冷的。请大声朗读这个单词吧！"}}, {"option": "Snow.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句话的意思是雪，这是冬天会出现的事物，不是用来描述冷热感受的哦。请仔细听清问题，告诉 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": "Flower.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句话的意思是花，花一般是春天温暖的时候才会开放的，冬天很少能看到盛开的花，和当前场景不符哦。请仔细看看冬季岛屿的景色，告诉 Rock 老师你能看到什么吧。"}}, {"option": "Ice cream.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句话的意思是冰淇淋，这是夏天常吃的消暑食物，不是冬天会看到的特有事物哦。请仔细听清问题，告诉 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 did a great job answering all the questions. The food will be ready soon!"}}]}], "closing": {"type": "npc", "npcName": "Brainy", "content": "恭喜你顺利回答完Rock老师的所有问题，不仅掌握了冬天相关的英语表达，还完成了本次冬季岛屿的互动任务，很棒哦！"}}

intermediate_json:
  {"学习流程配置": "```\n# 中间回合1\nRock: What season is it?\nBrainy: Rock 老师问你现在是什么季节哦，你需要回答他现在的季节。\n用户选项:\n（选项 A）Winter. [正确]\n  Brainy: 太棒啦！你答对了，现在就是冬天。请大声朗读这个单词吧！\n（选项 B）Summer.\n  Brainy: 这句话的意思是夏天，但是现在我们在冬季岛屿，周围还有热腾腾的食物用来取暖，和夏天的特点不符哦。请仔细看当前的场景，告诉 Rock 老师现在的季节吧。\n（选项 C）Cold.\n  Brainy: 这句话的意思是寒冷的，这是用来描述天气感受的词，不是季节哦。请仔细听清问题，告诉 Rock 老师现在是什么季节。\n\n# 中间回合2\nRock: Is it hot or cold?\nBrainy: Rock 老师现在问你冬天是热的还是冷的，你需要告诉他冬天的体感特点。\n用户选项:\n（选项 A）Hot.\n  Brainy: 这句话的意思是热的，冬天的温度很低，是很寒冷的，和实际情况不符哦。请仔细感受当前场景的温度，告诉 Rock 老师冬天的感受吧。\n（选项 B）Cold. [正确]\n  Brainy: 太厉害啦！冬天确实是寒冷的。请大声朗读这个单词吧！\n（选项 C）Snow.\n  Brainy: 这句话的意思是雪，这是冬天会出现的事物，不是用来描述冷热感受的哦。请仔细听清问题，告诉 Rock 老师冬天是热还是冷。\n\n# 中间回合3\nRock: What do you see in winter?\nBrainy: Rock 老师问你在冬天能看到什么东西，你需要说出冬天特有的事物哦。\n用户选项:\n（选项 A）Flower.\n  Brainy: 这句话的意思是花，花一般是春天温暖的时候才会开放的，冬天很少能看到盛开的花，和当前场景不符哦。请仔细看看冬季岛屿的景色，告诉 Rock 老师你能看到什么吧。\n（选项 B）Ice cream.\n  Brainy: 这句话的意思是冰淇淋，这是夏天常吃的消暑食物，不是冬天会看到的特有事物哦。请仔细听清问题，告诉 Rock 老师冬天能看到的东西。\n（选项 C）Snow. [正确]\n  Brainy: 回答正确！冬天经常会下雪，能看到很多雪花哦。请大声朗读这个单词吧！\n\n# 结尾回合\nBrainy: 你已经顺利回答完 Rock 老师的所有问题啦，你们的聊天很愉快，食物也马上就要煮好咯，任务完成！\n```", "语音识别热词": "winter,cold,snow,season,hot"}

dialog_config_json:
  {"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."}]}}}

option_list_json:
  [{"option": "0000800_option_00.png"}, {"option": "0000800_option_01.png"}, {"option": "0000800_option_02.png"}]

question_list_json:
  [{"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."}]


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: core
cType: core_speaking_image
type_name: 看图说话
level: L1
unit_id: U14
knowledge_points_raw:
  winter
  cold
  snow

image_info_json: {"questionImg": "0000800_question.png"}
status: generated
bitable_token: KBOXwzVHfin6ORkKbA3c3eWEnoh
db_table: core_interaction_component
created_at: 2026-04-30 14:21:12
updated_at: 2026-04-30 14:21:12
raw_config:
[cell repeats an earlier one in this file: 559 characters]

final_config_json:
[cell repeats an earlier one in this file: 576 characters]

kp_info_json:
[cell repeats an earlier one in this file: 462 characters]

task_info_json:
[cell repeats an earlier one in this file: 576 characters]

study_info_json:
  {"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": "Summer.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句话的意思是夏天，现在你在冬季的岛屿上，周围还有热乎乎的食物，这个答案和现在的情境不符哦。请仔细想想现在的季节是什么，再回答吧。"}}, {"option": "Cold.", "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": "Hot.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句话的意思是热的，冬天的天气是比较凉的，你现在还在等着喝热热的食物，说明现在天气并不热，这个答案不符合当前情境哦。请仔细回忆冬天的天气特点，再回答吧。"}}, {"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": "Ice cream.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句话的意思是冰淇淋，冰淇淋是夏天常吃的食物，不是冬天会看到的典型事物，和当前冬季的情境不符哦。请仔细想想冬天特有的景物，再回答吧。"}}, {"option": "Snow.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "答对啦！雪是冬天很有代表性的景物。请大声朗读这个单词吧！"}}, {"option": "Winter.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句话的意思是冬天，是当前的季节，而 Rock 老师问的是你在冬天能看到什么东西，不是问季节哦。请听清问题，告诉 Rock 老师冬天能看到的事物吧。"}}], "answer": [1], "read": {"type": "npc", "npcName": "User", "content": "Snow."}, "feedback": {"type": "npc", "npcName": "Rock", "content": "Great! You know a lot about winter. Let's enjoy the warm food now."}}]}], "closing": {"type": "npc", "npcName": "Brainy", "content": "太棒了！你已经顺利完成了和Rock老师的对话，不仅准确回答了关于冬季的季节、天气和特有景物的问题，还掌握了相关的英文表达，现在可以等着享用热乎乎的美食啦，本次学习任务圆满完成！"}}

intermediate_json:
  {"学习流程配置": "```\n# 中间回合1\nRock: What season is it?\nBrainy: Rock 老师问你现在是什么季节，你需要回答他现在所处的季节哦。\n用户选项:\n（选项 A）Winter. [正确]\n  Brainy: 太棒啦！你正确说出了现在是冬季。请大声朗读这个单词吧！\n（选项 B）Summer.\n  Brainy: 这句话的意思是夏天，现在你在冬季的岛屿上，周围还有热乎乎的食物，这个答案和现在的情境不符哦。请仔细想想现在的季节是什么，再回答吧。\n（选项 C）Cold.\n  Brainy: 这句话的意思是寒冷的，是用来描述天气的，而 Rock 老师问的是季节，不是天气情况哦。请听清问题，告诉 Rock 老师现在的季节吧。\n\n# 中间回合2\nRock: Is it hot or cold?\nBrainy: Rock 老师现在问你现在天气是热还是冷，你需要回答冬季的天气感受哦。\n用户选项:\n（选项 A）Hot.\n  Brainy: 这句话的意思是热的，冬天的天气是比较凉的，你现在还在等着喝热热的食物，说明现在天气并不热，这个答案不符合当前情境哦。请仔细回忆冬天的天气特点，再回答吧。\n（选项 B）Cold. [正确]\n  Brainy: 太对啦！你准确说出了冬天的天气是寒冷的。请大声朗读这个单词吧！\n（选项 C）Snow.\n  Brainy: 这句话的意思是雪，是冬天会出现的事物，而 Rock 老师问的是天气冷还是热，不是问你能看到什么哦。请听清问题，告诉 Rock 老师冬天的天气感受吧。\n\n# 中间回合3\nRock: What do you see in winter?\nBrainy: Rock 老师现在问你在冬天能看到什么，你需要说出冬季特有的事物哦。\n用户选项:\n（选项 A）Ice cream.\n  Brainy: 这句话的意思是冰淇淋，冰淇淋是夏天常吃的食物，不是冬天会看到的典型事物，和当前冬季的情境不符哦。请仔细想想冬天特有的景物，再回答吧。\n（选项 B）Snow. [正确]\n  Brainy: 答对啦！雪是冬天很有代表性的景物。请大声朗读这个单词吧！\n（选项 C）Winter.\n  Brainy: 这句话的意思是冬天，是当前的季节，而 Rock 老师问的是你在冬天能看到什么东西，不是问季节哦。请听清问题，告诉 Rock 老师冬天能看到的事物吧。\n\n# 结尾回合\nBrainy: 你和 Rock 老师的聊天非常顺利，接下来就可以等着吃热乎乎的美食啦！本次对话任务圆满完成！\n```", "语音识别热词": "winter,cold,snow,season,hot"}

dialog_config_json:
[cell repeats an earlier one in this file: 777 characters]

option_list_json:
[cell repeats an earlier one in this file: 111 characters]

question_list_json:
[cell repeats an earlier one in this file: 322 characters]


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: core
cType: core_listening_order
type_name: 合作听力
level: L1
unit_id: U14
knowledge_points_raw:
  bake（词义）
  healthy（词义）
  money（词义）
  cake（词义）
  alcohol（词义）

flow_info_json: {"sequence": [{"audio": [0]}, {"question": [0]}, {"audio": [1]}, {"question": [1, 2, 3]}]}
status: generated
bitable_token: FrxtwNRQDizqiikPkATcBzTCnYe
db_table: core_interaction_component
created_at: 2026-04-30 14:21:20
updated_at: 2026-04-30 14:21:20
raw_config:
  【任务标题】
  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】

final_config_json:
  {"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}}

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

task_info_json:
  {"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}}

material_info_json:
  {"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": ""}]}

study_info_json:
  {"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，意思是在家烘焙。bake 是“烘焙、烤”的意思，home 是“家”，组合在一起就是在家自己制作食物的意思哦。", "type": "npc", "npcName": "Brainy", "learning": [{"question": {"type": "npc", "content": "认真听音频，选出发音和你听到的内容完全一致的句子吧。", "npcName": "Brainy"}, "optionList": [{"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.", "feedback": {"type": "npc", "content": "不对哦，这句话说的是在商店购买，没有提到 bake at home 哦，再仔细听一遍音频试试吧！", "npcName": "Brainy"}}], "answer": [0], "meaning": "听音选句"}, {"question": {"type": "npc", "content": "听完句子，你知道这句话的正确中文意思是什么吗？试着选一下吧。", "npcName": "Brainy"}, "optionList": [{"option": "当你很想吃甜食，比如饼干或者蛋糕时，你可以在家烘焙。", "feedback": {"type": "npc", "content": "完全正确！你不仅听懂了整句话，还掌握了 bake at home 这个实用的短语，太棒啦！", "npcName": "Brainy"}}, {"option": "当你很想吃甜食，比如饼干或者蛋糕时，你可以去商店买。", "feedback": {"type": "npc", "content": "这句话的重点是在家自己做哦，不是去商店购买，再想想看吧～", "npcName": "Brainy"}}], "answer": [0], "meaning": "听音选意"}]}]}

intermediate_json:
  {"学习过程配置": "```\n# 重点句子 1\n音频文本：When you really want sweet food, like biscuits or cake, you can bake at home.\n讲解文本：刚刚听到的音频中，包含了一个关键短语 bake at home，意思是在家烘焙。bake 是“烘焙、烤”的意思，home 是“家”，组合在一起就是在家自己制作食物的意思哦。\n1. 听音选句\nBrainy：认真听音频，选出发音和你听到的内容完全一致的句子吧。\n- When you really want sweet food, like biscuits or cake, you can bake at home. [正确]\n  - Brainy：太厉害啦！你精准听出了句子里的重点短语 bake at home！\n- When you really want sweet food, like biscuits or cake, you can buy at the shop.\n  - Brainy：不对哦，这句话说的是在商店购买，没有提到 bake at home 哦，再仔细听一遍音频试试吧！\n\n2. 听音选意\nBrainy：听完句子，你知道这句话的正确中文意思是什么吗？试着选一下吧。\n- 当你很想吃甜食，比如饼干或者蛋糕时，你可以在家烘焙。[正确]\n  - Brainy：完全正确！你不仅听懂了整句话，还掌握了 bake at home 这个实用的短语，太棒啦！\n- 当你很想吃甜食，比如饼干或者蛋糕时，你可以去商店买。\n  - Brainy：这句话的重点是在家自己做哦，不是去商店购买，再想想看吧～\n---\n# 完成反馈\nBrainy：很好！你已经回答完了全部问题，相信你已经听懂了这个任务中所有的重点句子。现在让我们来查看结果吧!\n```", "互动描述": "You listened to the audio about how to live a healthy life, and learned you should go to bed on time and get up early, stay away from smoking and alcohol. (你听了关于如何健康生活的音频，了解到应该按时睡觉早起，远离烟酒。)\nYou also got to know that keeping a healthy body doesn't need much money or expensive things, and good habits are the most important. (你还了解到保持健康不需要很多钱或昂贵的物品，好习惯才是最重要的。)"}


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: core
cType: core_listening_order
type_name: 合作听力
level: L1
unit_id: U14
knowledge_points_raw:
  bake（词义）
  healthy（词义）
  money（词义）
  cake（词义）
  alcohol（词义）

flow_info_json: {"sequence": [{"audio": [0]}, {"question": [0]}, {"audio": [1]}, {"question": [1, 2, 3]}]}
status: generated
bitable_token: FrxtwNRQDizqiikPkATcBzTCnYe
db_table: core_interaction_component
created_at: 2026-04-30 14:22:06
updated_at: 2026-04-30 14:22:06
raw_config:
[cell repeats an earlier one in this file: 2377 characters]

final_config_json:
  {"cType": "core_listening_order", "cId": "0000800", "title": "通过Max的专业健身指南帮助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}}

kp_info_json:
[cell repeats an earlier one in this file: 739 characters]

task_info_json:
  {"cType": "core_listening_order", "cId": "0000800", "title": "通过Max的专业健身指南帮助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}}

material_info_json:
  {"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": ""}]}

study_info_json:
  {"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，意思是在家烘焙。这个短语用来描述自己在家里制作糕点、面包等食物的行为，是很健康的生活方式哦。", "type": "npc", "npcName": "Brainy", "learning": [{"answer": [1], "meaning": "听音选句", "optionList": [{"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."}, {"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."}], "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": "现在来看看这句话的中文意思是什么，选出正确的选项吧。"}}]}]}

intermediate_json:
  {"学习过程配置": "```\n# 重点句子 1\n音频文本：When you really want sweet food, like biscuits or cake, you can bake at home.\n讲解文本：刚刚听到的音频中，包含了一个关键短语 bake at home，意思是在家烘焙。这个短语用来描述自己在家里制作糕点、面包等食物的行为，是很健康的生活方式哦。\n1. 听音选句\nBrainy：仔细听音频内容，选出你听到的句子吧。\n- When you really want sweet food, like biscuits or cake, you can buy at the shop.\n  - Brainy：不对哦，这句话里说的是在商店购买，和音频里的重点内容bake at home不一样，再仔细听听看吧。\n- When you really want sweet food, like biscuits or cake, you can bake at home. [正确]\n  - Brainy：太棒啦！你准确听出了句子里的重点短语bake at home，真厉害！\n\n2. 听音选意\nBrainy：现在来看看这句话的中文意思是什么，选出正确的选项吧。\n- 当你很想吃甜食，比如饼干或者蛋糕时，你可以在家烘焙。[正确]\n  - Brainy：完全正确！你已经掌握了bake at home（在家烘焙）这个短语的意思啦，太棒了！\n- 当你很想吃甜食，比如饼干或者蛋糕时，你可以去外面的餐厅吃。\n  - Brainy：不对哦，句子里说的是在家自己做，不是去外面餐厅吃，再想想看吧。\n---\n# 完成反馈\nBrainy：很好！你已经回答完了全部问题，相信你已经听懂了这个任务中所有的重点句子。现在让我们来查看结果吧!\n```", "互动描述": "You listened to the audio How to live a healthy life?, and learned that a healthy routine means going to bed on time and getting up early, while staying away from smoking and alcohol.（你听了《如何健康生活》的音频，了解到健康的作息是早睡早起，同时要远离烟酒。）\nYou also found that keeping healthy doesn't need much money or expensive things, and good habits are the most important for our health.（你还发现保持健康不需要很多钱或者昂贵的物品，好习惯对我们的健康来说才是最重要的。）"}


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: core
cType: core_listening_choose
type_name: 听力选择
level: L1
unit_id: U14
knowledge_points_raw: summerhotshortstrousersCould you...It feels...
question_group_json: "无"
status: generated
bitable_token: Kwrcw6A4jip2sxkdLn4czd1knvf
db_table: core_interaction_component
created_at: 2026-04-30 14:23:02
updated_at: 2026-04-30 14:23:02
raw_config:
  【任务标题】
  请求路边钓鱼的叔叔帮忙
  【任务背景】
  心心念念的短裤原来卡在石头间了，快抓紧时间请钓鱼叔叔帮忙钓上来吧！
  【通关知识】
  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...】

final_config_json:
  {"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": "请你提供具体的任务名称、题目材料以及对应正确答案的相关信息哦，我会按照要求为你生成符合规范的叙事化描述。"}

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

task_info_json:
  {"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": "请你提供具体的任务名称、题目材料以及对应正确答案的相关信息哦，我会按照要求为你生成符合规范的叙事化描述。"}

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

intermediate_json:
  {"学习过程配置": "```\n# 重点句子 1\n音频文本：This summer!\n讲解文本：刚刚听到的音频中，包含了关键短语 summer，意思是夏天，是表示季节的常用词汇。\n1. 听音选句\nBrainy：仔细听音频，选出发音和你听到的内容一致的句子哦。\n- This winter!\n  - Brainy：不对哦，这句话里的单词是winter，意思是冬天，和你听到的内容不一样，再试试看~\n- This summer! [正确]\n  - Brainy：太棒啦！你准确听出了句子里的重点单词summer，听力超厉害的！\n\n2. 听音选意\nBrainy：这句话的中文意思是“这个夏天！”，你说对不对呀？\n- 对 / Yes [正确]\n  - Brainy：完全正确！你不仅听懂了句子，还掌握了summer这个表示季节的单词，太优秀啦！\n- 错 / No\n  - Brainy：不对哦，再回忆一下summer的意思，重新选一次吧，你可以的~\n---\n# 完成反馈\nBrainy：很好！你已经回答完了全部问题，相信你已经听懂了这个任务中所有的重点句子。现在让我们来查看结果吧!\n```", "互动描述": "请你提供具体的任务名称、题目材料以及对应正确答案的相关信息哦，我会按照要求为你生成符合规范的叙事化描述。"}


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: core
cType: core_writing_questionMakeSentence
type_name: 邮件组句
level: L1
unit_id: U14
knowledge_points_raw:
  That's why we have to...（结构）
  The job is...（结构）When will you arrive? （语义）

status: generated
bitable_token: M5oTwUP6wiImC4kVJU8cRYnfnyf
db_table: core_interaction_component
created_at: 2026-04-30 14:23:41
updated_at: 2026-04-30 14:23:41
raw_config:
  【任务名称】
   编写给 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
  【通过规则】
  用户写出：
  这份工作很重要。
  这就是我们为什么要留下。
  你什么时候将会到达？

final_config_json:
  {"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?（亲爱的丽贝卡：我知道你很担心。但这是我们探索漫游港的最佳机会。这项任务对我们来说很重要。这就是我们必须留下来的原因。你将来会来漫游港吗？你什么时候会到？）"}

kp_info_json:
  {"pushType": "relationKp", "cType": "core_writing_questionMakeSentence", "cId": "0000800", "kpInfo": [{"kpId": "0328017", "kpType": "sentence", "kpTitle": "The job is...", "kpSkill": "sentence_meaning", "kpSkillName": "语义", "candidates": [{"kp_id": "0328017", "type": "sentence", "title": "The job is...", "vala_level": "L2", "en_desc": ""}]}, {"kpId": null, "kpType": "sentence", "kpTitle": "这份工作......", "kpSkill": "sentence_meaning", "kpSkillName": "语义", "candidates": []}, {"kpId": "0328016", "kpType": "sentence", "kpTitle": "That's why we have to...", "kpSkill": "sentence_meaning", "kpSkillName": "语义", "candidates": [{"kp_id": "0328016", "type": "sentence", "title": "That's why we have to...", "vala_level": "L2", "en_desc": ""}]}, {"kpId": null, "kpType": "vocab", "kpTitle": "这就是为什么我们必须……", "kpSkill": "vocab_meaning", "kpSkillName": "词义", "candidates": []}, {"kpId": "0328014", "kpType": "sentence", "kpTitle": "When will you arrive?", "kpSkill": "sentence_meaning", "kpSkillName": "语义", "candidates": [{"kp_id": "0328014", "type": "sentence", "title": "When will you arrive?", "vala_level": "L2", "en_desc": ""}]}, {"kpId": null, "kpType": "vocab", "kpTitle": "你什么时候会到？", "kpSkill": "vocab_meaning", "kpSkillName": "词义", "candidates": []}]}

task_info_json:
  {"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?（亲爱的丽贝卡：我知道你很担心。但这是我们探索漫游港的最佳机会。这项任务对我们来说很重要。这就是我们必须留下来的原因。你将来会来漫游港吗？你什么时候会到？）"}

study_info_json:
  {"learningPart": [{"leadIn": {"desc": "What is your opinion on the job?"}, "learning": [{"question": {"type": "npc", "npcName": "Brainy", "content": "你在邮件里向Rebecca解释留在Wander Port的原因，提到“这份工作对我们来说很重要”，需要补全句子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": "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是否会来Wander Port后，想要进一步问她什么时候会到，需要补全句子___ you arrive?"}, "optionList": [{"option": "When will", "feedback": {"type": "npc", "npcName": "Brainy", "content": "完全正确！arrive是实义动词，将来时的特殊疑问句要用“疑问词+will+主语+动词原形”的结构，这句话准确表达了“你什么时候会到？”的意思，非常符合邮件语境。"}}, {"option": "When is", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，arrive是实义动词原形，不能和be动词is直接搭配使用，这个结构不符合语法规则哦。"}}, {"option": "How is", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，首先疑问词how是询问方式的，不符合你要问“到达时间”的需求，同时be动词is也不能和实义动词arrive原形搭配，语法和语义都不对哦。"}}], "answer": [0], "write": {"desc": "When will you arrive?", "trans": "你什么时候会到？"}, "feedback": {"type": "npc", "npcName": "Brainy", "content": "你写的很好！"}}]}], "closing": {"type": "npc", "npcName": "Brainy", "content": "恭喜你，你已经掌握了单词job、固定结构That's why...以及将来时特殊疑问句When will you...?的用法，可以顺利完成给Rebecca的邮件写作啦！"}}

intermediate_json:
  {"学习流程配置": "```\n# 问题1：\nBrainy: 你在邮件里向Rebecca解释留在Wander Port的原因，提到“这份工作对我们来说很重要”，需要补全句子The ___ is important for us.\n用户选项:\n（选项 A）job [正确]\n  Brainy: 答对啦！这里be动词是is，说明主语是可数名词单数，job作为单数形式符合句子语法和语义要求，准确表达了“这份工作对我们很重要”的含义。\n（选项 B）jobs\n  Brainy: 不对哦，jobs是可数名词复数，后面应该搭配be动词are，和句子里的is不匹配，所以不能选这个。\n（选项 C）projects\n  Brainy: 不对哦，projects是“项目”的复数形式，同样需要搭配be动词are，和句中的is冲突，不符合句子语法要求。\n\n# 问题2：\nBrainy: 你说完工作的重要性后，要表达“这就是我们必须留下来的原因”，需要补全句子That's ___ we have to stay.\n用户选项:\n（选项 A）why [正确]\n  Brainy: 太棒了！That's why...是固定表达，用来引出前面陈述内容带来的结果，这里正好对应“工作重要”是“留下来”的原因，逻辑和语法都完全正确。\n（选项 B）how\n  Brainy: 不对哦，how是用来询问方式的，填入的话句子会变成“这就是我们必须留下来的方式”，和你要表达的“原因”逻辑不符哦。\n（选项 C）which\n  Brainy: 不对哦，which通常用来引导定语从句指代事物，在这里不符合句子的逻辑关系，无法表达“原因”的含义哦。\n\n# 问题3：\nBrainy: 你询问完Rebecca是否会来Wander Port后，想要进一步问她什么时候会到，需要补全句子___ you arrive?\n用户选项:\n（选项 A）When will [正确]\n  Brainy: 完全正确！arrive是实义动词，将来时的特殊疑问句要用“疑问词+will+主语+动词原形”的结构，这句话准确表达了“你什么时候会到？”的意思，非常符合邮件语境。\n（选项 B）When is\n  Brainy: 不对哦，arrive是实义动词原形，不能和be动词is直接搭配使用，这个结构不符合语法规则哦。\n（选项 C）How is\n  Brainy: 不对哦，首先疑问词how是询问方式的，不符合你要问“到达时间”的需求，同时be动词is也不能和实义动词arrive原形搭配，语法和语义都不对哦。\n```", "互动描述": "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?（亲爱的丽贝卡：我知道你很担心。但这是我们探索漫游港的最佳机会。这项任务对我们来说很重要。这就是我们必须留下来的原因。你将来会来漫游港吗？你什么时候会到？）"}

text_info_json:
  {"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]}]}

eval_info_json:
  {"title": "编写给 Rebecca 的邮件", "taskDesc": "请根据提示问题，用英文组句完成这封邮件。", "sceneDesc": "Rebecca听上去十分担心你们的安全，你们刚刚做出了决定，要继续留在 Wander Port 进行学院的探索任务，你需要回一封邮件给她，告诉她你们的决定以及原因，顺便询问她何时会来。", "knowledge": "The job is... 这份工作......\nThat's why we have to... 这就是为什么我们必须……\nWhen 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]}]}


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: core
cType: core_writing_imgWrite
type_name: 看图撰写
level: L1
unit_id: U14
knowledge_points_raw:
  elephant（词形）
  banana（词形）
  shower（词形）
  ... love(s) to...（结构）

status: generated
bitable_token: KwPHwnaqdiWlvNkDm5fcFreDnQh
db_table: core_interaction_component
created_at: 2026-04-30 14:24:33
updated_at: 2026-04-30 14:24:33
raw_config:
  【任务名称】
   填写大象护理记录
  【任务背景】
   粗心的大象饲养员忘记给大象洗澡了！真是照顾不周。你们给大象洗了澡，还喂了香蕉，现在把这些都记在护理记录上吧！
  【任务描述】
   根据图片内容，填写大象护理报告。
  【题干类型】
   图片
  【题干描述】
   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
  【通过规则】
  用户能够：
  说明动物类型是大象。
  说明大象吃了香蕉。
  说明大象洗了澡。
  表达大象喜欢香蕉和洗澡。

final_config_json:
  {"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!（动物饲养员记录\n动物种类：大象\n食物：她吃了香蕉。\n清洁：她今天洗了澡。\n她喜欢什么呢？\n这头大象喜欢洗澡和香蕉！）"}

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

task_info_json:
  {"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!（动物饲养员记录\n动物种类：大象\n食物：她吃了香蕉。\n清洁：她今天洗了澡。\n她喜欢什么呢？\n这头大象喜欢洗澡和香蕉！）"}

study_info_json:
  {"learningPart": [{"leadIn": {"image": "0000800-00.png"}, "learning": [{"question": {"type": "npc", "npcName": "Brainy", "content": "你要开始填写大象护理记录啦，首先得在最上方写上这份记录的标题哦，下列哪个是正确的标题？"}, "optionList": [{"option": "Animal Keeper's Record", "feedback": {"type": "npc", "npcName": "Brainy", "content": "答对啦！这就是护理记录的标准标题，写在最上方非常合适~"}}, {"option": "Animal type: Elephant", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这是记录里“动物类型”栏目的内容，不是记录的标题哦，再想想看标题应该是什么吧。"}}, {"option": "The elephant loves showers and bananas!", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这是总结大象喜好的句子，不能作为护理记录的标题哦，再试一次吧。"}}], "answer": [0], "write": {"desc": "Animal Keeper's Record", "trans": "动物饲养员记录"}, "feedback": {"type": "npc", "npcName": "Brainy", "content": "你写的很好！"}}]}, {"leadIn": {"image": "0000800-01.png"}, "learning": [{"question": {"type": "npc", "npcName": "Brainy", "content": "现在要填写“动物类型”这一栏了，你今天照顾的是大象，这一格应该填什么呢？"}, "optionList": [{"option": "bananas", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，bananas是大象吃的食物，不是动物类型，再想想我们照顾的是什么动物呀？"}}, {"option": "Elephant", "feedback": {"type": "npc", "npcName": "Brainy", "content": "太棒了！我们今天照顾的动物是大象，填在这里完全正确~"}}, {"option": "a shower", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，a shower是给大象做的清洁项目，不是动物类型，再试试看吧。"}}], "answer": [1], "write": {"desc": "Elephant", "trans": "大象"}, "feedback": {"type": "npc", "npcName": "Brainy", "content": "你写的很好！"}}]}, {"leadIn": {"image": "0000800-02.png"}, "learning": [{"question": {"type": "npc", "npcName": "Brainy", "content": "接下来填写食物部分，你今天喂大象吃了香蕉，“Food: She ate ___ .”这个空应该填什么呢？"}, "optionList": [{"option": "bananas", "feedback": {"type": "npc", "npcName": "Brainy", "content": "太对啦！大象今天吃了香蕉，填在这里正好符合实际情况~"}}, {"option": "a shower", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，a shower是清洁项目，不是吃的食物呀，再想想喂大象吃了什么吧。"}}, {"option": "Elephant", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，Elephant是动物的种类，不是大象吃的食物，再试一次吧。"}}], "answer": [0], "write": {"desc": "She ate bananas.", "trans": "她吃了香蕉。"}, "feedback": {"type": "npc", "npcName": "Brainy", "content": "你写的很好！"}}]}, {"leadIn": {"image": "0000800-00.png"}, "learning": [{"question": {"type": "npc", "npcName": "Brainy", "content": "现在到了清洁记录部分，你今天给大象洗了澡，“Cleaning: She had ___ today .”这个空应该填什么呢？"}, "optionList": [{"option": "bananas", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，bananas是食物，不属于清洁项目，再想想我们给大象做了什么清洁呀？"}}, {"option": "a shower", "feedback": {"type": "npc", "npcName": "Brainy", "content": "答对啦！我们今天给大象洗了澡，have a shower就是“洗澡”的意思，填在这里非常合适~"}}, {"option": "Animal Keeper's Record", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，这是护理记录的标题，不是清洁项目，再试试看吧。"}}], "answer": [1], "write": {"desc": "She had a shower today.", "trans": "她今天洗了澡。"}, "feedback": {"type": "npc", "npcName": "Brainy", "content": "你写的很好！"}}]}, {"leadIn": {"image": "0000800-01.png"}, "learning": [{"question": {"type": "npc", "npcName": "Brainy", "content": "记录里还有一个问题“What does she love?（她喜欢什么？）”，你需要选出能对应这个问题的正确回答哦。"}, "optionList": [{"option": "Animal type: Elephant", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句话是说明动物类型的，不是回答大象的喜好哦，再想想大象喜欢什么吧。"}}, {"option": "Food: She ate bananas.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句话是记录大象吃了什么，不是回答它的喜好哦，再试一次吧。"}}, {"option": "The elephant loves showers and bananas!", "feedback": {"type": "npc", "npcName": "Brainy", "content": "太棒了！这句话准确说出了大象喜欢洗澡和香蕉，正好对应上面的问题，回答完全正确~"}}], "answer": [2], "write": {"desc": "The elephant loves showers and bananas!", "trans": "这头大象喜欢洗澡和香蕉！"}, "feedback": {"type": "npc", "npcName": "Brainy", "content": "你写的很好！"}}]}], "closing": {"type": "npc", "npcName": "Brainy", "content": "恭喜你，可以使用准确的单词 elephant、banana、shower，短语 love to，以及相关记录句式完成了大象护理记录的填写，准确描述了三张图对应的护理内容！"}}

intermediate_json:
  {"学习流程配置": "```\n# 问题1：\nBrainy: 你要开始填写大象护理记录啦，首先得在最上方写上这份记录的标题哦，下列哪个是正确的标题？\n用户选项:\n（选项 A）Animal Keeper's Record [正确]\n  Brainy: 答对啦！这就是护理记录的标准标题，写在最上方非常合适~\n（选项 B）Animal type: Elephant\n  Brainy: 这是记录里“动物类型”栏目的内容，不是记录的标题哦，再想想看标题应该是什么吧。\n（选项 C）The elephant loves showers and bananas!\n  Brainy: 这是总结大象喜好的句子，不能作为护理记录的标题哦，再试一次吧。\n\n# 问题2：\nBrainy: 现在要填写“动物类型”这一栏了，你今天照顾的是大象，这一格应该填什么呢？\n用户选项:\n（选项 A）bananas\n  Brainy: 不对哦，bananas是大象吃的食物，不是动物类型，再想想我们照顾的是什么动物呀？\n（选项 B）Elephant [正确]\n  Brainy: 太棒了！我们今天照顾的动物是大象，填在这里完全正确~\n（选项 C）a shower\n  Brainy: 不对哦，a shower是给大象做的清洁项目，不是动物类型，再试试看吧。\n\n# 问题3：\nBrainy: 接下来填写食物部分，你今天喂大象吃了香蕉，“Food: She ate ___ .”这个空应该填什么呢？\n用户选项:\n（选项 A）bananas [正确]\n  Brainy: 太对啦！大象今天吃了香蕉，填在这里正好符合实际情况~\n（选项 B）a shower\n  Brainy: 不对哦，a shower是清洁项目，不是吃的食物呀，再想想喂大象吃了什么吧。\n（选项 C）Elephant\n  Brainy: 不对哦，Elephant是动物的种类，不是大象吃的食物，再试一次吧。\n\n# 问题4：\nBrainy: 现在到了清洁记录部分，你今天给大象洗了澡，“Cleaning: She had ___ today .”这个空应该填什么呢？\n用户选项:\n（选项 A）bananas\n  Brainy: 不对哦，bananas是食物，不属于清洁项目，再想想我们给大象做了什么清洁呀？\n（选项 B）a shower [正确]\n  Brainy: 答对啦！我们今天给大象洗了澡，have a shower就是“洗澡”的意思，填在这里非常合适~\n（选项 C）Animal Keeper's Record\n  Brainy: 不对哦，这是护理记录的标题，不是清洁项目，再试试看吧。\n\n# 问题5：\nBrainy: 记录里还有一个问题“What does she love?（她喜欢什么？）”，你需要选出能对应这个问题的正确回答哦。\n用户选项:\n（选项 A）Animal type: Elephant\n  Brainy: 这句话是说明动物类型的，不是回答大象的喜好哦，再想想大象喜欢什么吧。\n（选项 B）Food: She ate bananas.\n  Brainy: 这句话是记录大象吃了什么，不是回答它的喜好哦，再试一次吧。\n（选项 C）The elephant loves showers and bananas! [正确]\n  Brainy: 太棒了！这句话准确说出了大象喜欢洗澡和香蕉，正好对应上面的问题，回答完全正确~\n```", "互动描述": "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!（动物饲养员记录\n动物种类：大象\n食物：她吃了香蕉。\n清洁：她今天洗了澡。\n她喜欢什么呢？\n这头大象喜欢洗澡和香蕉！）"}

text_info_json:
  {"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!）"}]}

eval_info_json:
  {"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!）"}]}


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: core
cType: core_writing_questionWrite
type_name: 邮件撰写
level: L1
unit_id: U14
knowledge_points_raw: That's why we have to...（结构）The job is...（结构）When will you arrive? （语义）
status: generated
bitable_token: Brn0wldKYizsLZkBqK6clp1tnKd
db_table: core_interaction_component
created_at: 2026-04-30 14:24:59
updated_at: 2026-04-30 14:24:59
raw_config:
  【任务名称】 编写给 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
  【通过规则】用户写出：这份工作很重要。这就是我们为什么要留下。你什么时候将会到达？

final_config_json:
  {"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（亲爱的丽贝卡：我知道你很担心。但这是我们探索漫游港的最佳机会。这份工作对我们来说很重要。这就是我们必须留下来的原因。你某天会来漫游港吗？如果会的话，你什么时候会到呢？）"}

kp_info_json:
  {"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": "语义", "candidates": []}]}

task_info_json:
  {"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（亲爱的丽贝卡：我知道你很担心。但这是我们探索漫游港的最佳机会。这份工作对我们来说很重要。这就是我们必须留下来的原因。你某天会来漫游港吗？如果会的话，你什么时候会到呢？）"}

study_info_json:
  {"learningPart": [{"leadIn": {"desc": "Tell her your decision and why."}, "learning": [{"question": {"type": "npc", "npcName": "Brainy", "content": "你准备给Rebecca写邮件，首先需要填写合适的称呼，以下哪个选项是正确的开头？"}, "optionList": [{"option": "Dear Rebecca,", "feedback": {"type": "npc", "npcName": "Brainy", "content": "太棒啦！这是英文邮件写给特定对象的标准礼貌开头，完全符合给Rebecca写信的场景~"}}, {"option": "Dear Sir,", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这个称呼是用来称呼陌生男性的，你知道Rebecca的名字，而且她是认识的人，用这个称呼不合适哦，再试一下吧。"}}, {"option": "Hello, it's me.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这个表达太随意了，不符合正式邮件的开头规范，给Rebecca的邮件需要更得体的称呼哦。"}}], "answer": [0], "write": {"desc": "Dear Rebecca,", "trans": "亲爱的丽贝卡："}, "feedback": {"type": "npc", "npcName": "Brainy", "content": "你写的很好！"}}, {"question": {"type": "npc", "npcName": "Brainy", "content": "你接下来要在邮件里说明你理解Rebecca的担忧，同时解释留下来的原因，以下哪个表达最准确？"}, "optionList": [{"option": "I know you are angry. But we want to play in Wander Port.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，Rebecca是担心你们的安全，不是生气，而且我们留下来是为了探索任务，不是玩耍，这个表达不符合原意~"}}, {"option": "I know you are worried. But this is our best chance to explore Wander Port.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "太对了！你准确传达了“理解对方担忧，同时说明这是探索Wander Port的最好机会”的意思，完全符合邮件内容要求~"}}, {"option": "I know you are excited. But we don't want to leave Wander Port now.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "Rebecca是担心你们，不是兴奋，而且这句话也没有说明留下来的原因是探索任务，不符合哦，再试试吧。"}}], "answer": [1], "write": {"desc": "I know you are worried. But this is our best chance to explore Wander Port.", "trans": "我知道你很担心。但这是我们探索漫游港的最佳机会。"}, "feedback": {"type": "npc", "npcName": "Brainy", "content": "你写的很好！"}}, {"question": {"type": "npc", "npcName": "Brainy", "content": "你想表达“这份工作对我们很重要”，现在句子是\"The ____ is important for us.\"，横线处应该填什么？"}, "optionList": [{"option": "jobs", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，句子里的be动词是is，说明主语是单数，jobs是复数形式，和is不搭配哦。"}}, {"option": "job", "feedback": {"type": "npc", "npcName": "Brainy", "content": "答对啦！job是单数形式，和后面的is搭配 perfectly，准确表达了“这份工作对我们很重要”的意思~"}}, {"option": "projects", "feedback": {"type": "npc", "npcName": "Brainy", "content": "projects是复数形式，和句中的is不匹配，而且意思也不符合这里要表达的内容哦，再试一下吧。"}}], "answer": [1], "write": {"desc": "The job is important for us.", "trans": "这份工作对我们来说很重要。"}, "feedback": {"type": "npc", "npcName": "Brainy", "content": "你写的很好！"}}, {"question": {"type": "npc", "npcName": "Brainy", "content": "你要接着上文解释留下来的原因，句子是\"That's ____ we have to stay.\"，横线处应该填哪个词？"}, "optionList": [{"option": "how", "feedback": {"type": "npc", "npcName": "Brainy", "content": "填how的话句子意思就变成“那就是我们得怎么留下来”，不符合这里要说明“留下来的原因”的逻辑哦。"}}, {"option": "why", "feedback": {"type": "npc", "npcName": "Brainy", "content": "太聪明了！\"That's why...\"是固定表达，意思是“那就是……的原因”，刚好承接上文说明我们必须留下来的原因，完全正确~"}}, {"option": "which", "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": "Will you come to Wander Port some day?", "feedback": {"type": "npc", "npcName": "Brainy", "content": "很棒！这句话准确礼貌地询问了Rebecca未来是否会来Wander Port，非常符合邮件的语境~"}}, {"option": "You will come to Wander Port soon, right?", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句话带有强烈的猜测对方一定会来的意味，我们是不确定所以询问，不是预设对方会来哦，不太合适。"}}, {"option": "Do you come to Wander Port every day?", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句话是问对方是不是每天都来Wander Port，和我们要问的“未来是否会来”的意思完全不一样哦，再试一下吧。"}}], "answer": [0], "write": {"desc": "Will you come to Wander Port some day?", "trans": "你某天会来漫游港吗？"}, "feedback": {"type": "npc", "npcName": "Brainy", "content": "你写的很好！"}}, {"question": {"type": "npc", "npcName": "Brainy", "content": "你接着问如果她来的话，什么时候会到，句子是\"If so, _________ you arrive?\"，横线处应该填什么？"}, "optionList": [{"option": "when is", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，句子里的动词是arrive，是实义动词，疑问句需要用助动词will，不能用is哦，语法不对。"}}, {"option": "when will", "feedback": {"type": "npc", "npcName": "Brainy", "content": "答对啦！一般将来时的特殊疑问句结构是“特殊疑问词+will+主语+动词原形”，这里刚好符合，准确询问了对方到达的时间~"}}, {"option": "how is", "feedback": {"type": "npc", "npcName": "Brainy", "content": "how是询问方式的，我们这里要问的是时间，而且is也不能和动词原形arrive搭配，所以不对哦。"}}], "answer": [1], "write": {"desc": "If so, when will you arrive?", "trans": "如果会的话，你什么时候会到呢？"}, "feedback": {"type": "npc", "npcName": "Brainy", "content": "你写的很好！"}}]}], "closing": {"type": "npc", "npcName": "Brainy", "content": "恭喜你，你已经掌握了英文邮件的礼貌称呼、表达理解对方情绪、说明原因的固定句式That's why...以及询问未来安排的相关表达，成功完成了给Rebecca的邮件写作！"}}

intermediate_json:
  {"学习流程配置": "```\n# 问题1：\nBrainy: 你准备给Rebecca写邮件，首先需要填写合适的称呼，以下哪个选项是正确的开头？\n用户选项:\n（选项 A）Dear Rebecca, [正确]\n  Brainy: 太棒啦！这是英文邮件写给特定对象的标准礼貌开头，完全符合给Rebecca写信的场景~\n（选项 B）Dear Sir,\n  Brainy: 这个称呼是用来称呼陌生男性的，你知道Rebecca的名字，而且她是认识的人，用这个称呼不合适哦，再试一下吧。\n（选项 C）Hello, it's me.\n  Brainy: 这个表达太随意了，不符合正式邮件的开头规范，给Rebecca的邮件需要更得体的称呼哦。\n\n# 问题2：\nBrainy: 你接下来要在邮件里说明你理解Rebecca的担忧，同时解释留下来的原因，以下哪个表达最准确？\n用户选项:\n（选项 A）I know you are angry. But we want to play in Wander Port.\n  Brainy: 不对哦，Rebecca是担心你们的安全，不是生气，而且我们留下来是为了探索任务，不是玩耍，这个表达不符合原意~\n（选项 B）I know you are worried. But this is our best chance to explore Wander Port. [正确]\n  Brainy: 太对了！你准确传达了“理解对方担忧，同时说明这是探索Wander Port的最好机会”的意思，完全符合邮件内容要求~\n（选项 C）I know you are excited. But we don't want to leave Wander Port now.\n  Brainy: Rebecca是担心你们，不是兴奋，而且这句话也没有说明留下来的原因是探索任务，不符合哦，再试试吧。\n\n# 问题3：\nBrainy: 你想表达“这份工作对我们很重要”，现在句子是\"The ____ is important for us.\"，横线处应该填什么？\n用户选项:\n（选项 A）jobs\n  Brainy: 不对哦，句子里的be动词是is，说明主语是单数，jobs是复数形式，和is不搭配哦。\n（选项 B）job [正确]\n  Brainy: 答对啦！job是单数形式，和后面的is搭配 perfectly，准确表达了“这份工作对我们很重要”的意思~\n（选项 C）projects\n  Brainy: projects是复数形式，和句中的is不匹配，而且意思也不符合这里要表达的内容哦，再试一下吧。\n\n# 问题4：\nBrainy: 你要接着上文解释留下来的原因，句子是\"That's ____ we have to stay.\"，横线处应该填哪个词？\n用户选项:\n（选项 A）how\n  Brainy: 填how的话句子意思就变成“那就是我们得怎么留下来”，不符合这里要说明“留下来的原因”的逻辑哦。\n（选项 B）why [正确]\n  Brainy: 太聪明了！\"That's why...\"是固定表达，意思是“那就是……的原因”，刚好承接上文说明我们必须留下来的原因，完全正确~\n（选项 C）which\n  Brainy: which在这里不符合语法结构，也没法表达出“原因”的含义，不合适哦，再想想吧。\n\n# 问题5：\nBrainy: 你想在邮件里询问Rebecca是否会来Wander Port，以下哪个表达是正确的？\n用户选项:\n（选项 A）Will you come to Wander Port some day? [正确]\n  Brainy: 很棒！这句话准确礼貌地询问了Rebecca未来是否会来Wander Port，非常符合邮件的语境~\n（选项 B）You will come to Wander Port soon, right?\n  Brainy: 这句话带有强烈的猜测对方一定会来的意味，我们是不确定所以询问，不是预设对方会来哦，不太合适。\n（选项 C）Do you come to Wander Port every day?\n  Brainy: 这句话是问对方是不是每天都来Wander Port，和我们要问的“未来是否会来”的意思完全不一样哦，再试一下吧。\n\n# 问题6：\nBrainy: 你接着问如果她来的话，什么时候会到，句子是\"If so, _________ you arrive?\"，横线处应该填什么？\n用户选项:\n（选项 A）when is\n  Brainy: 不对哦，句子里的动词是arrive，是实义动词，疑问句需要用助动词will，不能用is哦，语法不对。\n（选项 B）when will [正确]\n  Brainy: 答对啦！一般将来时的特殊疑问句结构是“特殊疑问词+will+主语+动词原形”，这里刚好符合，准确询问了对方到达的时间~\n（选项 C）how is\n  Brainy: how是询问方式的，我们这里要问的是时间，而且is也不能和动词原形arrive搭配，所以不对哦。\n```", "互动描述": "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（亲爱的丽贝卡：我知道你很担心。但这是我们探索漫游港的最佳机会。这份工作对我们来说很重要。这就是我们必须留下来的原因。你某天会来漫游港吗？如果会的话，你什么时候会到呢？）"}

text_info_json:
  {"inputType": "write", "passCondition": "1. 这份工作很重要。 2. 这就是我们为什么要留下。 3. 你什么时候将会到达？", "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）会到？"}]}

eval_info_json:
  {"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": ""}, {"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）会到？"}]}


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: mid
cType: mid_dialog_express
type_name: 对话表达
level: L1
unit_id: U14
knowledge_points_raw: spring
status: generated
bitable_token: IC2kbvgP0aLrj7sfzZicIozZn1e
db_table: middle_interaction_component
created_at: 2026-04-30 14:25:07
updated_at: 2026-04-30 14:25:07
raw_config:
  【任务标题】
  回答养蜂人的问题
  【资源配置】
  图片时机：
  互动内容
  互动反馈
  【情境引入】
  无
  【互动内容】
  回答养蜂人的问题。
  示例回答：
  User : Spring!
  辅助信息：春天会收获最多的蜂蜜哦~
  【互动反馈】
  正确 Sunny: You are so clever!
  错误 Beekeeper: Try again.
  【后置对话】
  无

final_config_json:
  {"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": []}

kp_info_json:
  {"pushType": "relationKp", "cType": "mid_dialog_express", "cId": "0000800", "kpInfo": [{"kpId": null, "kpType": "vocab", "kpTitle": "spring", "kpSkill": "vocab_meaning", "kpSkillName": "词义", "candidates": []}]}


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: mid
cType: mid_message_trace
type_name: 信息描写
level: L1
unit_id: U14
knowledge_points_raw: Grape (词形 - 拼写规律)
raw_config:
  【任务标题】
  购买葡萄
  【互动内容】
  任务：请描写你需要的水果
  答案：grape

status: generated
bitable_token: Nd8cb0tnKankIHsVgw1caL1Xn3f
db_table: middle_interaction_component
created_at: 2026-04-30 14:25:23
updated_at: 2026-04-30 14:25:23
final_config_json:
  {"cType": "mid_message_trace", "cId": "0000800", "title": "购买葡萄", "resourceMapping": {"Vicky": 658}, "cDesc": "You bought the fresh sweet grapes. (你买了新鲜香甜的葡萄。)", "question": {"desc": "请描写你需要的水果"}, "trace": "grape", "img": "0000800.png", "inputSet": []}

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


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: core
cType: core_writing_questionMakeSentence
type_name: 邮件组句
level: L1
unit_id: U14
knowledge_points_raw:
  That's why we have to...（结构）
  The job is...（结构）When will you arrive? （语义）

status: generated
bitable_token: M5oTwUP6wiImC4kVJU8cRYnfnyf
db_table: core_interaction_component
created_at: 2026-04-30 14:25:25
updated_at: 2026-04-30 14:25:25
raw_config:
  【任务名称】
   编写给 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
  【通过规则】
  用户写出：
  这份工作很重要。
  这就是我们为什么要留下。
  你什么时候将会到达？

final_config_json:
  {"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?（亲爱的丽贝卡：我知道你很担心。但这是我们探索漫游港的最佳机会。这项任务对我们来说很重要。这就是我们必须留下来的原因。你会不会在某一天来漫游港呢？你会什么时候到？）"}

kp_info_json:
  {"pushType": "relationKp", "cType": "core_writing_questionMakeSentence", "cId": "0000800", "kpInfo": [{"kpId": "0328017", "kpType": "sentence", "kpTitle": "The job is...", "kpSkill": "sentence_meaning", "kpSkillName": "语义", "candidates": [{"kp_id": "0328017", "type": "sentence", "title": "The job is...", "vala_level": "L2", "en_desc": ""}]}, {"kpId": null, "kpType": "sentence", "kpTitle": "这份工作......", "kpSkill": "sentence_meaning", "kpSkillName": "语义", "candidates": []}, {"kpId": "0328016", "kpType": "sentence", "kpTitle": "That's why we have to...", "kpSkill": "sentence_meaning", "kpSkillName": "语义", "candidates": [{"kp_id": "0328016", "type": "sentence", "title": "That's why we have to...", "vala_level": "L2", "en_desc": ""}]}, {"kpId": null, "kpType": "vocab", "kpTitle": "这就是为什么我们必须……", "kpSkill": "vocab_meaning", "kpSkillName": "词义", "candidates": []}, {"kpId": "0328014", "kpType": "sentence", "kpTitle": "When will you arrive?", "kpSkill": "sentence_meaning", "kpSkillName": "语义", "candidates": [{"kp_id": "0328014", "type": "sentence", "title": "When will you arrive?", "vala_level": "L2", "en_desc": ""}]}, {"kpId": null, "kpType": "vocab", "kpTitle": "你什么时候会到？", "kpSkill": "vocab_meaning", "kpSkillName": "词义", "candidates": []}]}

task_info_json:
  {"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?（亲爱的丽贝卡：我知道你很担心。但这是我们探索漫游港的最佳机会。这项任务对我们来说很重要。这就是我们必须留下来的原因。你会不会在某一天来漫游港呢？你会什么时候到？）"}

study_info_json:
  {"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": "答对啦！句子里的be动词是is，说明主语是单数，job作为单数可数名词符合这里的语法和语境，准确表达了“这份工作对我们很重要”的意思。"}}, {"option": "jobs", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这个选项不合适哦，jobs是job的复数形式，而句子后面的be动词用的是单数is，前后数不一致，所以不能选这个。"}}, {"option": "projects", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，projects是“项目”的复数形式，不仅和后面的单数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": "你接着向Rebecca说明，这就是你们必须留下来的原因，需要补全句子“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到达的时间，需要补全句子“___ you arrive?"}, "optionList": [{"option": "When will", "feedback": {"type": "npc", "npcName": "Brainy", "content": "太厉害啦！询问将来的动作“到达”要用一般将来时，“When will you arrive?”是询问对方何时到达的正确表达，符合邮件里询问Rebecca来的时间的语境。"}}, {"option": "When is", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，arrive是实义动词，不能和be动词is直接搭配使用，语法上是错误的，所以不能选这个。"}}, {"option": "How is", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这个选项不合适哦，首先语法上is不能和实义动词arrive搭配，其次how是询问方式，而这里你要询问的是到达的时间，语义也不匹配，再试一次吧。"}}], "answer": [0], "write": {"desc": "When will you arrive?", "trans": "你什么时候会到？"}, "feedback": {"type": "npc", "npcName": "Brainy", "content": "你写的很好！"}}]}], "closing": {"type": "npc", "npcName": "Brainy", "content": "恭喜你，你已经掌握了单词job、固定句型“That's why...”以及询问时间的句型“When will you arrive?”，可以顺利完成给Rebecca的邮件编写啦！"}}

intermediate_json:
  {"学习流程配置": "```\n# 问题1：\nBrainy: 你在邮件中向Rebecca解释留下的原因，提到这份工作对你们很重要。现在需要补全句子“The ___ is important for us.”\n用户选项:\n（选项 A）job [正确]\n  Brainy: 答对啦！句子里的be动词是is，说明主语是单数，job作为单数可数名词符合这里的语法和语境，准确表达了“这份工作对我们很重要”的意思。\n（选项 B）jobs\n  Brainy: 这个选项不合适哦，jobs是job的复数形式，而句子后面的be动词用的是单数is，前后数不一致，所以不能选这个。\n（选项 C）projects\n  Brainy: 不对哦，projects是“项目”的复数形式，不仅和后面的单数is不匹配，语义也不符合这里要表达的“工作”的含义，再试一下吧。\n\n# 问题2：\nBrainy: 你接着向Rebecca说明，这就是你们必须留下来的原因，需要补全句子“That's ___ we have to stay.”\n用户选项:\n（选项 A）why [正确]\n  Brainy: 太棒了！“That's why...”是固定表达，用来引出原因，正好符合这里解释留下来的理由的语境，用法完全正确。\n（选项 B）how\n  Brainy: 这个选项不对哦，how用来引导方式，这句话是要说明留下来的原因，不是说明留下来的方式，所以语义不匹配。\n（选项 C）which\n  Brainy: 不对哦，which是关系代词，通常在从句中充当主语、宾语等成分，而这里从句结构完整，不需要代词，而且也不符合表达原因的语境，再想想吧。\n\n# 问题3：\nBrainy: 你在邮件最后询问Rebecca到达的时间，需要补全句子“___ you arrive?”\n用户选项:\n（选项 A）When will [正确]\n  Brainy: 太厉害啦！询问将来的动作“到达”要用一般将来时，“When will you arrive?”是询问对方何时到达的正确表达，符合邮件里询问Rebecca来的时间的语境。\n（选项 B）When is\n  Brainy: 不对哦，arrive是实义动词，不能和be动词is直接搭配使用，语法上是错误的，所以不能选这个。\n（选项 C）How is\n  Brainy: 这个选项不合适哦，首先语法上is不能和实义动词arrive搭配，其次how是询问方式，而这里你要询问的是到达的时间，语义也不匹配，再试一次吧。\n```", "互动描述": "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?（亲爱的丽贝卡：我知道你很担心。但这是我们探索漫游港的最佳机会。这项任务对我们来说很重要。这就是我们必须留下来的原因。你会不会在某一天来漫游港呢？你会什么时候到？）"}

text_info_json:
  {"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]}]}

eval_info_json:
  {"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]}]}


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: mid
cType: mid_message_combine
type_name: 信息组句
level: L1
unit_id: U14
knowledge_points_raw: Grape (词形 - 拼写规律)
status: generated
bitable_token: TXYobOAuaakk6KslHp9caUB7nXa
db_table: middle_interaction_component
created_at: 2026-04-30 14:25:35
updated_at: 2026-04-30 14:25:35
raw_config:
  【任务标题】填写信息表【互动内容】任务描述：请在空白处填入正确的单词，组成句子选项1：is选项2：the visitor选项3：you invited选项4：Maeve答案：Is Maeve the visitor you invited?辅助信息：可以用 is 引导的一般疑问句询问；you invited 是 visitor 的后置定语

final_config_json:
  {"cType": "mid_message_combine", "cId": "0000800", "title": "填写信息表", "resourceMapping": {"Vicky": 658}, "cDesc": "You formed the sentence \"Is Maeve the visitor you invited?\".（你组成了句子“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": []}

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


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: mid
cType: mid_message_fillin
type_name: 信息补词
level: L1
unit_id: U14
knowledge_points_raw: Grape (词形 - 拼写规律)
raw_config:
  【任务标题】
  填写信息表
  【互动内容】
  任务描述：请在空白处填入正确的字母，组成完整单词
  题干：K(3)ledge
  答案：now
  辅助信息：需要填入的单词的中文释义是“知识”

status: generated
bitable_token: FxwMb8MJmarcRsso2tQcV8thn5g
db_table: middle_interaction_component
created_at: 2026-04-30 14:25:43
updated_at: 2026-04-30 14:25:43
final_config_json:
  {"cType": "mid_message_fillin", "cId": "0000800", "title": "填写信息表", "resourceMapping": {"Vicky": 658}, "cDesc": "You filled \"now\" in K(3)ledge to make \"knowledge\". (你填入now组成了单词knowledge（知识）。)", "question": {"desc": "请在空白处填入正确的字母，组成完整单词"}, "tip": "需要填入的单词的中文释义是“知识”", "inputConfig": [{"stem": "K(3)ledge", "value": "now"}], "img": "0000800.png", "inputSet": []}

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


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: mid
cType: mid_message_word
type_name: 信息填词
level: L1
unit_id: U14
knowledge_points_raw: Grape (词形 - 拼写规律)
raw_config:
  【任务标题】
  填写信息表
  【互动内容】
  任务描述：请在空白处填入合适的单词，使句意完整
  答案：knowledge, information
  辅助信息：需要填入的单词的中文释义是“知识”

status: generated
bitable_token: ElRebtQe3aeCyOsRjg6cEniznwg
db_table: middle_interaction_component
created_at: 2026-04-30 14:25:49
updated_at: 2026-04-30 14:25:49
final_config_json:
  {"cType": "mid_message_word", "cId": "0000800", "title": "填写信息表", "resourceMapping": {"Vicky": 658}, "cDesc": "You completed the info sheet with knowledge and information. (你完成了填写含有知识和信息的信息表。)", "question": {"desc": "请在空白处填入合适的单词，使句意完整"}, "tip": "需要填入的单词的中文释义是“知识”", "answer": ["knowledge", "information"], "img": "0000800.png", "inputSet": []}

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


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: mid
cType: mid_message_sentence
type_name: 信息填句
level: L1
unit_id: U14
knowledge_points_raw: Grape (词形 - 拼写规律)
status: generated
bitable_token: CNFgbIIszaPWXfsekt7cCZjHnVh
db_table: middle_interaction_component
created_at: 2026-04-30 14:25:54
updated_at: 2026-04-30 14:25:54
raw_config:
  【任务标题】
  填写信息表

  【互动内容】
  任务描述：请填入正确的内容，使句意完整
  推荐答案：The main purpose of this tour is to learn knowledge about local traditional crafts.
  辅助信息：你可以使用 The main purpose of this tour is...

final_config_json:
  {"cType": "mid_message_sentence", "cId": "0000800", "title": "填写信息表", "resourceMapping": {"Vicky": 658}, "cDesc": "You completed the information form with the correct sentence. (你填写好了信息表，填上了正确的句子。)", "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": []}

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


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: mid
cType: mid_image_multiple
type_name: 图片多选
level: L1
unit_id: U14
knowledge_points_raw: house
status: generated
bitable_token: XZo5bwagdau3VvsTDL9cJPrInQd
db_table: middle_interaction_component
created_at: 2026-04-30 14:26:10
updated_at: 2026-04-30 14:26:10
raw_config:
  【任务标题】
  选出需要修复的部分

  【情境引入】
  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.

  【后置对话】
  无

final_config_json:
  {"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 parts of the house. (你找到了房子的各个部分。)"}

kp_info_json:
  {"pushType": "relationKp", "cType": "mid_image_multiple", "cId": "0000800", "kpInfo": [{"kpId": null, "kpType": "vocab", "kpTitle": "house", "kpSkill": "vocab_meaning", "kpSkillName": "词义", "candidates": []}]}


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: core
cType: core_reading_order
type_name: 合作阅读
level: L1
unit_id: U14
knowledge_points_raw:
  club
  join
  member
  choose
  interested

status: generated
bitable_token: H6DJweNkpigCbak2Y5LcTZ8Vnfb
db_table: core_interaction_component
created_at: 2026-04-30 14:26:16
updated_at: 2026-04-30 14:26:16
raw_config:
[cell repeats an earlier one in this file: 2351 characters]

final_config_json:
  {"cType": "core_reading_order", "cId": "0000800", "title": "阅读Brainy的社团介绍", "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}}

kp_info_json:
[cell repeats an earlier one in this file: 865 characters]

task_info_json:
  {"cType": "core_reading_order", "cId": "0000800", "title": "阅读Brainy的社团介绍", "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}}

material_info_json:
[cell repeats an earlier one in this file: 2699 characters]

flow_info_json:
[cell repeats an earlier one in this file: 232 characters]

study_info_json:
  {"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": "我们先来认识这段话里的重点单词exam，exam的意思是考试，参加考试可以说take an exam。还有重点单词point，在这里的意思是积分、分数，获取积分可以说get points。", "npcName": "Brainy", "learning": [{"answer": [0], "meaning": "句意选择题", "optionList": [{"feedback": {"type": "npc", "content": "答对啦！你准确掌握了exam的意思，很棒哦~", "npcName": "Brainy"}, "option": "在瓦拉学院，先锋们不用考试。"}, {"feedback": {"type": "npc", "content": "不对哦，俱乐部的英文是club，不是我们这里讲的exam，再回忆一下这个单词的意思吧。", "npcName": "Brainy"}, "option": "在瓦拉学院，先锋们没有俱乐部。"}], "question": {"type": "npc", "npcName": "Brainy", "content": "我们来看包含重点单词exam的句子At Vala Academy, Pioneers don't have exams.是什么意思呢？"}}, {"answer": [1], "meaning": "句意选择题", "optionList": [{"feedback": {"type": "npc", "content": "不对哦，任务的英文是task，这里说的是points积分，再看看正确的意思吧。", "npcName": "Brainy"}, "option": "但是你需要完成任务才能升级。"}, {"feedback": {"type": "npc", "content": "太厉害了！你已经掌握了point在这句话里的含义啦~", "npcName": "Brainy"}, "option": "但是你需要积分才能升级。"}], "question": {"type": "npc", "npcName": "Brainy", "content": "接下来看看包含重点单词point的句子But you need points to level up!是什么意思呢？"}}, {"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的意思是俱乐部，加入俱乐部可以说join a club。还有重点单词choose，意思是选择，选择喜欢的东西可以说choose something you like。", "npcName": "Brainy", "learning": [{"answer": [1], "meaning": "句意选择题", "optionList": [{"feedback": {"type": "npc", "content": "不对哦，创建的英文是start，这里的choose是选择的意思，再回忆一下这个单词的含义吧。", "npcName": "Brainy"}, "option": "你可以创建你最喜欢的俱乐部。"}, {"feedback": {"type": "npc", "content": "回答正确！你已经掌握了choose和club这两个单词的意思啦~", "npcName": "Brainy"}, "option": "你可以选择你最喜欢的俱乐部加入。"}], "question": {"type": "npc", "npcName": "Brainy", "content": "我们先看包含choose的句子You can choose your favourite club to join.是什么意思呢？"}}, {"answer": [0], "meaning": "句意选择题", "optionList": [{"feedback": {"type": "npc", "content": "太棒啦！你准确理解了interested的意思和整个句子的含义~", "npcName": "Brainy"}, "option": "如果你对某件事感兴趣，你可以找到对应的俱乐部。"}, {"feedback": {"type": "npc", "content": "不对哦，擅长的英文是be good at，这里的be interested in是对……感兴趣的意思，再确认一下吧。", "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": "答对了！你完全理解了这段的核心意思，真厉害！", "npcName": "Brainy"}, "option": "你可以根据自己的兴趣选择对应的俱乐部加入。"}, {"feedback": {"type": "npc", "content": "不对哦，这段并没有提到俱乐部是否受欢迎的相关内容，再仔细看看段落内容吧。", "npcName": "Brainy"}, "option": "所有的俱乐部都非常受大家的欢迎。"}], "question": {"type": "npc", "npcName": "Brainy", "content": "我们来看看这段主要想告诉我们什么内容吧？"}}]}]}

intermediate_json:
  {"阅读材料格式化": "```\n# 材料2\n类型：电子屏\n标题：How to Join Clubs? \n正文:\n<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]\n```", "学习材料格式化": "```\n# 段落1\n重点词汇: \n正文:\n---\nAt Vala Academy, Pioneers don't have exams. But you need points to level up!\n---\n```\n```\n# 段落2\n重点词汇: \n正文:\n---\nYou can choose your favourite club to join. If you are interested in something, you can find a club for it.\n---\n```", "学习过程配置": "```\n# 段落1\n## 段落内容\n---\nAt Vala Academy, Pioneers don't have exams. But you need points to level up!\n---\n## 互动题目\nBrainy：我们先来认识这段话里的重点单词exam，exam的意思是考试，参加考试可以说take an exam。还有重点单词point，在这里的意思是积分、分数，获取积分可以说get points。\n1. 句意选择题\nBrainy：我们来看包含重点单词exam的句子At Vala Academy, Pioneers don't have exams.是什么意思呢？\n- 在瓦拉学院，先锋们不用考试。[正确]\n  Brainy：答对啦！你准确掌握了exam的意思，很棒哦~\n- 在瓦拉学院，先锋们没有俱乐部。\n  Brainy：不对哦，俱乐部的英文是club，不是我们这里讲的exam，再回忆一下这个单词的意思吧。\n2. 句意选择题\nBrainy：接下来看看包含重点单词point的句子But you need points to level up!是什么意思呢？\n- 但是你需要完成任务才能升级。\n  Brainy：不对哦，任务的英文是task，这里说的是points积分，再看看正确的意思吧。\n- 但是你需要积分才能升级。[正确]\n  Brainy：太厉害了！你已经掌握了point在这句话里的含义啦~\n3. 段落大意题\nBrainy：了解了单词和句子的意思，我们来看看这段主要讲了什么内容吧？\n- 瓦拉学院的先锋们不用考试，但是升级需要积分。[正确]\n  Brainy：完全正确！你抓住了段落的两个核心信息，太棒了！\n- 瓦拉学院的先锋们需要通过考试获得积分来升级。\n  Brainy：不对哦，文中明确说先锋们是没有考试的，再仔细读一遍段落内容吧。\n# 段落2\n## 段落内容\n---\nYou can choose your favourite club to join. If you are interested in something, you can find a club for it.\n---\n## 互动题目\nBrainy：我们来学习这段话里的重点单词club，club的意思是俱乐部，加入俱乐部可以说join a club。还有重点单词choose，意思是选择，选择喜欢的东西可以说choose something you like。\n1. 句意选择题\nBrainy：我们先看包含choose的句子You can choose your favourite club to join.是什么意思呢？\n- 你可以创建你最喜欢的俱乐部。\n  Brainy：不对哦，创建的英文是start，这里的choose是选择的意思，再回忆一下这个单词的含义吧。\n- 你可以选择你最喜欢的俱乐部加入。[正确]\n  Brainy：回答正确！你已经掌握了choose和club这两个单词的意思啦~\n2. 句意选择题\nBrainy：接下来看看包含interested的句子If you are interested in something, you can find a club for it.是什么意思呢？\n- 如果你对某件事感兴趣，你可以找到对应的俱乐部。[正确]\n  Brainy：太棒啦！你准确理解了interested的意思和整个句子的含义~\n- 如果你擅长某件事，你可以找到对应的俱乐部。\n  Brainy：不对哦，擅长的英文是be good at，这里的be interested in是对……感兴趣的意思，再确认一下吧。\n3. 段落大意题\nBrainy：我们来看看这段主要想告诉我们什么内容吧？\n- 你可以根据自己的兴趣选择对应的俱乐部加入。[正确]\n  Brainy：答对了！你完全理解了这段的核心意思，真厉害！\n- 所有的俱乐部都非常受大家的欢迎。\n  Brainy：不对哦，这段并没有提到俱乐部是否受欢迎的相关内容，再仔细看看段落内容吧。\n# 完结反馈\nBrainy：太棒啦！你已经完成了这两段内容的全部学习，知识点都掌握得很牢固哦，继续加油吧！\n```"}


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: mid
cType: mid_image_sequence
type_name: 图片有序
level: L1
unit_id: U14
knowledge_points_raw: ... one by one.
status: generated
bitable_token: BZWebQROpagkJ0sxArGcsBjwnCU
db_table: middle_interaction_component
created_at: 2026-04-30 14:26:18
updated_at: 2026-04-30 14:26:18
raw_config:
  【任务标题】排序跳格子顺序
  【情境引入】
  无

  【互动内容】
   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.

  【后置对话】
  无

final_config_json:
  {"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 arrange the hopscotch one by one. (你一个接一个地排列跳格子的顺序。)"}

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


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: mid
cType: mid_image_drag
type_name: 图片拖拽
level: L1
unit_id: U14
knowledge_points_raw: hammer （词义）
status: generated
bitable_token: Qqq9bVv19aH6LisRrsVcvf6xnqe
db_table: middle_interaction_component
created_at: 2026-04-30 14:26:31
updated_at: 2026-04-30 14:26:31
raw_config:
  【任务标题】
  选出正确的物品

  【情境引入】
  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!

final_config_json:
  {"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 found fish, crab and octopus in order. (你依次找到了鱼、螃蟹和章鱼。)"}

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


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试)
category: core
cType: core_writing_questionWrite
type_name: 邮件撰写
level: L1
unit_id: U14
knowledge_points_raw: That's why we have to...（结构）The job is...（结构）When will you arrive? （语义）
status: generated
bitable_token: Brn0wldKYizsLZkBqK6clp1tnKd
db_table: core_interaction_component
created_at: 2026-04-30 14:26:38
updated_at: 2026-04-30 14:26:38
raw_config:
[cell repeats an earlier one in this file: 863 characters]

final_config_json:
  {"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?（亲爱的丽贝卡：我知道你很担心。但这是我们探索漫游港的最佳机会。这项工作对我们来说很重要。这就是我们必须留下来的原因。你将来会来漫游港吗？如果会的话，你什么时候到呢？）"}

kp_info_json:
[cell repeats an earlier one in this file: 309 characters]

task_info_json:
  {"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?（亲爱的丽贝卡：我知道你很担心。但这是我们探索漫游港的最佳机会。这项工作对我们来说很重要。这就是我们必须留下来的原因。你将来会来漫游港吗？如果会的话，你什么时候到呢？）"}

study_info_json:
  {"learningPart": [{"leadIn": {"desc": "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!", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这个称呼比较随意，更适合日常很熟的朋友闲聊，写给担心你们安全的长辈/老师用这个不够正式哦，再试试吧。"}}, {"option": "Hello, I'm writing to you.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这不是邮件的开头称呼哦，写邮件第一步要先明确称呼收件人，再写正文内容，再想想正确的称呼是什么呀。"}}], "answer": [0], "write": {"desc": "Dear Rebecca,", "trans": "亲爱的丽贝卡："}, "feedback": {"type": "npc", "npcName": "Brainy", "content": "你写的很好！"}}, {"question": {"type": "npc", "npcName": "Brainy", "content": "你知道Rebecca担心你们的安全，需要先回应她的顾虑，同时说明留在Wander Port的原因，你会怎么说？"}, "optionList": [{"option": "I know you are worried. But this is our best chance to explore Wander Port.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "太对了！这句话既回应了Rebecca的担心，又清楚说明了你们想留下的原因，表达非常合适~"}}, {"option": "We are not afraid at all, so don't ask about us.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这样说太生硬啦，完全没有体谅Rebecca的关心，也没有说明你们留下的原因，不太合适哦。"}}, {"option": "Wander Port is very interesting, so we will play here for a few days.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句话只说了这里好玩想留下来玩，没有回应Rebecca的担心，也没有提到是探索任务的机会，不符合邮件要表达的意思哦。"}}], "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": "你写的很好！"}}, {"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是复数形式，如果用jobs的话，后面的be动词应该用are才对，不符合句子的语法要求，再想想呀。"}}, {"option": "projects", "feedback": {"type": "npc", "npcName": "Brainy", "content": "projects也是复数名词，同样和后面的is不搭配，而且语义也不符合这里要表达的意思哦。"}}], "answer": [0], "write": {"desc": "The job is important for us.", "trans": "这项工作对我们来说很重要。"}, "feedback": {"type": "npc", "npcName": "Brainy", "content": "你写的很好！"}}, {"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": "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": "完全正确！这句话用将来时的一般疑问句礼貌询问对方未来是否会来这里，表达非常准确~"}}, {"option": "Do you come to Wander Port every day?", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句话是问对方是不是每天都来Wander Port，和你要问的“未来某天会不会来”的意思完全不一样哦。"}}, {"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": "你写的很好！"}}, {"question": {"type": "npc", "npcName": "Brainy", "content": "你问完Rebecca是否会来之后，想接着问如果她来的话会什么时候到，空格里应该填什么呢？If so, _________ you arrive?"}, "optionList": [{"option": "when will", "feedback": {"type": "npc", "npcName": "Brainy", "content": "太棒啦！询问对方到达的时间要用疑问词when，而且将来时的疑问句里助动词will要放在主语you的前面，完全正确~"}}, {"option": "when is", "feedback": {"type": "npc", "npcName": "Brainy", "content": "arrive是实义动词，将来时的疑问句需要用助动词will，不能用be动词is哦，语法不对，再试试吧。"}}, {"option": "how is", "feedback": {"type": "npc", "npcName": "Brainy", "content": "how是询问方式的疑问词，这里你要问的是到达的时间，而且同样不能用be动词is搭配实义动词arrive哦。"}}], "answer": [0], "write": {"desc": "If so, when will you arrive?", "trans": "如果会的话，你什么时候到呢？"}, "feedback": {"type": "npc", "npcName": "Brainy", "content": "你写的很好！"}}]}], "closing": {"type": "npc", "npcName": "Brainy", "content": "恭喜你，你已经掌握了英文邮件的正式称呼Dear Rebecca,、回应他人关心并说明原因的表达I know you are worried. But this is our best chance to explore Wander Port.、核心短语The job is...、That's why we have to...，以及询问对方行程的句型Will you come to Wander Port some day?、when will you arrive?，成功完成了给Rebecca的邮件撰写！"}}

intermediate_json:
  {"学习流程配置": "```\n# 问题1：\nBrainy: 你要写邮件给Rebecca，首先需要正确的称呼开头，你应该怎么写？\n用户选项:\n（选项 A）Dear Rebecca, [正确]\n  Brainy: 太棒啦！这是英文邮件非常标准的礼貌开头称呼，完全正确~\n（选项 B）Hey Rebecca!\n  Brainy: 这个称呼比较随意，更适合日常很熟的朋友闲聊，写给担心你们安全的长辈/老师用这个不够正式哦，再试试吧。\n（选项 C）Hello, I'm writing to you.\n  Brainy: 这不是邮件的开头称呼哦，写邮件第一步要先明确称呼收件人，再写正文内容，再想想正确的称呼是什么呀。\n\n# 问题2：\nBrainy: 你知道Rebecca担心你们的安全，需要先回应她的顾虑，同时说明留在Wander Port的原因，你会怎么说？\n用户选项:\n（选项 A）I know you are worried. But this is our best chance to explore Wander Port. [正确]\n  Brainy: 太对了！这句话既回应了Rebecca的担心，又清楚说明了你们想留下的原因，表达非常合适~\n（选项 B）We are not afraid at all, so don't ask about us.\n  Brainy: 这样说太生硬啦，完全没有体谅Rebecca的关心，也没有说明你们留下的原因，不太合适哦。\n（选项 C）Wander Port is very interesting, so we will play here for a few days.\n  Brainy: 这句话只说了这里好玩想留下来玩，没有回应Rebecca的担心，也没有提到是探索任务的机会，不符合邮件要表达的意思哦。\n\n# 问题3：\nBrainy: 你想表达这项工作对你们来说很重要，空格里应该填哪个词呢？The ____ is important for us.\n用户选项:\n（选项 A）job [正确]\n  Brainy: 答对啦！句子里的be动词是is，说明主语是单数，job作为单数名词符合句子语法和语义哦。\n（选项 B）jobs\n  Brainy: jobs是复数形式，如果用jobs的话，后面的be动词应该用are才对，不符合句子的语法要求，再想想呀。\n（选项 C）projects\n  Brainy: projects也是复数名词，同样和后面的is不搭配，而且语义也不符合这里要表达的意思哦。\n\n# 问题4：\nBrainy: 你要承接上文，说明这就是你们必须留下来的原因，空格里应该填哪个词呢？That's ____ we have to stay.\n用户选项:\n（选项 A）why [正确]\n  Brainy: 非常好！\"That's why...\"是固定表达，意思是“这就是……的原因”，正好对应前面说的工作很重要所以要留下的逻辑哦。\n（选项 B）how\n  Brainy: \"That's how...\"是表达“这就是做……的方式”，放在这里语义不通，我们要说明的是留下的原因，不是留下的方式哦。\n（选项 C）which\n  Brainy: which一般用来引导定语从句指代事物，放在这里句子逻辑不通顺哦，再想想哪个词能表示原因呀。\n\n# 问题5：\nBrainy: 你想询问Rebecca是否有一天会来Wander Port，你会怎么说？\n用户选项:\n（选项 A）Will you come to Wander Port some day? [正确]\n  Brainy: 完全正确！这句话用将来时的一般疑问句礼貌询问对方未来是否会来这里，表达非常准确~\n（选项 B）Do you come to Wander Port every day?\n  Brainy: 这句话是问对方是不是每天都来Wander Port，和你要问的“未来某天会不会来”的意思完全不一样哦。\n（选项 C）When will you come to Wander Port?\n  Brainy: 这句话是直接问对方什么时候来，但你还不知道对方会不会来呢，要先问是否会来，再问时间哦。\n\n# 问题6：\nBrainy: 你问完Rebecca是否会来之后，想接着问如果她来的话会什么时候到，空格里应该填什么呢？If so, _________ you arrive?\n用户选项:\n（选项 A）when will [正确]\n  Brainy: 太棒啦！询问对方到达的时间要用疑问词when，而且将来时的疑问句里助动词will要放在主语you的前面，完全正确~\n（选项 B）when is\n  Brainy: arrive是实义动词，将来时的疑问句需要用助动词will，不能用be动词is哦，语法不对，再试试吧。\n（选项 C）how is\n  Brainy: how是询问方式的疑问词，这里你要问的是到达的时间，而且同样不能用be动词is搭配实义动词arrive哦。\n```", "互动描述": "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（亲爱的丽贝卡：我知道你很担心。但这是我们探索漫游港的最佳机会。这项工作对我们来说很重要。这就是我们必须留下来的原因。你将来会来漫游港吗？如果会的话，你什么时候到呢？）"}

text_info_json:
  {"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）到达？"}]}

eval_info_json:
  {"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）到达？"}]}


