# components

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:26:45
updated_at: 2026-04-30 14:26:45
raw_config:
[cell repeats an earlier one in this file: 173 characters]

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:
[cell repeats an earlier one in this file: 210 characters]


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:27:00
updated_at: 2026-04-30 14:27:00
final_config_json:
  {"cType": "mid_message_trace", "cId": "0000800", "title": "购买葡萄", "resourceMapping": {"Vicky": 658}, "cDesc": "You bought the grape you needed. (你购买了需要的葡萄。)", "question": {"desc": "请描写你需要的水果"}, "trace": "grape", "img": "0000800.png", "inputSet": []}

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


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:27:01
updated_at: 2026-04-30 14:27:01
raw_config:
[cell repeats an earlier one in this file: 747 characters]

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": "你和本交流河马的栖息地，得知河马生活在湖里，顺利填好了句子空白，离打开城堡大门更近了一步。你和布莱尼聊起动物园里的其他存在，了解到树也是动物园环境的一部分，帮你完成了相关内容，继续探索单词城堡。"}

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

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": "你和本交流河马的栖息地，得知河马生活在湖里，顺利填好了句子空白，离打开城堡大门更近了一步。你和布莱尼聊起动物园里的其他存在，了解到树也是动物园环境的一部分，帮你完成了相关内容，继续探索单词城堡。"}

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": "答对啦！河马是生活在湖里的，这句话的意思是“在湖里”，快大声把这个回答读出来吧~"}}, {"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": "答对啦！动物园里会有树木给动物们提供阴凉，你选对了，快把这个答案读出来吧~"}}, {"option": "grass", "feedback": {"type": "npc", "npcName": "Brainy", "content": "grass是草，不是这里要选的哦，再试一次吧~"}}], "answer": [1]}]}], "closing": {"type": "npc", "npcName": "Brainy", "content": "太棒了！你已经完成了所有的题目，还学会了lake、tree这些单词的用法，也知道了怎么回答关于地点和事物的问题，你的英语又进步啦！"}}

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：答对啦！河马是生活在湖里的，这句话的意思是“在湖里”，快大声把这个回答读出来吧~\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：答对啦！动物园里会有树木给动物们提供阴凉，你选对了，快把这个答案读出来吧~\n- 选项 C：grass\n  Brainy：grass是草，不是这里要选的哦，再试一次吧~\n\n---\n# 完结反馈\nBrainy：太棒了！你已经完成了所有的题目，还学会了lake、tree这些单词的用法，也知道了怎么回答关于地点和事物的问题，你的英语又进步啦！\n```", "互动描述": "You chat with Ben about hippos' home, and figure out that hippos live in the lake, which fills the blank in the sentence smoothly to get closer to opening the castle gate.（你和本交流河马的栖息地，得知河马生活在湖里，顺利填好了句子空白，离打开城堡大门更近了一步。）\nYou talk with Brainy about zoo animals, and learn that trees are also part of the zoo environment, which helps you complete the relevant content to continue exploring the word castle.（你和布莱尼聊起动物园里的其他存在，了解到树也是动物园环境的一部分，帮你完成了相关内容，继续探索单词城堡。）"}

question_group_json:
[cell repeats an earlier one in this file: 446 characters]


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:27:20
updated_at: 2026-04-30 14:27:20
raw_config:
[cell repeats an earlier one in this file: 170 characters]

final_config_json:
  {"cType": "mid_message_combine", "cId": "0000800", "title": "填写信息表", "resourceMapping": {"Vicky": 658}, "cDesc": "You wrote \"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:
[cell repeats an earlier one in this file: 228 characters]


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:27:26
updated_at: 2026-04-30 14:27:26
final_config_json:
  {"cType": "mid_message_fillin", "cId": "0000800", "title": "填写信息表", "resourceMapping": {"Vicky": 658}, "cDesc": "You filled in \"now\" to make the word \"knowledge\". (你填入“now”组成了单词“知识”。)", "question": {"desc": "请在空白处填入正确的字母，组成完整单词"}, "tip": "需要填入的单词的中文释义是“知识”", "inputConfig": [{"stem": "K(3)ledge", "value": "now"}], "img": "0000800.png", "inputSet": []}

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


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:27:33
updated_at: 2026-04-30 14:27:33
final_config_json:
  {"cType": "mid_message_word", "cId": "0000800", "title": "填写信息表", "resourceMapping": {"Vicky": 658}, "cDesc": "You filled \"knowledge\" in the information form.（你在信息表中填入了“知识”。）", "question": {"desc": "请在空白处填入合适的单词，使句意完整"}, "tip": "需要填入的单词的中文释义是“知识”", "answer": ["knowledge", "information"], "img": "0000800.png", "inputSet": []}

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


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:27:49
updated_at: 2026-04-30 14:27:49
raw_config:
[cell repeats an earlier one in this file: 199 characters]

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 in the right river section. (你在合适的河段找到了温暖的水。)"}

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


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:27:57
updated_at: 2026-04-30 14:27:57
raw_config:
[cell repeats an earlier one in this file: 242 characters]

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 parts of the house. (你找到了房子的组成部分。)"}

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


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:28:08
updated_at: 2026-04-30 14:28:08
raw_config:
[cell repeats an earlier one in this file: 180 characters]

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:
[cell repeats an earlier one in this file: 225 characters]


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:28:14
updated_at: 2026-04-30 14:28:14
raw_config:
[cell repeats an earlier one in this file: 295 characters]

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": ["00", "02", "01"], "preDialog": [{"type": "npc", "npcName": "Sarah", "content": "Look! So many gloves there!"}], "tip": "fish 指“鱼”；crab 指“螃蟹”；octopus 指“章鱼”", "corFeedback": {"type": "npc", "npcName": "Daisy", "content": "Yes! You got it right!"}, "errFeedback": {"type": "npc", "npcName": "Daisy", "content": "This doesn't seem like a crab."}, "postDialog": [{"type": "npc", "npcName": "Daisy", "content": "very good!"}], "cDesc": "You found fish, crab and octopus in order. (你依次找到了鱼、螃蟹和章鱼。)"}

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


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:28:22
updated_at: 2026-04-30 14:28:22
raw_config:
[cell repeats an earlier one in this file: 998 characters]

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

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

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": "太棒啦，你回答得完全正确！跟着我把这句话大声读出来吧：The elephant needs a shower. Let's set up a shower for her."}}, {"option": "The elephant is eating bananas happily.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这个句子说的是大象正在开心地吃香蕉，和现在要表达大象需要洗澡的情境不匹配哦，再选一次试试吧~"}}, {"option": "We want to borrow some bananas for 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 keepers to come and help.", "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": "你选对啦！太厉害啦，跟着我把这句话读一遍吧：Instead of waiting here, we'd better get some water for her first."}}, {"option": "We don't have time to help the elephant today.", "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": "完全正确！你表现得超棒，跟着我读出这句话吧：We'd love to help."}}, {"option": "We are too busy to help her.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句话是说我们太忙了帮不了她，和我们要表达的乐意帮忙的意思不一样哦，再选一次吧~"}}, {"option": "We don't know how to take a shower.", "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：太棒啦，你回答得完全正确！跟着我把这句话大声读出来吧：The elephant needs a shower. Let's set up a shower for her.\n（B）The elephant is eating bananas happily.\n  Brainy：这个句子说的是大象正在开心地吃香蕉，和现在要表达大象需要洗澡的情境不匹配哦，再选一次试试吧~\n（C）We want to borrow some bananas for 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 keepers to come and help.\n  Brainy：这句话的意思是我们可以等饲养员过来帮忙，和我们要表达“不等了先去拿水”的意思正好相反哦，再选一次吧~\n（B）Instead of waiting here, we'd better get some water for her first. ✅\n  Brainy：你选对啦！太厉害啦，跟着我把这句话读一遍吧：Instead of waiting here, we'd better get some water for her first.\n（C）We don't have time to help the elephant today.\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：完全正确！你表现得超棒，跟着我读出这句话吧：We'd love to help.\n（B）We are too busy to help her.\n  Brainy：这句话是说我们太忙了帮不了她，和我们要表达的乐意帮忙的意思不一样哦，再选一次吧~\n（C）We don't know how to take a shower.\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. 如果用户没有直接说愿意帮忙，可以再重复一次问题引导用户回答，最多重复2次。\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,banana"}

dialog_config_json:
  {"config": {"asrPrompt": "elephant,shower,water,keepers,help,clean,Wander Port,banana", "promptInfo": {"default": "\n# 1. 角色（你要扮演谁）\n你是Logan，在Wander Port的清洁站工作。你的语言风格亲切易懂，适合儿童理解。\n# 2. 任务（你如何参与对话）\n1. 开场白首先询问用户大象遇到了什么情况，确认大象是不是需要洗澡。\n2. 得到大象需要洗澡的回答后，你要表达惊讶，询问是不是还没人给她洗澡，接着告知用户可以稍等一会，也许饲养员很快就会过来。\n3. 之后询问用户是否愿意帮忙给大象洗澡。\n4. 如果用户表示愿意帮忙，要先对用户表示感谢，接着告知对方你会立刻送干净的水过去，友好结束对话。\n5. 如果用户没有直接说愿意帮忙，可以再重复一次问题引导用户回答，最多重复2次。\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_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:29:33
updated_at: 2026-04-30 14:29:33
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:
[cell repeats an earlier one in this file: 642 characters]

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": "这里是航班上的服务，不需要询问毛巾的价格哦，你只需要提出要毛巾的需求就可以啦，再试一次吧。"}}], "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": "When does the gym close?", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句话是询问健身房关门时间的，现在你要问的是在健身房里可以做什么哦，再试一次吧。"}}, {"option": "How many people are there in the gym?", "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": "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 is the restroom?\n  Brainy：这句话是询问洗手间位置的，你现在需要的是索要毛巾哦，再试一次吧。\n（选项 B）Can I have a towel please? [正确]\n  Brainy：太棒了！你正确地表达了想要毛巾的需求。请大声朗读这句话！\n（选项 C）How much is the towel?\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）When does the gym close?\n  Brainy：这句话是询问健身房关门时间的，现在你要问的是在健身房里可以做什么哦，再试一次吧。\n（选项 C）How many people are there in the gym?\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# 2. 任务（你如何参与到整个对话）\n- 你只在用户提问时提供特定信息，不主动透露知识库中的信息。\n- 如果用户提问的内容在知识库范围内，你会准确回答。\n- 如果用户的问题不清晰，你会尝试确认问题。\n- 一般情况下，一次最多只回答知识库中的一条信息，除非用户明确地分别提问到多条信息。\n- 如果用户不提问，你会温和、自然地进行交谈。\n# 3. 背景信息\n你是 Chloe，是 Twilight 的空乘，服务好每一位乘客是你的使命。用户之前帮你在另一位乘客面前解了围，你很感谢用户的帮忙，对用户的态度也格外友善热情。你发现用完餐的用户正在东张西望，似乎在寻找什么，你确认用户需要帮助，于是上前询问。你发现用户想去健身房消消食，但是不知道方向，于是回答了用户的问题，提供了你的帮助。\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,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# 3. 背景信息\n你是 Chloe，是 Twilight 的空乘，服务好每一位乘客是你的使命。用户之前帮你在另一位乘客面前解了围，你很感谢用户的帮忙，对用户的态度也格外友善热情。你发现用完餐的用户正在东张西望，似乎在寻找什么，你确认用户需要帮助，于是上前询问。你发现用户想去健身房消消食，但是不知道方向，于是回答了用户的问题，提供了你的帮助。\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 的空乘，服务好每一位乘客是你的使命。用户之前帮你在另一位乘客面前解了围，你很感谢用户的帮忙，对用户的态度也格外友善热情。你发现用完餐的用户正在东张西望，似乎在寻找什么，你确认用户需要帮助，于是上前询问。你发现用户想去健身房消消食，但是不知道方向，于是回答了用户的问题，提供了你的帮助。", "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:30:29
updated_at: 2026-04-30 14:30:29
raw_config:
[cell repeats an earlier one in this file: 559 characters]

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:
[cell repeats an earlier one in this file: 462 characters]

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": "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": "You know a lot about winter! Great job!"}}]}], "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:
[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:31:19
updated_at: 2026-04-30 14:31:19
raw_config:
[cell repeats an earlier one in this file: 2377 characters]

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:
[cell repeats an earlier one in this file: 739 characters]

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

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": "Oops，这句话说到了 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", "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，意思是在家烘焙。正确的发音是 /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：Oops，这句话说到了 buy at the shop，并没有我们听到的 bake at home 哦，再仔细听一遍音频试试看吧！\n\n2. 听音选意\nBrainy：现在我们已经听清楚句子啦，那它是什么意思呢？快来选选正确的翻译吧！\n- 当你特别想吃甜食，比如饼干或者蛋糕的时候，你可以在家烘焙。[正确]\n  - Brainy：答对啦！你完全理解了这句话的意思，还掌握了 bake at home 这个实用的短语，太厉害了！\n- 当你特别想吃甜食，比如饼干或者蛋糕的时候，你可以去商店购买。\n  - Brainy：这句话说的是去商店购买哦，和我们听到的句子内容不一样，再仔细回忆一下刚刚的音频内容吧～\n---\n# 完成反馈\nBrainy：很好！你已经回答完了全部问题，相信你已经听懂了这个任务中所有的重点句子。现在让我们来查看结果吧!\n```", "互动描述": "You listened to the audio clip How to live a healthy life? and learned that we should go to bed on time and get up early, and stay away from smoking and alcohol.（你听了《如何健康生活》的音频片段，了解到我们应该按时早睡早起，并且远离烟酒。）\nYou also got to know that keeping healthy does not need much money or expensive things, and good habits are the most important for a healthy body.（你还了解到保持健康不需要很多钱或者昂贵的物品，好习惯对健康的身体来说才是最重要的。）"}


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:32:08
updated_at: 2026-04-30 14:32:08
raw_config:
[cell repeats an earlier one in this file: 1095 characters]

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:
[cell repeats an earlier one in this file: 898 characters]

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 summer!", "feedback": {"type": "npc", "content": "太厉害啦！你准确听出了句子里的summer哦！", "npcName": "Brainy"}}, {"option": "This winter!", "feedback": {"type": "npc", "content": "哎呀，这句话里的是winter（冬天），不是我们听到的summer哦，再仔细听听看吧！", "npcName": "Brainy"}}], "answer": [0]}, {"question": {"content": "This summer!", "type": "npc", "npcName": "Brainy"}, "extendQuestion": {"content": "这句话的中文意思是“这个冬天！”，你觉得对不对呀？", "type": "npc", "npcName": "Brainy"}, "optionList": [{"option": "对 / Yes", "feedback": {"type": "npc", "content": "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 summer! [正确]\n  - Brainy：太厉害啦！你准确听出了句子里的summer哦！\n- This winter!\n  - Brainy：哎呀，这句话里的是winter（冬天），不是我们听到的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:33:46
updated_at: 2026-04-30 14:33:46
raw_config:
[cell repeats an earlier one in this file: 975 characters]

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:
[cell repeats an earlier one in this file: 1253 characters]

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什么时候会到，现在需要补全句子\"___ you arrive?\""}, "optionList": [{"option": "When will", "feedback": {"type": "npc", "npcName": "Brainy", "content": "答对啦！询问将来的时间要用一般将来时，\"When will you arrive?\"是正确的表达，准确问出了“你什么时候会到？”。"}}, {"option": "When is", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，句子里已经有实义动词\"arrive\"了，不能再用be动词\"is\"，语法是错误的，再试试吧。"}}, {"option": "How is", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，首先这里是要询问时间不是方式，而且\"is\"也不能和实义动词\"arrive\"原形搭配使用，再想想正确的表达吧。"}}], "answer": [0], "write": {"desc": "When will you arrive?", "trans": "你什么时候会到？"}, "feedback": {"type": "npc", "npcName": "Brainy", "content": "你写的很好！"}}]}], "closing": {"type": "npc", "npcName": "Brainy", "content": "恭喜你，你已经掌握了短语“The job is...”、“That's why we have to...”以及句型“When will you arrive?”，能够准确完成给Rebecca的邮件编写啦！"}}

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什么时候会到，现在需要补全句子\"___ you arrive?\"\n用户选项:\n（选项 A）When will [正确]\n  Brainy: 答对啦！询问将来的时间要用一般将来时，\"When will you arrive?\"是正确的表达，准确问出了“你什么时候会到？”。\n（选项 B）When is\n  Brainy: 不对哦，句子里已经有实义动词\"arrive\"了，不能再用be动词\"is\"，语法是错误的，再试试吧。\n（选项 C）How is\n  Brainy: 不对哦，首先这里是要询问时间不是方式，而且\"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... 这份工作...... That's why we have to... 这就是为什么我们必须…… When will you arrive? 你什么时候会到？", "passCondition": "用户写出：这份工作很重要。这就是我们为什么要留下。你什么时候将会到达？", "textList": [{"mode": "preset", "desc": "Dear Rebecca,"}, {"mode": "preset", "desc": "I know you are worried. But this is our best chance to explore Wander Port."}, {"mode": "fillingInput", "desc": "The ___ is important for us.", "optionList": [{"option": "job"}, {"option": "jobs"}, {"option": "projects"}], "answer": [0]}, {"mode": "fillingInput", "desc": "That's ___ we have to stay.", "optionList": [{"option": "why"}, {"option": "how"}, {"option": "which"}], "answer": [0]}, {"mode": "preset", "desc": "Will you come to Wander Port some day?"}, {"mode": "fillingInput", "desc": " ___ you arrive?", "optionList": [{"option": "When will"}, {"option": "When is"}, {"option": "How is"}], "answer": [0]}]}


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:35:06
updated_at: 2026-04-30 14:35:06
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.Ask her when she will arrive."}, "learning": [{"question": {"type": "npc", "npcName": "Brainy", "content": "你打算给Rebecca回邮件，首先需要写合适的称呼，以下哪个是正确的开头？"}, "optionList": [{"option": "Dear Rebecca,", "feedback": {"type": "npc", "npcName": "Brainy", "content": "太棒啦！这是英文邮件非常标准的称呼写法，很适合写给Rebecca的开头哦。"}}, {"option": "Hello Rebecca is:", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这个表达有语法错误，英文称呼不需要加be动词，也不用冒号在名字后面哦，再试试吧。"}}, {"option": "Rebecca you know:", "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": "I know you are happy. But we don't want to explore Wander Port.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，Rebecca是担心你们的安全，而且你们是想要留下探索，和这个选项的意思完全相反啦。"}}, {"option": "You are worried. So we can't explore 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动词are，和句子里的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": "你写的很好！"}}, {"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是用来询问方式的，\"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": "你写的很好！"}}, {"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": "Are you come to Wander Port some day?", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句话有语法错误哦，be动词不能直接和动词原形come搭配使用，询问将来的动作应该用will来引导哦。"}}, {"option": "Do you come to Wander Port yesterday?", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，yesterday是昨天，是过去的时间，和你想询问未来的情况不符，时态和语义都不对哦。"}}], "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 arrive\"是正确的询问到达时间的表达哦。"}}, {"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": "恭喜你，你已经掌握了英文邮件的正确称呼写法，还学会了用固定搭配\"That's why...\"说明原因，以及用一般将来时询问对方未来的计划，成功完成了给Rebecca的邮件编写！"}}

intermediate_json:
  {"学习流程配置": "```\n# 问题1：\nBrainy: 你打算给Rebecca回邮件，首先需要写合适的称呼，以下哪个是正确的开头？\n用户选项:\n（选项 A）Dear Rebecca, [正确]\n  Brainy: 太棒啦！这是英文邮件非常标准的称呼写法，很适合写给Rebecca的开头哦。\n（选项 B）Hello Rebecca is:\n  Brainy: 这个表达有语法错误，英文称呼不需要加be动词，也不用冒号在名字后面哦，再试试吧。\n（选项 C）Rebecca you know:\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）I know you are happy. But we don't want to explore Wander Port.\n  Brainy: 不对哦，Rebecca是担心你们的安全，而且你们是想要留下探索，和这个选项的意思完全相反啦。\n（选项 C）You are worried. So we can't explore 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动词are，和句子里的is不匹配哦。\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: 不对哦，how是用来询问方式的，\"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）Are you come to Wander Port some day?\n  Brainy: 这句话有语法错误哦，be动词不能直接和动词原形come搭配使用，询问将来的动作应该用will来引导哦。\n（选项 C）Do you come to Wander Port yesterday?\n  Brainy: 不对哦，yesterday是昨天，是过去的时间，和你想询问未来的情况不符，时态和语义都不对哦。\n\n# 问题6：\nBrainy: 你想接着问如果Rebecca来的话，会什么时候到达，句子\"If so, _________ you arrive?\"的空格里应该填什么内容呢？\n用户选项:\n（选项 A）when will [正确]\n  Brainy: 答对啦！询问将来的时间要用一般将来时，\"when will you arrive\"是正确的询问到达时间的表达哦。\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": "Dear Rebecca,"}, {"mode": "preset", "desc": "I know you are worried. But this is our best chance to explore Wander Port.", "answerText": "I know you are worried. But this is our best chance to explore Wander Port."}, {"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": "Will you come to Wander Port some day?"}, {"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": "Dear Rebecca,"}, {"mode": "preset", "desc": "I know you are worried. But this is our best chance to explore Wander Port.", "answerText": "I know you are worried. But this is our best chance to explore Wander Port."}, {"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": "Will you come to Wander Port some day?"}, {"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:35:28
updated_at: 2026-04-30 14:35:28
final_config_json:
  {"cType": "mid_message_trace", "cId": "0000800", "title": "购买葡萄", "resourceMapping": {"Vicky": 658}, "cDesc": "You bought the fresh grapes as you needed. (你购买了你需要的葡萄。)", "question": {"desc": "请描写你需要的水果"}, "trace": "grape", "img": "0000800.png", "inputSet": []}

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


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:35:34
updated_at: 2026-04-30 14:35:34
raw_config:
[cell repeats an earlier one in this file: 121 characters]

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:
[cell repeats an earlier one in this file: 226 characters]


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:35:41
updated_at: 2026-04-30 14:35:41
raw_config:
[cell repeats an earlier one in this file: 170 characters]

final_config_json:
  {"cType": "mid_message_combine", "cId": "0000800", "title": "填写信息表", "resourceMapping": {"Vicky": 658}, "cDesc": "You completed the sentence \"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:
[cell repeats an earlier one in this file: 228 characters]


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:35:48
updated_at: 2026-04-30 14:35:48
final_config_json:
  {"cType": "mid_message_fillin", "cId": "0000800", "title": "填写信息表", "resourceMapping": {"Vicky": 658}, "cDesc": "You filled in \"now\" to complete the word knowledge.（你填入了\"now\"补全了单词“知识”。）", "question": {"desc": "请在空白处填入正确的字母，组成完整单词"}, "tip": "需要填入的单词的中文释义是“知识”", "inputConfig": [{"stem": "K(3)ledge", "value": "now"}], "img": "0000800.png", "inputSet": []}

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


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:35:55
updated_at: 2026-04-30 14:35:55
final_config_json:
  {"cType": "mid_message_word", "cId": "0000800", "title": "填写信息表", "resourceMapping": {"Vicky": 658}, "cDesc": "You filled in \"knowledge\" and \"information\" correctly. (你正确填入了“知识”对应的单词。)", "question": {"desc": "请在空白处填入合适的单词，使句意完整"}, "tip": "需要填入的单词的中文释义是“知识”", "answer": ["knowledge", "information"], "img": "0000800.png", "inputSet": []}

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


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:36:02
updated_at: 2026-04-30 14:36:02
raw_config:
[cell repeats an earlier one in this file: 176 characters]

final_config_json:
  {"cType": "mid_message_sentence", "cId": "0000800", "title": "填写信息表", "resourceMapping": {"Vicky": 658}, "cDesc": "You filled out 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:
[cell repeats an earlier one in this file: 229 characters]


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:36:10
updated_at: 2026-04-30 14:36:10
raw_config:
[cell repeats an earlier one in this file: 199 characters]

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 to get. (你找到了要取的温暖的水。)"}

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


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:36:20
updated_at: 2026-04-30 14:36:20
raw_config:
[cell repeats an earlier one in this file: 242 characters]

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

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


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:36:30
updated_at: 2026-04-30 14:36:30
raw_config:
[cell repeats an earlier one in this file: 180 characters]

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

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


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 14:40:18
updated_at: 2026-04-30 14:40:18
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: 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:41:25
updated_at: 2026-04-30 14:41:25
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": "你在神奇单词城堡里读到关于河马栖息地的问题，填入单词lake，了解到河马生活在湖里，接着你思考动物园里的其他动物相关内容，选出单词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": "你在神奇单词城堡里读到关于河马栖息地的问题，填入单词lake，了解到河马生活在湖里，接着你思考动物园里的其他动物相关内容，选出单词tree，回忆起很多动物园里的动物都在树的周边或树上生活。"}

study_info_json:
  {"learningPart": [{"image": "1201001_02.png", "learning": [{"question": {"type": "npc", "npcName": "Brainy", "content": "这道题我们要学习名词lake的用法哦，lake的意思是“湖”，我们来看看哪个选项是它的正确释义吧~"}, "optionList": [{"option": "树", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这个选项不对哦，“树”对应的英文单词是tree，不是lake，再试试吧~"}}, {"option": "湖", "feedback": {"type": "npc", "npcName": "Brainy", "content": "答对啦！lake的中文意思就是湖，你掌握得很棒哦~"}}], "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": "这道题我们要区分三个名词的意思，我们先来复习一下哦：lake是湖，tree是树，grass是草。现在来考考你，哪个单词是“树”的意思呀？"}, "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": "不对哦，虽然动物园里可能有小湖，但这不是我们这道题的正确答案，再想想还有什么是动物园里常见的呀，再选一次吧~"}}, {"option": "tree", "feedback": {"type": "npc", "npcName": "Brainy", "content": "答对啦！动物园里会种很多树，所以tree是符合题意的~ 现在试着大声把\"tree\"这个单词读出来吧~"}}, {"option": "grass", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，草虽然也可能在动物园里出现，但这不是本题的正确答案，再想想更典型的选项吧，重新选一次哦~"}}], "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：这道题我们要学习名词lake的用法哦，lake的意思是“湖”，我们来看看哪个选项是它的正确释义吧~\n- 选项 A：树\n  Brainy：这个选项不对哦，“树”对应的英文单词是tree，不是lake，再试试吧~\n- 选项 B：湖[正确]\n  Brainy：答对啦！lake的中文意思就是湖，你掌握得很棒哦~\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：这道题我们要区分三个名词的意思，我们先来复习一下哦：lake是湖，tree是树，grass是草。现在来考考你，哪个单词是“树”的意思呀？\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：不对哦，虽然动物园里可能有小湖，但这不是我们这道题的正确答案，再想想还有什么是动物园里常见的呀，再选一次吧~\n- 选项 B：tree[正确]\n  Brainy：答对啦！动物园里会种很多树，所以tree是符合题意的~ 现在试着大声把\"tree\"这个单词读出来吧~\n- 选项 C：grass\n  Brainy：不对哦，草虽然也可能在动物园里出现，但这不是本题的正确答案，再想想更典型的选项吧，重新选一次哦~\n\n---\n# 完结反馈\nBrainy：太棒了！你已经完成了所有的题目，还复习了lake、tree、grass这些核心词汇的意思和用法，又进步了一大截哦，继续加油！\n```", "互动描述": "To open the gate of the magic word castle, you read the question about where hippos live and fill the blank with \"lake\", knowing that hippos make their homes in the lake（你在神奇单词城堡里读到关于河马栖息地的问题，填入单词lake，了解到河马生活在湖里）.\nThen you think about the other animals in the zoo, and pick \"tree\" as the related element, remembering that many zoo animals live around or in the trees（接着你思考动物园里的其他动物相关内容，选出单词tree，回忆起很多动物园里的动物都在树的周边或树上生活）."}

question_group_json:
[cell repeats an earlier one in this file: 446 characters]


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:41:44
updated_at: 2026-04-30 14:41:45
raw_config:
[cell repeats an earlier one in this file: 998 characters]

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

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

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 hungry. Let's give her some bananas.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这个选项说的是大象饿了要给它喂香蕉，但是我们现在是要告诉Logan大象需要洗澡哦，不对哦，再选一次吧~"}}, {"option": "The elephant is lost. Let's help her find the keeper.", "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": "You are right. Let's wait for the keepers 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": "Let's go to the zoo to see other animals first.", "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": "No, we are very busy now.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句话是说我们很忙没办法帮忙，和我们本来愿意帮忙的想法不一样哦，再选一次吧~"}}, {"option": "We have no time to take a shower now.", "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用户选项:\nA. The elephant needs a shower. Let's set up a shower for her.\n  Brainy：回答正确呀！太棒了，你试着把这句话大声读出来吧~\nB. The elephant is hungry. Let's give her some bananas.\n  Brainy：这个选项说的是大象饿了要给它喂香蕉，但是我们现在是要告诉Logan大象需要洗澡哦，不对哦，再选一次吧~\nC. The elephant is lost. Let's help her find the keeper.\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用户选项:\nA. You are right. Let's wait for the keepers here.\n  Brainy：这个选项是说我们就在这儿等饲养员，和我们想要主动先去打水的想法不一样哦，再选一次吧~\nB. Instead of waiting here, we'd better get some water for her first.\n  Brainy：完全正确！你太厉害了，试着把这句话大声读一遍吧~\nC. Let's go to the zoo to see other animals first.\n  Brainy：这句话说我们先去动物园看其他动物，现在我们要先解决大象洗澡的问题哦，这个回答不合适，再试试吧~\nLogan：The keepers are too careless! Thank you! Can you help her shower?\n\n# 中间回合3\nBrainy：Logan说饲养员太粗心了，还问你能不能帮忙给大象洗澡，你要告诉他你们很乐意帮忙哦。\n用户选项:\nA. We'd love to help.\n  Brainy：回答正确！你真的很棒哦，来把这句话大声读出来吧~\nB. No, we are very busy now.\n  Brainy：这句话是说我们很忙没办法帮忙，和我们本来愿意帮忙的想法不一样哦，再选一次吧~\nC. We have no time to take a shower now.\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. 如果用户表达了和任务无关的内容，友好把话题拉回大象洗澡的相关事情上，不要偏离主线任务。\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,wash,banana"}

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


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:41:45
updated_at: 2026-04-30 14:41:45
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 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": "这句话是询问在健身房还能做什么的，现在我们需要先问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": "你已经问过要毛巾的事情啦，现在我们要询问在健身房的其他可做事项哦，请再试一次吧。"}}, {"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: 这句话是询问在健身房还能做什么的，现在我们需要先问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: 你已经问过要毛巾的事情啦，现在我们要询问在健身房的其他可做事项哦，请再试一次吧。\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# 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- 你对之前帮你解过围的用户态度格外友善热情。\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 的空乘，服务好每一位乘客是你的使命。用户之前帮你在另一位乘客面前解了围，你很感谢用户的帮忙，对用户的态度也格外友善热情。你发现用完餐的用户正在东张西望，似乎在寻找什么，你确认用户需要帮助，于是上前询问。你发现用户想去健身房消消食，但是不知道方向，于是回答了用户的问题，提供了你的帮助。", "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_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:41:52
updated_at: 2026-04-30 14:41:52
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": [{"option": "在瓦拉学院，开拓者们不用参加考试。", "feedback": {"type": "npc", "content": "太棒啦！你完全掌握了exam的意思，这个句子理解得很准确~", "npcName": "Brainy"}}, {"option": "在瓦拉学院，开拓者们不用参加俱乐部活动。", "feedback": {"type": "npc", "content": "不对哦，俱乐部活动的英文是club activity，不是我们这里说的exam，再回忆一下exam的意思吧。", "npcName": "Brainy"}}], "question": {"type": "npc", "npcName": "Brainy", "content": "接下来，我们来看下包含 exam 的句子 At Vala Academy, Pioneers don't have exams. 是什么意思呢？"}}, {"answer": [1], "meaning": "句意选择题", "optionList": [{"option": "但是你需要达到一定等级才能获得积分。", "feedback": {"type": "npc", "content": "你把句子的逻辑弄反啦，是需要积分来升级，不是升级拿积分哦，再仔细看看句子意思吧。", "npcName": "Brainy"}}, {"option": "但是你需要积分来升级。", "feedback": {"type": "npc", "content": "回答完美！你已经掌握了point的意思和这个句子的含义啦~", "npcName": "Brainy"}}], "question": {"type": "npc", "npcName": "Brainy", "content": "我们再看看包含point的句子 But you need points to level up! 是什么意思呢？"}}, {"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": "我们来认识一下这段话中的关键单词 choose，choose 的意思是选择、挑选，选择你喜欢的东西可以说 choose what you like。还有第二个关键单词 interested，interested 的意思是感兴趣的，对某件事感兴趣可以说 be interested in something。", "npcName": "Brainy", "learning": [{"answer": [0], "meaning": "句意选择题", "optionList": [{"option": "你可以选择你最喜欢的俱乐部加入。", "feedback": {"type": "npc", "content": "回答正确！你已经完全掌握了choose的意思和这个句子的含义啦~", "npcName": "Brainy"}}, {"option": "你可以创建你最喜欢的俱乐部。", "feedback": {"type": "npc", "content": "不对哦，创建的英文是start，不是我们这里讲的choose，再回忆一下choose的意思吧。", "npcName": "Brainy"}}], "question": {"type": "npc", "npcName": "Brainy", "content": "接下来，我们来看下包含 choose 的句子 You can choose your favourite club to join. 是什么意思呢？"}}, {"answer": [0], "meaning": "句意选择题", "optionList": [{"option": "如果你对某件事感兴趣，你可以找到一个对应的俱乐部。", "feedback": {"type": "npc", "content": "太棒啦！你对interested的意思和整个句子的理解都很到位~", "npcName": "Brainy"}}, {"option": "如果你对某件事不感兴趣，你可以和朋友一起创办新俱乐部。", "feedback": {"type": "npc", "content": "这个句子说的是感兴趣的情况哦，创办新俱乐部是另外的内容啦，再仔细看看句子意思吧。", "npcName": "Brainy"}}], "question": {"type": "npc", "npcName": "Brainy", "content": "我们再看看包含 interested 的句子 If you are interested in something, you can find a club for it. 是什么意思呢？"}}, {"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>\n<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 activity，不是我们这里说的exam，再回忆一下exam的意思吧。\n\n2. 句意选择题\nBrainy：我们再看看包含point的句子 But you need points to level up! 是什么意思呢？\n- 但是你需要达到一定等级才能获得积分。\n  Brainy：你把句子的逻辑弄反啦，是需要积分来升级，不是升级拿积分哦，再仔细看看句子意思吧。\n- 但是你需要积分来升级。[正确]\n  Brainy：回答完美！你已经掌握了point的意思和这个句子的含义啦~\n\n3. 段落大意题\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：我们来认识一下这段话中的关键单词 choose，choose 的意思是选择、挑选，选择你喜欢的东西可以说 choose what you like。还有第二个关键单词 interested，interested 的意思是感兴趣的，对某件事感兴趣可以说 be interested in something。\n1. 句意选择题\nBrainy：接下来，我们来看下包含 choose 的句子 You can choose your favourite club to join. 是什么意思呢？\n- 你可以选择你最喜欢的俱乐部加入。[正确]\n  Brainy：回答正确！你已经完全掌握了choose的意思和这个句子的含义啦~\n- 你可以创建你最喜欢的俱乐部。\n  Brainy：不对哦，创建的英文是start，不是我们这里讲的choose，再回忆一下choose的意思吧。\n\n2. 句意选择题\nBrainy：我们再看看包含 interested 的句子 If you are interested in something, you can find a club for it. 是什么意思呢？\n- 如果你对某件事感兴趣，你可以找到一个对应的俱乐部。[正确]\n  Brainy：太棒啦！你对interested的意思和整个句子的理解都很到位~\n- 如果你对某件事不感兴趣，你可以和朋友一起创办新俱乐部。\n  Brainy：这个句子说的是感兴趣的情况哦，创办新俱乐部是另外的内容啦，再仔细看看句子意思吧。\n\n3. 段落大意题\nBrainy：了解了关键单词和句子，我们来看看这一段主要在讲什么吧？\n- 介绍了怎么选择俱乐部，对什么感兴趣就可以找对应的俱乐部加入。[正确]\n  Brainy：太聪明了！你完全抓住了段落的核心意思~\n- 所有的俱乐部都很受欢迎，大家都可以参加。\n  Brainy：这一段没有提到俱乐部受不受欢迎哦，这是后面的内容啦，再看看这段的内容吧。\n\n# 完结反馈\nBrainy：太棒啦！你已经完成了这两段内容的全部学习，知识点都掌握得很不错哦，继续加油~\n```"}


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:42:20
updated_at: 2026-04-30 14:42:20
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": "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": "You did a great job! 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：这个单词的意思是寒冷的，但老师现在问的是季节，不是天气感受哦。请仔细听清问题，告诉老师现在的季节。\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:
[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（词义）

status: generated
bitable_token: FrxtwNRQDizqiikPkATcBzTCnYe
db_table: core_interaction_component
created_at: 2026-04-30 14:42:35
updated_at: 2026-04-30 14:42:35
raw_config:
[cell repeats an earlier one in this file: 2377 characters]

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:
[cell repeats an earlier one in this file: 739 characters]

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:
[cell repeats an earlier one in this file: 2596 characters]

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

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 eat at a shop.", "feedback": {"type": "npc", "content": "不对哦，这句话说的是 eat at a shop（在商店吃），不是我们音频里的重点内容 bake at home，再听一遍试试呀。", "npcName": "Brainy"}}, {"option": "When you really want sweet food, like biscuits or cake, you can bake at home.", "feedback": {"type": "npc", "content": "太厉害啦！你精准听出了句子里的重点短语 bake at home！", "npcName": "Brainy"}}], "answer": [1], "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 eat at a shop.\n  - Brainy：不对哦，这句话说的是 eat at a shop（在商店吃），不是我们音频里的重点内容 bake at home，再听一遍试试呀。\n- When you really want sweet food, like biscuits or cake, you can bake at home. [正确]\n  - Brainy：太厉害啦！你精准听出了句子里的重点短语 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 you should sleep and get up on time, stay away from smoking and alcohol.（你听了关于如何健康生活的音频，了解到你应该按时作息，远离烟酒。）\nYou also got to know keeping healthy doesn't need much money or expensive stuff, and good habits are the most important thing for health.（你还知道了保持健康不需要很多钱或者昂贵的东西，好习惯对健康来说才是最重要的。）"}


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:42:49
updated_at: 2026-04-30 14:42:49
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:
[cell repeats an earlier one in this file: 226 characters]


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:42:56
updated_at: 2026-04-30 14:42:56
raw_config:
[cell repeats an earlier one in this file: 170 characters]

final_config_json:
  {"cType": "mid_message_combine", "cId": "0000800", "title": "填写信息表", "resourceMapping": {"Vicky": 658}, "cDesc": "You formed the sentence \"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:
[cell repeats an earlier one in this file: 228 characters]


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

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


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:43:04
updated_at: 2026-04-30 14:43:04
final_config_json:
  {"cType": "mid_message_word", "cId": "0000800", "title": "填写信息表", "resourceMapping": {"Vicky": 658}, "cDesc": "You filled \"knowledge\" and \"information\" in the blanks. (你在空白处填上了“知识”对应的单词。)", "question": {"desc": "请在空白处填入合适的单词，使句意完整"}, "tip": "需要填入的单词的中文释义是“知识”", "answer": ["knowledge", "information"], "img": "0000800.png", "inputSet": []}

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


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:43:10
updated_at: 2026-04-30 14:43:11
raw_config:
[cell repeats an earlier one in this file: 176 characters]

final_config_json:
  {"cType": "mid_message_sentence", "cId": "0000800", "title": "填写信息表", "resourceMapping": {"Vicky": 658}, "cDesc": "You filled out the 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:
[cell repeats an earlier one in this file: 229 characters]


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:43:12
updated_at: 2026-04-30 14:43:12
raw_config:
[cell repeats an earlier one in this file: 199 characters]

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": "user", "npcName": "User", "content": "Warm water here!"}, "errFeedback": {"type": "user", "npcName": "User", "content": "It doesn't seem like there's warm water."}, "postDialog": [], "cDesc": "You found the warm water section. (你找到了温暖的水域。)"}

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


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:43:19
updated_at: 2026-04-30 14:43:19
raw_config:
[cell repeats an earlier one in this file: 975 characters]

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:
[cell repeats an earlier one in this file: 1253 characters]

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": "太棒啦！句子谓语是单数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": "你写的很好！"}}]}, {"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": "太厉害了！一般将来时的特殊疑问句结构是“特殊疑问词+will+主语+动词原形”，这个选项正好符合语法和询问抵达时间的语境。"}}, {"option": "When is", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，句子里已经有实义动词原形\"arrive\"了，不能用be动词\"is\"来构成疑问句，不符合一般将来时的结构，再试试吧。"}}, {"option": "How is", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，首先你要问的是抵达的时间，不是方式，而且\"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...以及一般将来时特殊疑问句的用法，顺利完成了给Rebecca的邮件编写!"}}

intermediate_json:
  {"学习流程配置": "```\n# 问题1：\nBrainy: 你在邮件中向Rebecca解释留下的原因，提到这份工作对你们很重要，现在需要补全句子\"The ___ is important for us.\"\n用户选项:\n（选项 A）job [正确]\n  Brainy: 太棒啦！句子谓语是单数is，这里需要搭配可数名词单数，\"job\"符合语法和句意，准确表达了“这份工作对我们很重要”的含义。\n（选项 B）jobs\n  Brainy: 不对哦，\"jobs\"是可数名词复数，和句子里的单数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是否会来Wander Port后，想进一步问她什么时候会抵达，需要补全句子\"___ you arrive?\"\n用户选项:\n（选项 A）When will [正确]\n  Brainy: 太厉害了！一般将来时的特殊疑问句结构是“特殊疑问词+will+主语+动词原形”，这个选项正好符合语法和询问抵达时间的语境。\n（选项 B）When is\n  Brainy: 不对哦，句子里已经有实义动词原形\"arrive\"了，不能用be动词\"is\"来构成疑问句，不符合一般将来时的结构，再试试吧。\n（选项 C）How is\n  Brainy: 不对哦，首先你要问的是抵达的时间，不是方式，而且\"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... 这份工作......\n- That's why we have to... 这就是为什么我们必须……\n- When will you arrive? 你什么时候会到？", "passCondition": "用户写出：这份工作很重要。这就是我们为什么要留下。你什么时候将会到达？", "textList": [{"mode": "preset", "desc": "Dear Rebecca,"}, {"mode": "preset", "desc": "I know you are worried. But this is our best chance to explore Wander Port. "}, {"mode": "fillingInput", "desc": "The ___ is important for us.", "optionList": [{"option": "job"}, {"option": "jobs"}, {"option": "projects"}], "answer": [0]}, {"mode": "fillingInput", "desc": "That's ___ we have to stay.", "optionList": [{"option": "why"}, {"option": "how"}, {"option": "which"}], "answer": [0]}, {"mode": "preset", "desc": "Will you come to Wander Port some day? "}, {"mode": "fillingInput", "desc": " ___ you arrive?", "optionList": [{"option": "When will"}, {"option": "When is"}, {"option": "How is"}], "answer": [0]}]}


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:43:29
updated_at: 2026-04-30 14:43:29
raw_config:
[cell repeats an earlier one in this file: 180 characters]

final_config_json:
  {"cType": "mid_image_sequence", "cId": "0000800", "title": "排序跳格子顺序", "meaning": "", "resourceMapping": {}, "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 hopscotch order $one by one$. (你一个接一个排列跳格子的顺序。)"}

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


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:43:30
updated_at: 2026-04-30 14:43:30
raw_config:
[cell repeats an earlier one in this file: 295 characters]

final_config_json:
  {"cType": "mid_image_drag", "cId": "0000800", "title": "选出正确的物品", "meaning": "", "resourceMapping": {}, "question": {"desc": "Let's pick the $fish$, $crab$ and $octopus$ in order."}, "imageInfo": {"questionImg": "0000800_question.png", "answerImg": "0000800_answer.png"}, "optionList": [{"option": "0000800_option_00.png"}, {"option": "0000800_option_01.png"}, {"option": "0000800_option_02.png"}, {"option": "0000800_option_03.png"}], "answer": [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:
[cell repeats an earlier one in this file: 211 characters]


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

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?\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": "太棒了！这是邮件开头称呼对方的标准正确表达，很合适。"}}, {"option": "Hello Rebecca, is that you?", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这是日常打招呼的口语表达，一般不会用在正式邮件的开头哦，再试试吧。"}}, {"option": "Rebecca, listen to me.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这个表达语气比较生硬，不符合邮件礼貌开头的要求，而且也不是标准的邮件称呼格式，再试一下吧。"}}], "answer": [0], "write": {"desc": "Dear Rebecca,", "trans": "亲爱的丽贝卡："}, "feedback": {"type": "npc", "npcName": "Brainy", "content": "你写的很好！"}}]}, {"leadIn": {"desc": "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": "非常好！这句话既回应了Rebecca的担心，也说明了你们想要留下探索Wander Port的原因，完全符合语境。"}}, {"option": "I don't care about your worries. We will stay here.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句话语气太生硬不礼貌，完全没有顾及Rebecca的关心，不符合回复的要求哦，再试试。"}}, {"option": "We are not scared, so don't contact us anymore.", "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": "你写的很好！"}}]}, {"leadIn": {"desc": "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是“项目”的复数形式，不仅意思不符合这里“工作”的语境，也和句中的is不搭配，再试一下吧。"}}], "answer": [0], "write": {"desc": "The job is important for us.", "trans": "这项工作对我们来说很重要。"}, "feedback": {"type": "npc", "npcName": "Brainy", "content": "你写的很好！"}}]}, {"leadIn": {"desc": "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": "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 some day?", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这个是一般现在时的结构，用来描述经常性的动作，不能用来询问将来的计划哦，再想想。"}}, {"option": "Are you come to Wander Port some day?", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这个句子语法结构是错误的，be动词不能直接和动词原形come搭配使用，再试一下吧。"}}], "answer": [0], "write": {"desc": "Will you come to Wander Port some day?", "trans": "你会来漫游港吗？"}, "feedback": {"type": "npc", "npcName": "Brainy", "content": "你写的很好！"}}]}, {"leadIn": {"desc": "Ask her when she will arrive."}, "learning": [{"question": {"type": "npc", "npcName": "Brainy", "content": "你接着想问如果Rebecca来的话，她什么时候会到，句子“If so, _________ you arrive?”的横线处应该填什么？"}, "optionList": [{"option": "when will", "feedback": {"type": "npc", "npcName": "Brainy", "content": "答对啦！询问将来的时间要用一般将来时，“when will you arrive”是询问对方何时到达的正确表达，符合语境。"}}, {"option": "when is", "feedback": {"type": "npc", "npcName": "Brainy", "content": "arrive是实义动词，疑问句里需要用助动词will/do等，不能用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": "恭喜你，你已经掌握了邮件的正确称呼格式、回应他人关心并说明理由的表达、“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）Hello Rebecca, is that you?\n  Brainy: 这是日常打招呼的口语表达，一般不会用在正式邮件的开头哦，再试试吧。\n（选项 C）Rebecca, listen to me.\n  Brainy: 这个表达语气比较生硬，不符合邮件礼貌开头的要求，而且也不是标准的邮件称呼格式，再试一下吧。\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: 非常好！这句话既回应了Rebecca的担心，也说明了你们想要留下探索Wander Port的原因，完全符合语境。\n（选项 B）I don't care about your worries. We will stay here.\n  Brainy: 这句话语气太生硬不礼貌，完全没有顾及Rebecca的关心，不符合回复的要求哦，再试试。\n（选项 C）We are not scared, so don't contact us anymore.\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动词are，和句中的is不匹配哦，再想想吧。\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: 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 some day?\n  Brainy: 这个是一般现在时的结构，用来描述经常性的动作，不能用来询问将来的计划哦，再想想。\n（选项 C）Are you come to Wander Port some day?\n  Brainy: 这个句子语法结构是错误的，be动词不能直接和动词原形come搭配使用，再试一下吧。\n\n# 问题6：\nBrainy: 你接着想问如果Rebecca来的话，她什么时候会到，句子“If so, _________ you arrive?”的横线处应该填什么？\n用户选项:\n（选项 A）when will [正确]\n  Brainy: 答对啦！询问将来的时间要用一般将来时，“when will you arrive”是询问对方何时到达的正确表达，符合语境。\n（选项 B）when is\n  Brainy: arrive是实义动词，疑问句里需要用助动词will/do等，不能用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": ""}, {"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: HeFed63kkoQV7SxDwxcc9Y1ynmf
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试-非全量)
category: mid
cType: mid_vocab_image
type_name: 图片互动
level: L1
unit_id: U14
knowledge_points_raw: pillow
status: generated
bitable_token: VJ1kb9xp8amX8PskntmcLhjpnQe
db_table: middle_interaction_component
created_at: 2026-05-06 18:16:30
updated_at: 2026-05-06 18:16:30
raw_config:
  【任务标题】
  查看枕头
  【情境引入】
  Max: What are they talking about?
  User: They said something about a pillow.
  User: Let me see...
  【互动内容】
  Find out the $pillow$.
  答案：[-0.90,0.43,-0.10,0.80]
  辅助信息：pillow 指“枕头”。
  【互动反馈】
  正确反馈
  User: It's a lovely pillow!
  错误反馈
  User: Oops! I can't see it properly.
  【后置对话】
  Max: Well, it's kind of cute...

final_config_json:
  {"cType": "mid_vocab_image", "cId": "0000800", "title": "查看枕头", "preDialog": [{"type": "npc", "npcName": "Max", "content": "What are they talking about?"}, {"type": "user", "content": "They said something about a pillow."}, {"type": "user", "content": "Let me see..."}], "img": "", "question": {"desc": "Find out the $pillow$."}, "answer": [-0.9, 0.43, -0.1, 0.8], "tip": "pillow 指“枕头”。", "corFeedback": {"type": "user", "content": "It's a lovely pillow!"}, "errFeedback": {"type": "user", "content": "Oops! I can't see it properly."}, "postDialog": [{"type": "npc", "npcName": "Max", "content": "Well, it's kind of cute..."}], "meaning": "", "resourceMapping": {"Eva": 738, "Peter": 739}}

kp_info_json:
  {"pushType": "relationKp", "cType": "mid_vocab_image", "cId": "0000800", "kpInfo": [{"kpId": "0226004", "kpType": "vocab", "kpTitle": "pillow", "kpSkill": "vocab_meaning", "kpSkillName": "词义", "candidates": [{"kp_id": "0226004", "type": "vocab", "title": "pillow", "vala_level": "", "en_desc": ""}, {"kp_id": "0326004", "type": "vocab", "title": "pillow", "vala_level": "L2", "en_desc": "a soft cushion used to support the head when resting or sleeping"}]}]}


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-05-07 10:40:02
updated_at: 2026-05-07 10:40:02
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": "我们回答了本提出的河马住在哪里的问题，知道了河马生活在湖里，离打开单词城堡的大门更近了一步。我们回答了布莱尼提出的动物园里还有什么其他相关事物的问题，知道了树是动物园里动物栖息地的一部分，完成了这部分挑战。"}

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": "我们回答了本提出的河马住在哪里的问题，知道了河马生活在湖里，离打开单词城堡的大门更近了一步。我们回答了布莱尼提出的动物园里还有什么其他相关事物的问题，知道了树是动物园里动物栖息地的一部分，完成了这部分挑战。"}

study_info_json:
  {"learningPart": [{"image": "1201001_02.png", "learning": [{"question": {"type": "npc", "npcName": "Brainy", "content": "小朋友，这道题我们要选河马居住的地方哦，先来认识三个核心单词吧~ lake是湖，tree是树，grass是草，你觉得哪个是河马的家呀？"}, "optionList": [{"option": "tree", "feedback": {"type": "npc", "npcName": "Brainy", "content": "tree是树的意思哦，河马体型很大，没办法住在树上呀，再想想看？"}}, {"option": "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问“河马住在哪里？”，我们需要选对单词填到句子里，补全回答“在____里”。"}, "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": "这道题我们要回答Brainy提出的“动物园里还有什么其他的？”这个问题，先来认识三个单词：lake是湖，tree是树，grass是草，你觉得哪个是动物园里会有的事物呀？"}, "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": "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": [0]}]}], "closing": {"type": "npc", "npcName": "Brainy", "content": "太棒了！你已经完成了所有的题目，还复习了lake、tree、grass这些重点单词，知道了河马住在湖里，也了解了动物园里的常见事物，你的英语越来越棒啦，继续加油哦！"}}

intermediate_json:
  {"学习流程配置": "```\n# 小题 4\n## 材料内容\n【展示该小题对应的图片 ID：1201001_02.png】\n\n## 互动题目\n### 1. 句意选词题\nBrainy：小朋友，这道题我们要选河马居住的地方哦，先来认识三个核心单词吧~ lake是湖，tree是树，grass是草，你觉得哪个是河马的家呀？\n- 选项 A：tree\n  Brainy：tree是树的意思哦，河马体型很大，没办法住在树上呀，再想想看？\n- 选项 B：grass\n  Brainy：grass是草的意思哦，河马大部分时间都待在水里，不会住在草地上，再试一次吧~\n- 选项 C：lake[正确]\n  Brainy：答对啦！lake就是湖的意思，河马平时就生活在湖里，你掌握得很棒哦！\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：这道题我们要回答动物园里还有什么其他动物哦，先来复习相关的词汇~ lake是湖，tree是树，grass是草，你觉得哪个可以用来回答动物相关的问题呀？\n- 选项 A：lake\n  Brainy：lake是湖哦，是地点不是动物，不能用来回答动物园里有什么动物，再想想看~\n- 选项 B：grass\n  Brainy：grass是草，是植物，也不是动物哦，不符合问题的要求，再试一次吧~\n- 选项 C：tree[正确]\n  Brainy：哦不对，这里是不是题目设置有点问题？哦不对，结合任务哦，哦对，正确选项是tree，哦不对，等下，用户给的题目5正确选项是tree？哦不对，可能输入的题目5的选项是不是打错了？哦不对，用户给的题目5的选项是lake、tree（正确）、grass，那我们按给定的来。哦不对，可能题目是问动物园里还有什么？哦不管，按给定的内容来。哦重新组织：\n哦正确的知识点：Brainy：这道题我们要回答Brainy提出的“动物园里还有什么其他的？”这个问题，先来认识三个单词：lake是湖，tree是树，grass是草，你觉得哪个是动物园里会有的事物呀？\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：tree[正确]\n  Brainy：答对啦！回答tree就表示动物园里还有树，是符合场景的答案哦~ 现在试着大声把这个回答读出来吧！\n- 选项 B：lake\n  Brainy：lake是湖，动物园里一般不会有湖哦，不符合实际的场景，再想想看重新选一次吧~\n- 选项 C：grass\n  Brainy：grass是草，不是这道题的正确答案哦，结合你对动物园的印象再选一次吧~\n\n---\n# 完结反馈\nBrainy：太棒了！你已经完成了所有的题目，还复习了lake、tree、grass这些重点单词，知道了河马住在湖里，也了解了动物园里的常见事物，你的英语越来越棒啦，继续加油哦！\n```", "互动描述": "Ben asks where hippos live, and we work out they live in the lake as we fill the blank, getting one step closer to unlocking the word castle’s gate.（我们回答了本提出的河马住在哪里的问题，知道了河马生活在湖里，离打开单词城堡的大门更近了一步。）\nBrainy wonders what other animals are in the zoo, and we figure out trees are part of the zoo’s animal habitat to complete this part of the challenge.（我们回答了布莱尼提出的动物园里还有什么其他相关事物的问题，知道了树是动物园里动物栖息地的一部分，完成了这部分挑战。）"}

question_group_json:
[cell repeats an earlier one in this file: 446 characters]


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-05-07 10:40:12
updated_at: 2026-05-07 10:40:12
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": "类型1的描述", "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": "类型1的描述", "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": "现在我们要说明的是大象需要洗澡的情况哦，这个选项说的是大象饿了要给香蕉，和当前情境不匹配，再试一次吧。"}}, {"option": "The keepers forgot to feed the elephant.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "我们现在首先要告诉Logan大象需要洗澡的情况，这个选项说的是饲养员忘了喂大象，不符合当前要表达的内容，再选一次哦。"}}], "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 need to wait for the keepers to come.", "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 and wait for someone to help.", "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 ask our parents first.", "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：现在我们要说明的是大象需要洗澡的情况哦，这个选项说的是大象饿了要给香蕉，和当前情境不匹配，再试一次吧。\n（C）The keepers forgot to feed the elephant.\n  Brainy：我们现在首先要告诉Logan大象需要洗澡的情况，这个选项说的是饲养员忘了喂大象，不符合当前要表达的内容，再选一次哦。\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 need to wait for the keepers to come.\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 and wait for someone to help.\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 ask our parents first.\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. 确认用户没有其他需求后，自然结束对话即可。\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,Wander Port"}

dialog_config_json:
  {"config": {"asrPrompt": "elephant,shower,water,keepers,help,Wander Port", "promptInfo": {"default": "# 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- 除开场轮次外，每次回应，可以先基于用户的话给一句反馈。然后再推进你的任务。", "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_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-05-07 10:40:13
updated_at: 2026-05-07 10:40:13
raw_config:
[cell repeats an earlier one in this file: 2351 characters]

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:
[cell repeats an earlier one in this file: 865 characters]

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:
[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，意思是考试，我们平时说的“参加考试”就可以说take an exam。第二个是point，在这里的意思是积分、分数，攒积分就可以说collect points。", "npcName": "Brainy", "learning": [{"answer": [0], "meaning": "句意选择题", "optionList": [{"option": "在瓦拉学院，开拓者们不需要参加考试。", "feedback": {"type": "npc", "content": "太厉害啦！你准确理解了exam的意思，完全掌握了这个句子的含义~", "npcName": "Brainy"}}, {"option": "在瓦拉学院，开拓者们不需要参加俱乐部活动。", "feedback": {"type": "npc", "content": "不对哦，club才是俱乐部的意思，我们这里的重点单词exam是考试的意思，再回忆一下释义吧。", "npcName": "Brainy"}}], "question": {"type": "npc", "npcName": "Brainy", "content": "我们来看包含exam的句子At Vala Academy, Pioneers don't have exams. 是什么意思呢？"}}, {"answer": [1], "meaning": "句意选择题", "optionList": [{"option": "但是你需要完成任务才能升级。", "feedback": {"type": "npc", "content": "任务的英文是task哦，我们这里的重点单词point是积分的意思，再仔细想想呀。", "npcName": "Brainy"}}, {"option": "但是你需要积分才能升级。", "feedback": {"type": "npc", "content": "回答正确！你已经搞懂point在这句话里的意思啦，真棒~", "npcName": "Brainy"}}], "question": {"type": "npc", "npcName": "Brainy", "content": "接下来看包含point的句子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": "我们来看看这段话里的重点词汇。第一个是choose，意思是选择、挑选，挑选你喜欢的东西就可以说choose something you like。第二个是club，意思是俱乐部，加入俱乐部就是join a club。第三个是interested，意思是感兴趣的，对某件事感兴趣可以说be interested in something。", "npcName": "Brainy", "learning": [{"answer": [1], "meaning": "句意选择题", "optionList": [{"option": "你可以创建你最喜欢的俱乐部。", "feedback": {"type": "npc", "content": "创建的英文是start哦，我们这里的重点单词choose是选择的意思，再回忆一下释义吧。", "npcName": "Brainy"}}, {"option": "你可以选择你最喜欢的俱乐部加入。", "feedback": {"type": "npc", "content": "完美回答！你已经掌握了choose和club这两个单词的意思，也读懂了这个句子~", "npcName": "Brainy"}}], "question": {"type": "npc", "npcName": "Brainy", "content": "先看包含choose和club的句子You can choose your favourite club to join. 是什么意思呢？"}}, {"answer": [0], "meaning": "句意选择题", "optionList": [{"option": "如果你对某件事感兴趣，你可以找到对应的俱乐部。", "feedback": {"type": "npc", "content": "太优秀啦！你准确理解了interested的意思，完全搞懂了这个句子的含义~", "npcName": "Brainy"}}, {"option": "如果你对某件事感到好奇，你可以和朋友一起研究。", "feedback": {"type": "npc", "content": "好奇的英文是curious哦，我们这里的重点单词interested是感兴趣的意思，再认真看看呀。", "npcName": "Brainy"}}], "question": {"type": "npc", "npcName": "Brainy", "content": "再看包含interested的句子If you are interested in something, you can find a club for it. 是什么意思呢？"}}, {"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```\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，意思是考试，我们平时说的“参加考试”就可以说take an exam。第二个是point，在这里的意思是积分、分数，攒积分就可以说collect points。\n1. 句意选择题\nBrainy：我们来看包含exam的句子At Vala Academy, Pioneers don't have exams. 是什么意思呢？\n- 在瓦拉学院，开拓者们不需要参加考试。[正确]\n  Brainy：太厉害啦！你准确理解了exam的意思，完全掌握了这个句子的含义~\n- 在瓦拉学院，开拓者们不需要参加俱乐部活动。\n  Brainy：不对哦，club才是俱乐部的意思，我们这里的重点单词exam是考试的意思，再回忆一下释义吧。\n\nBrainy：接下来看包含point的句子But you need points to level up! 是什么意思呢？\n- 但是你需要完成任务才能升级。\n  Brainy：任务的英文是task哦，我们这里的重点单词point是积分的意思，再仔细想想呀。\n- 但是你需要积分才能升级。[正确]\n  Brainy：回答正确！你已经搞懂point在这句话里的意思啦，真棒~\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: 我们来看看这段话里的重点词汇。第一个是choose，意思是选择、挑选，挑选你喜欢的东西就可以说choose something you like。第二个是club，意思是俱乐部，加入俱乐部就是join a club。第三个是interested，意思是感兴趣的，对某件事感兴趣可以说be interested in something。\n1. 句意选择题\nBrainy：先看包含choose和club的句子You can choose your favourite club to join. 是什么意思呢？\n- 你可以创建你最喜欢的俱乐部。\n  Brainy：创建的英文是start哦，我们这里的重点单词choose是选择的意思，再回忆一下释义吧。\n- 你可以选择你最喜欢的俱乐部加入。[正确]\n  Brainy：完美回答！你已经掌握了choose和club这两个单词的意思，也读懂了这个句子~\n\nBrainy：再看包含interested的句子If you are interested in something, you can find a club for it. 是什么意思呢？\n- 如果你对某件事感兴趣，你可以找到对应的俱乐部。[正确]\n  Brainy：太优秀啦！你准确理解了interested的意思，完全搞懂了这个句子的含义~\n- 如果你对某件事感到好奇，你可以和朋友一起研究。\n  Brainy：好奇的英文是curious哦，我们这里的重点单词interested是感兴趣的意思，再认真看看呀。\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_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-05-07 10:40:18
updated_at: 2026-05-07 10:40:18
raw_config:
[cell repeats an earlier one in this file: 1022 characters]

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:
[cell repeats an earlier one in this file: 568 characters]

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": "Oh, and can I have a towel please?", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句话是用来索要毛巾的，现在你还没问健身房的位置哦，再试一次吧。"}}, {"option": "What else can I do there?", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句话是询问在健身房还能做什么的，不是用来问位置的，再选一次吧。"}}], "answer": [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": "你已经问过健身房的位置啦，现在你需要索要毛巾，再试一次吧。"}}, {"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": "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": [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": "你已经问清楚了健身房的位置、要到了毛巾，也知道了在健身房可以做的事，任务圆满完成啦！"}}}

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）Oh, and 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：你已经问过健身房的位置啦，现在你需要索要毛巾，再试一次吧。\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）Oh, and 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：你已经问清楚了健身房的位置、要到了毛巾，也知道了在健身房可以做的事，任务圆满完成啦！\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,walkway,relax"}

dialog_config_json:
  {"config": {"asrPrompt": "gym,towel,exercise,sightseeing,walkway,relax", "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 的空乘，服务好每一位乘客是你的使命。\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_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-05-07 10:40:47
updated_at: 2026-05-07 10:40:47
raw_config:
[cell repeats an earlier one in this file: 1095 characters]

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:
[cell repeats an earlier one in this file: 898 characters]

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，意思是夏天，正确的发音是/ˈsʌmə(r)/。", "type": "npc", "npcName": "Brainy"}, "extendQuestion": {"content": "仔细听音频，选出你听到的句子哦。", "type": "npc", "npcName": "Brainy"}, "optionList": [{"option": "This summer!", "feedback": {"type": "npc", "content": "太厉害啦！你准确听出了短语summer，很棒哦！", "npcName": "Brainy"}}, {"option": "This winter!", "feedback": {"type": "npc", "content": "哎呀，这句话里的是winter（冬天），不是我们听到的summer哦，再仔细听一遍试试吧~", "npcName": "Brainy"}}], "answer": [0]}, {"question": {"content": "This summer!", "type": "npc", "npcName": "Brainy"}, "extendQuestion": {"content": "这句话的中文意思是“这个夏天！”，对不对呀？", "type": "npc", "npcName": "Brainy"}, "optionList": [{"option": "对 / Yes", "feedback": {"type": "npc", "content": "完全正确！你已经掌握了summer这个单词的意思啦，真优秀！", "npcName": "Brainy"}}, {"option": "错 / No", "feedback": {"type": "npc", "content": "再想想哦，这句话里的核心单词和季节有关，再试着判断一下吧~", "npcName": "Brainy"}}], "answer": [0]}]}], "closing": {"type": "npc", "content": "很好！你已经回答完了全部问题，相信你已经听懂了这个任务中所有的重点句子。现在让我们来查看结果吧!", "npcName": "Brainy"}}

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


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-05-07 10:41:04
updated_at: 2026-05-07 10:41:04
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": "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": "You did a great job! 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: 这个单词的意思是寒冷的，是用来描述天气感受的，不是现在的季节哦，和当前问题不符。请仔细听清问题，回答现在的季节。\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:
[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-05-07 10:41:06
updated_at: 2026-05-07 10:41:06
raw_config:
[cell repeats an earlier one in this file: 2377 characters]

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:
[cell repeats an earlier one in this file: 739 characters]

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 是动词，表示烘焙、烤制食物，at home 是固定短语，意思是在家。", "type": "npc", "npcName": "Brainy", "learning": [{"answer": [1], "meaning": "听音选句", "optionList": [{"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."}, {"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": "这句话说的是去外面的餐厅吃，和句子里的 bake at home 意思不一样哦，再想想看吧！", "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 是动词，表示烘焙、烤制食物，at home 是固定短语，意思是在家。\n1. 听音选句\nBrainy：仔细听音频，选出你听到的那句话哦。\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 哦，再仔细听听音频吧！\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：这句话说的是去外面的餐厅吃，和句子里的 bake at home 意思不一样哦，再想想看吧！\n---\n# 完成反馈\nBrainy：很好！你已经回答完了全部问题，相信你已经听懂了这个任务中所有的重点句子。现在让我们来查看结果吧!\n```", "互动描述": "You listened to the audio about how to live a healthy life, learning you should sleep and get up on time, avoid smoking and alcohol, and good habits matter more than money for health.（你听了关于如何健康生活的音频，了解到应该按时作息，远离烟酒，对于健康来说好习惯比金钱更重要。）"}


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-05-07 10:41:12
updated_at: 2026-05-07 10:41:12
raw_config:
[cell repeats an earlier one in this file: 173 characters]

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:
[cell repeats an earlier one in this file: 210 characters]


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-05-07 10:41:32
updated_at: 2026-05-07 10:41:32
final_config_json:
  {"cType": "mid_message_trace", "cId": "0000800", "title": "购买葡萄", "resourceMapping": {"Vicky": 658}, "cDesc": "You bought the fresh grapes as you needed. (你购买了需要的葡萄。)", "question": {"desc": "请描写你需要的水果"}, "trace": "grape", "img": "0000800.png", "inputSet": []}

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


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-05-07 10:41:38
updated_at: 2026-05-07 10:41:38
raw_config:
[cell repeats an earlier one in this file: 121 characters]

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:
[cell repeats an earlier one in this file: 226 characters]


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-05-07 10:41:46
updated_at: 2026-05-07 10:41:46
raw_config:
[cell repeats an earlier one in this file: 170 characters]

final_config_json:
  {"cType": "mid_message_combine", "cId": "0000800", "title": "填写信息表", "resourceMapping": {"Vicky": 658}, "cDesc": "You asked \"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:
[cell repeats an earlier one in this file: 228 characters]


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-05-07 10:41:54
updated_at: 2026-05-07 10:41:54
final_config_json:
  {"cType": "mid_message_fillin", "cId": "0000800", "title": "填写信息表", "resourceMapping": {"Vicky": 658}, "cDesc": "You filled in \"now\" to form \"knowledge\". (你填入了\"now\"来组成单词“知识”。)", "question": {"desc": "请在空白处填入正确的字母，组成完整单词"}, "tip": "需要填入的单词的中文释义是“知识”", "inputConfig": [{"stem": "K(3)ledge", "value": "now"}], "img": "0000800.png", "inputSet": []}

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


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-05-07 10:41:59
updated_at: 2026-05-07 10:41:59
raw_config:
[cell repeats an earlier one in this file: 975 characters]

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:
[cell repeats an earlier one in this file: 1253 characters]

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": "你正在写邮件的正文部分，想要表达这项工作对你们很重要，现在需要补全句子\"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": "不对哦~你看句子里的be动词是\"is\"，要搭配单数主语，\"jobs\"是复数形式，不符合这里的语法规则，再试试吧。"}}, {"option": "projects", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦~首先\"projects\"是复数形式，和句子里的单数be动词\"is\"不匹配，而且\"project\"的意思是“项目”，这里要表达的是“工作”的含义，不符合语境，再想想呀。"}}], "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 you arrive?\"是正确的表达，意思是“你什么时候会到？”，正好符合你想询问她到达时间的需求。"}}, {"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 arrive?，顺利完成了给Rebecca的邮件编写！"}}

intermediate_json:
  {"学习流程配置": "```\n# 问题1：\nBrainy: 你正在写邮件的正文部分，想要表达这项工作对你们很重要，现在需要补全句子\"The ___ is important for us.\"的空缺处。\n用户选项:\n（选项 A）job [正确]\n  Brainy: 太棒啦！你选对了！句子中be动词是is，说明主语是单数，\"job\"作为单数名词符合语法要求，准确表达了“这项工作对我们很重要”的含义。\n（选项 B）jobs\n  Brainy: 不对哦~你看句子里的be动词是\"is\"，要搭配单数主语，\"jobs\"是复数形式，不符合这里的语法规则，再试试吧。\n（选项 C）projects\n  Brainy: 不对哦~首先\"projects\"是复数形式，和句子里的单数be动词\"is\"不匹配，而且\"project\"的意思是“项目”，这里要表达的是“工作”的含义，不符合语境，再想想呀。\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 you arrive?\"是正确的表达，意思是“你什么时候会到？”，正好符合你想询问她到达时间的需求。\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:
[cell repeats an earlier one in this file: 789 characters]

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_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-05-07 10:42:00
updated_at: 2026-05-07 10:42:00
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:
[cell repeats an earlier one in this file: 225 characters]


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-05-07 10:42:06
updated_at: 2026-05-07 10:42:06
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:
[cell repeats an earlier one in this file: 789 characters]

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": "Elephant Health Report", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这个是“大象健康报告”的意思，我们要写的是饲养员护理记录，不是健康报告哦，再试试吧。"}}, {"option": "Daily Food Note", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这个是“日常食物记录”的意思，我们的记录不仅包含食物，还有清洁等内容，不符合标题要求，再想想看。"}}], "answer": [0], "write": {"desc": "Animal Keeper's Record", "trans": "动物饲养员记录"}, "feedback": {"type": "npc", "npcName": "Brainy", "content": "你写的很好！"}}]}, {"leadIn": {"image": "0000800-00.png"}, "learning": [{"question": {"type": "npc", "npcName": "Brainy", "content": "现在要填写动物类型这一栏，你需要填上对应的动物名称，应该选哪个呢？"}, "optionList": [{"option": "Tiger", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，我们今天护理的是大象，不是老虎，再选选看吧。"}}, {"option": "Elephant", "feedback": {"type": "npc", "npcName": "Brainy", "content": "太棒了！我们今天照顾的动物就是大象，这一栏填写完全正确~"}}, {"option": "Panda", "feedback": {"type": "npc", "npcName": "Brainy", "content": "熊猫不是我们今天的护理对象哦，这一栏需要填大象对应的英文单词，再试一次吧。"}}], "answer": [1], "write": {"desc": "Elephant", "trans": "大象"}, "feedback": {"type": "npc", "npcName": "Brainy", "content": "你写的很好！"}}]}, {"leadIn": {"image": "0000800-01.png"}, "learning": [{"question": {"type": "npc", "npcName": "Brainy", "content": "接下来要填写食物部分，记录里写了“She ate ___”，你要填上今天大象吃的食物，应该选哪个？"}, "optionList": [{"option": "apples", "feedback": {"type": "npc", "npcName": "Brainy", "content": "我们今天喂给大象的是香蕉，不是苹果哦，回忆一下刚才的护理过程再选吧。"}}, {"option": "carrots", "feedback": {"type": "npc", "npcName": "Brainy", "content": "胡萝卜不是这次大象吃的食物呀，再想想我们喂了它什么~"}}, {"option": "bananas", "feedback": {"type": "npc", "npcName": "Brainy", "content": "完全正确！我们今天喂大象吃了香蕉，填在这里刚刚好。"}}], "answer": [2], "write": {"desc": "She ate bananas.", "trans": "她吃了香蕉。"}, "feedback": {"type": "npc", "npcName": "Brainy", "content": "你写的很好！"}}]}, {"leadIn": {"image": "0000800-01.png"}, "learning": [{"question": {"type": "npc", "npcName": "Brainy", "content": "现在到了清洁情况的填写栏，句子是“She had ___ today”，要填上今天给大象做的清洁项目，选哪个合适呢？"}, "optionList": [{"option": "a shower", "feedback": {"type": "npc", "npcName": "Brainy", "content": "太对啦！我们今天给大象洗了澡，也就是它今天冲了淋浴，填写正确~"}}, {"option": "a haircut", "feedback": {"type": "npc", "npcName": "Brainy", "content": "我们没有给大象剪头发哦，这个选项不符合今天的清洁内容，再试试吧。"}}, {"option": "a nail trim", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这次护理没有给大象剪指甲哦，回忆一下我们做的清洁工作是什么，再选选看。"}}], "answer": [0], "write": {"desc": "She had a shower today.", "trans": "她今天洗了澡。"}, "feedback": {"type": "npc", "npcName": "Brainy", "content": "你写的很好！"}}]}, {"leadIn": {"image": "0000800-02.png"}, "learning": [{"question": {"type": "npc", "npcName": "Brainy", "content": "记录里接下来有一个问题需要你确认，问问大家这头大象喜爱的东西是什么，应该怎么提问呢？"}, "optionList": [{"option": "What does she love?", "feedback": {"type": "npc", "npcName": "Brainy", "content": "没错！这句话正好可以用来询问大象喜爱的事物，符合记录里的提问要求~"}}, {"option": "What does she eat?", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句话是问“她吃什么”，不是问她喜爱什么，不符合提问需求哦，再想想。"}}, {"option": "How is she today?", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句话是问“她今天怎么样”，我们需要的是询问她喜爱的事物的问句，再试一次吧。"}}], "answer": [0], "write": {"desc": "What does she love?", "trans": "她喜欢什么呢？"}, "feedback": {"type": "npc", "npcName": "Brainy", "content": "你写的很好！"}}]}, {"leadIn": {"image": "0000800-02.png"}, "learning": [{"question": {"type": "npc", "npcName": "Brainy", "content": "最后要回答上面的问题，把大象喜爱的东西写在记录里，应该选哪个句子呢？"}, "optionList": [{"option": "The elephant loves showers and bananas!", "feedback": {"type": "npc", "npcName": "Brainy", "content": "完美！我们今天给大象洗了澡、喂了香蕉，它正好喜爱这两样，这句话写得非常准确~"}}, {"option": "The elephant loves apples and running!", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，大象喜爱的是淋浴和香蕉，不是苹果和跑步，结合今天的护理内容再想想吧。"}}, {"option": "The elephant loves eating and sleeping.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这个回答没有结合我们今天的护理内容哦，我们已经知道它喜欢洗澡和吃香蕉啦，选更符合的选项吧。"}}], "answer": [0], "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(s) to...，以及相关表达 Animal Keeper's Record、She ate bananas.、She had a shower today.、What does she love?、The elephant loves showers and bananas!，完成了大象护理记录的填写！"}}

intermediate_json:
  {"学习流程配置": "```\n# 问题1：\nBrainy: 你要开始填写大象护理记录了，首先需要在最上方写上这份记录的标题，应该选择哪一项呢？\n用户选项:\n（选项 A）Animal Keeper's Record [正确]\n  Brainy: 答对啦！这就是护理记录的标准标题，写在最顶部非常合适~\n（选项 B）Elephant Health Report\n  Brainy: 这个是“大象健康报告”的意思，我们要写的是饲养员护理记录，不是健康报告哦，再试试吧。\n（选项 C）Daily Food Note\n  Brainy: 这个是“日常食物记录”的意思，我们的记录不仅包含食物，还有清洁等内容，不符合标题要求，再想想看。\n\n# 问题2：\nBrainy: 现在要填写动物类型这一栏，你需要填上对应的动物名称，应该选哪个呢？\n用户选项:\n（选项 A）Tiger\n  Brainy: 不对哦，我们今天护理的是大象，不是老虎，再选选看吧。\n（选项 B）Elephant [正确]\n  Brainy: 太棒了！我们今天照顾的动物就是大象，这一栏填写完全正确~\n（选项 C）Panda\n  Brainy: 熊猫不是我们今天的护理对象哦，这一栏需要填大象对应的英文单词，再试一次吧。\n\n# 问题3：\nBrainy: 接下来要填写食物部分，记录里写了“She ate ___”，你要填上今天大象吃的食物，应该选哪个？\n用户选项:\n（选项 A）apples\n  Brainy: 我们今天喂给大象的是香蕉，不是苹果哦，回忆一下刚才的护理过程再选吧。\n（选项 B）carrots\n  Brainy: 胡萝卜不是这次大象吃的食物呀，再想想我们喂了它什么~\n（选项 C）bananas [正确]\n  Brainy: 完全正确！我们今天喂大象吃了香蕉，填在这里刚刚好。\n\n# 问题4：\nBrainy: 现在到了清洁情况的填写栏，句子是“She had ___ today”，要填上今天给大象做的清洁项目，选哪个合适呢？\n用户选项:\n（选项 A）a shower [正确]\n  Brainy: 太对啦！我们今天给大象洗了澡，也就是它今天冲了淋浴，填写正确~\n（选项 B）a haircut\n  Brainy: 我们没有给大象剪头发哦，这个选项不符合今天的清洁内容，再试试吧。\n（选项 C）a nail trim\n  Brainy: 这次护理没有给大象剪指甲哦，回忆一下我们做的清洁工作是什么，再选选看。\n\n# 问题5：\nBrainy: 记录里接下来有一个问题需要你确认，问问大家这头大象喜爱的东西是什么，应该怎么提问呢？\n用户选项:\n（选项 A）What does she love? [正确]\n  Brainy: 没错！这句话正好可以用来询问大象喜爱的事物，符合记录里的提问要求~\n（选项 B）What does she eat?\n  Brainy: 这句话是问“她吃什么”，不是问她喜爱什么，不符合提问需求哦，再想想。\n（选项 C）How is she today?\n  Brainy: 这句话是问“她今天怎么样”，我们需要的是询问她喜爱的事物的问句，再试一次吧。\n\n# 问题6：\nBrainy: 最后要回答上面的问题，把大象喜爱的东西写在记录里，应该选哪个句子呢？\n用户选项:\n（选项 A）The elephant loves showers and bananas! [正确]\n  Brainy: 完美！我们今天给大象洗了澡、喂了香蕉，它正好喜爱这两样，这句话写得非常准确~\n（选项 B）The elephant loves apples and running!\n  Brainy: 不对哦，大象喜爱的是淋浴和香蕉，不是苹果和跑步，结合今天的护理内容再想想吧。\n（选项 C）The elephant loves eating and sleeping.\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: 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-05-07 10:42:10
updated_at: 2026-05-07 10:42:10
raw_config:
[cell repeats an earlier one in this file: 199 characters]

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 to get. (你找到了要取用的温暖的水。)"}

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


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-05-07 10:42:15
updated_at: 2026-05-07 10:42:15
raw_config:
[cell repeats an earlier one in this file: 180 characters]

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 jump the hopscotch one by one. (你一个接一个地跳格子。)"}

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


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-05-07 10:42:17
updated_at: 2026-05-07 10:42:17
raw_config:
[cell repeats an earlier one in this file: 242 characters]

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:
[cell repeats an earlier one in this file: 209 characters]


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-05-07 10:42:20
updated_at: 2026-05-07 10:42:20
raw_config:
[cell repeats an earlier one in this file: 295 characters]

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": ["00", "02", "01"], "preDialog": [{"type": "npc", "npcName": "Sarah", "content": "Look! So many gloves there!"}], "tip": "fish 指“鱼”；crab 指“螃蟹”；octopus 指“章鱼”", "corFeedback": {"type": "npc", "npcName": "Daisy", "content": "Yes! You got it right!"}, "errFeedback": {"type": "npc", "npcName": "Daisy", "content": "This doesn't seem like a crab."}, "postDialog": [{"type": "npc", "npcName": "Daisy", "content": "very good!"}], "cDesc": "You picked fish, crab and octopus in order. (你按顺序选出了鱼、螃蟹和章鱼。)"}

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


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-05-07 10:42:29
updated_at: 2026-05-07 10:42:29
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": "非常好！英文邮件写给特定对象的标准称呼就是“Dear + 姓名”，这个开头很合适。"}}, {"option": "Hello Rebecca,", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这个表达虽然也可以用于日常打招呼，但正式邮件的称呼通常用Dear更规范哦，再试试吧。"}}, {"option": "Hi Rebecca,", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这个表达更偏向非正式的日常对话，给对方写正式说明情况的邮件用这个称呼不够合适，再想想哦。"}}], "answer": [0], "write": {"desc": "Dear Rebecca,", "trans": "亲爱的丽贝卡："}, "feedback": {"type": "npc", "npcName": "Brainy", "content": "你写的很好！"}}]}, {"leadIn": {"desc": "Tell her your decision and why."}, "learning": [{"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的担心，也清晰说明了你们想要留下探索Wander Port的理由，完全符合语境。"}}, {"option": "I know you are worried. But we don't want to go home now.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句话只说了你们不想回家，没有说明留下和探索Wander Port的关联，没有把原因讲清楚哦，再试一次。"}}, {"option": "I know you are worried. We will be careful, don't worry.", "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": "你写的很好！"}}]}, {"leadIn": {"desc": "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是“项目”的复数形式，不仅和句中的is语法不匹配，语义也不符合当前语境哦，再想想。"}}], "answer": [0], "write": {"desc": "The job is important for us.", "trans": "这项工作对我们来说很重要。"}, "feedback": {"type": "npc", "npcName": "Brainy", "content": "你写的很好！"}}]}, {"leadIn": {"desc": "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": "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是否会来的需求。"}}, {"option": "Do you come to Wander Port some day?", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这个句子是一般现在时，用来询问经常性、习惯性的动作，而你要问的是将来的情况，时态不匹配哦，再试试。"}}, {"option": "Are you coming to Wander Port some day?", "feedback": {"type": "npc", "npcName": "Brainy", "content": "现在进行时表将来通常用于已经计划好的安排，你还不确定Rebecca有没有这个计划，用这个表达不够准确哦，再想想。"}}], "answer": [0], "write": {"desc": "Will you come to Wander Port some day?", "trans": "你会不会哪天来漫游港呀？"}, "feedback": {"type": "npc", "npcName": "Brainy", "content": "你写的很好！"}}]}, {"leadIn": {"desc": "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 you arrive”是询问对方何时到达的正确表达。"}}, {"option": "when is", "feedback": {"type": "npc", "npcName": "Brainy", "content": "arrive是实义动词，疑问句中需要用助动词will/do等，不能用be动词is搭配，语法不正确哦，再试一次。"}}, {"option": "how is", "feedback": {"type": "npc", "npcName": "Brainy", "content": "how是询问方式的疑问词，而你这里要询问的是到达的时间，疑问词和语法都不符合要求哦，再想想。"}}], "answer": [0], "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: 非常好！英文邮件写给特定对象的标准称呼就是“Dear + 姓名”，这个开头很合适。\n（选项 B）Hello Rebecca,\n  Brainy: 这个表达虽然也可以用于日常打招呼，但正式邮件的称呼通常用Dear更规范哦，再试试吧。\n（选项 C）Hi Rebecca,\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的担心，也清晰说明了你们想要留下探索Wander Port的理由，完全符合语境。\n（选项 B）I know you are worried. But we don't want to go home now.\n  Brainy: 这句话只说了你们不想回家，没有说明留下和探索Wander Port的关联，没有把原因讲清楚哦，再试一次。\n（选项 C）I know you are worried. We will be careful, don't worry.\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动词are，和句中的is不匹配哦，再试试。\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: 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是否会来的需求。\n（选项 B）Do you come to Wander Port some day?\n  Brainy: 这个句子是一般现在时，用来询问经常性、习惯性的动作，而你要问的是将来的情况，时态不匹配哦，再试试。\n（选项 C）Are you coming to Wander Port some day?\n  Brainy: 现在进行时表将来通常用于已经计划好的安排，你还不确定Rebecca有没有这个计划，用这个表达不够准确哦，再想想。\n\n# 问题6：\nBrainy: 你想问对方如果来的话，什么时候会到，句子“If so, _________ you arrive?”的空格处应该填什么？\n用户选项:\n（选项 A）when will [正确]\n  Brainy: 答对啦！询问将来的时间要用一般将来时，“when will you arrive”是询问对方何时到达的正确表达。\n（选项 B）when is\n  Brainy: arrive是实义动词，疑问句中需要用助动词will/do等，不能用be动词is搭配，语法不正确哦，再试一次。\n（选项 C）how is\n  Brainy: 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? If so, when will you arrive?（亲爱的丽贝卡：我知道你很担心。但这是我们探索漫游港的最佳机会。这项工作对我们来说很重要。这就是我们必须留下来的原因。你会不会哪天来漫游港呀？如果会的话，你什么时候到呢？）"}

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: 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-05-07 10:49:54
updated_at: 2026-05-07 10:49:54
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": "你在单词城堡探索时听到Ben询问河马的栖息地，你想到河马生活在湖里，便把单词“lake”拖到空白处补全了句子。接着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": "你在单词城堡探索时听到Ben询问河马的栖息地，你想到河马生活在湖里，便把单词“lake”拖到空白处补全了句子。接着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": "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问你“河马住在哪里呀？”，你要从三个选项里选出正确的单词填进去，告诉Ben河马的居住地哦~"}, "optionList": [{"option": "lake", "feedback": {"type": "npc", "npcName": "Brainy", "content": "答对啦！河马是半水生动物，住在湖里是很合理的哦，现在跟着我大声朗读这个句子：\"Hippos live in the lake.\" 吧~"}}, {"option": "tree", "feedback": {"type": "npc", "npcName": "Brainy", "content": "河马体型很重，而且不会爬树，不可能住在树上哦，结合图片里的河马的生活环境再想想看？"}}, {"option": "grass", "feedback": {"type": "npc", "npcName": "Brainy", "content": "河马大部分时间都待在水里，不会住在草里哦，再选一次试试看吧~"}}], "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": "湖是河马的栖息地，我们刚才已经说过河马啦，问题问的是其他的哦，再想想看？"}}, {"option": "tree", "feedback": {"type": "npc", "npcName": "Brainy", "content": "答对啦！动物园里还有很多住在树上的小动物，比如小猴子、小鸟都离不开树哦，现在跟着我大声朗读：\"There are trees in the zoo for small animals.\" 吧~"}}, {"option": "grass", "feedback": {"type": "npc", "npcName": "Brainy", "content": "草是长在地上的植物，不是动物的栖息地哦，结合动物园里的场景再选一次吧~"}}], "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问你“河马住在哪里呀？”，你要从三个选项里选出正确的单词填进去，告诉Ben河马的居住地哦~\n- 选项 A：lake [正确]\n  Brainy：答对啦！河马是半水生动物，住在湖里是很合理的哦，现在跟着我大声朗读这个句子：\"Hippos live in the lake.\" 吧~\n- 选项 B：tree\n  Brainy：河马体型很重，而且不会爬树，不可能住在树上哦，结合图片里的河马的生活环境再想想看？\n- 选项 C：grass\n  Brainy：河马大部分时间都待在水里，不会住在草里哦，再选一次试试看吧~\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：湖是河马的栖息地，我们刚才已经说过河马啦，问题问的是其他的哦，再想想看？\n- 选项 B：tree [正确]\n  Brainy：答对啦！动物园里还有很多住在树上的小动物，比如小猴子、小鸟都离不开树哦，现在跟着我大声朗读：\"There are trees in the zoo for small animals.\" 吧~\n- 选项 C：grass\n  Brainy：草是长在地上的植物，不是动物的栖息地哦，结合动物园里的场景再选一次吧~\n\n---\n\n# 完结反馈\nBrainy：太棒了！你今天学会了lake、tree、grass这些单词，还知道了不同动物的居住环境，英语表达越来越厉害啦，下次我们再一起学习更多有趣的英语知识哦~\n```", "互动描述": "As you explore the word castle, you hear Ben ask where hippos live. You figure out hippos live in the lake, so you drag the word \"lake\" to fill the blank, making the sentence complete.（你在单词城堡探索时听到Ben询问河马的栖息地，你想到河马生活在湖里，便把单词“lake”拖到空白处补全了句子。）\nNext, Brainy asks what other animals you can find in the zoo. You know trees are part of the zoo's environment for animals, so you pick \"tree\" as the right fit for this part.（接着Brainy问动物园里还有什么其他相关的事物，你知道树木是动物园里动物栖息环境的一部分，于是选出了合适的单词“tree”。）"}

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_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-05-07 10:50:04
updated_at: 2026-05-07 10:50:04
raw_config:
[cell repeats an earlier one in this file: 2351 characters]

final_config_json:
  {"cType": "core_reading_order", "cId": "0000800", "title": "Vala学院社团加入指南", "sceneDesc": "你们听说Vala学院没有考试，正在欢呼雀跃。突然发现Pioneer的一项重要任务：加入社团！为什么Pioneer一定要加入社团呢？快来阅读Brainy的介绍吧。", "img": "", "key": [{"desc": "词汇类", "keyList": [{"type": "default", "content": "plant", "desc": "n. 植物"}, {"type": "default", "content": "club", "desc": "n. 俱乐部"}, {"type": "default", "content": "join", "desc": "v. 加入"}, {"type": "default", "content": "member", "desc": "n. 成员"}, {"type": "default", "content": "choose", "desc": "v. 选择"}, {"type": "default", "content": "interested", "desc": "adj. 感兴趣的"}]}], "resourceMapping": {"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": "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:
[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": "我们来认识一下这段话中的关键单词 exams。exams 的意思是考试，我们平常说的参加考试就可以说 take exams。", "npcName": "Brainy", "learning": [{"answer": [0], "meaning": "句意选择题", "optionList": [{"feedback": {"type": "npc", "content": "答对啦！你已经准确理解了exams的含义和这个句子的意思哦～", "npcName": "Brainy"}, "option": "在瓦拉学院，开拓者们没有考试。"}, {"feedback": {"type": "npc", "content": "不对哦，课程的英文是lessons，我们这里说的exams是考试的意思，再回忆一下它的释义吧。", "npcName": "Brainy"}, "option": "在瓦拉学院，开拓者们没有课程。"}], "question": {"type": "npc", "npcName": "Brainy", "content": "接下来，我们来看下包含 exams 的句子 At Vala Academy, Pioneers don't have exams. 是什么意思呢？"}}, {"answer": [0], "meaning": "段落大意题", "optionList": [{"feedback": {"type": "npc", "content": "太棒了！你精准抓住了段落里的两个核心信息，理解得非常到位～", "npcName": "Brainy"}, "option": "在瓦拉学院，开拓者不需要考试，但是需要积分来升级。"}, {"feedback": {"type": "npc", "content": "不对哦，文中明确说了开拓者们don't have exams，也就是没有考试，再仔细读一读段落内容吧。", "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的意思是俱乐部，我们常说的足球俱乐部就是football 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：我们来认识一下这段话中的关键单词 exams。exams 的意思是考试，我们平常说的参加考试就可以说 take exams。\n1. 句意选择题\nBrainy：接下来，我们来看下包含 exams 的句子 At Vala Academy, Pioneers don't have exams. 是什么意思呢？\n- 在瓦拉学院，开拓者们没有考试。[正确]\n  Brainy：答对啦！你已经准确理解了exams的含义和这个句子的意思哦～\n- 在瓦拉学院，开拓者们没有课程。\n  Brainy：不对哦，课程的英文是lessons，我们这里说的exams是考试的意思，再回忆一下它的释义吧。\n\n2. 段落大意题\nBrainy：了解了关键单词和关键句子的意思，那我们来一起看看这一段主要在说什么呢？\n- 在瓦拉学院，开拓者不需要考试，但是需要积分来升级。[正确]\n  Brainy：太棒了！你精准抓住了段落里的两个核心信息，理解得非常到位～\n- 在瓦拉学院，开拓者既需要参加考试，也需要积分来升级。\n  Brainy：不对哦，文中明确说了开拓者们don't have exams，也就是没有考试，再仔细读一读段落内容吧。\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的意思是俱乐部，我们常说的足球俱乐部就是football 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_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-05-07 10:50:20
updated_at: 2026-05-07 10:50:20
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": "类型1的描述", "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": "类型1的描述", "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. We need to give her some bananas.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句是说“大象饿了，我们需要给她一些香蕉”，现在我们要和对方说大象洗澡相关的事哦，和当前情境不匹配，再选一次吧~"}}, {"option": "The keeper is having a rest now. Don't disturb him.", "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 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": "Let's go and play somewhere else first.", "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 don't have time.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句是说“抱歉，我们没时间”，但我们本来就是想要帮大象洗澡的，所以这句话不对哦，再试试看~"}}, {"option": "We have no idea how to shower an elephant.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句是说“我们不知道怎么给大象洗澡”，现在我们要表达的是乐意帮忙的态度，和这句话不符哦，再选一次吧~"}}], "answer": [0], "read": {"type": "user", "content": "We'd love to help."}, "feedback": {"type": "npc", "npcName": "Logan", "content": "Great. We will send some water to her right away."}}], "closing": {"type": "npc", "npcName": "Brainy", "content": "太棒啦！你已经顺利完成了这次对话任务，成功和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 hungry. We need to give her some bananas.\n  Brainy：这句是说“大象饿了，我们需要给她一些香蕉”，现在我们要和对方说大象洗澡相关的事哦，和当前情境不匹配，再选一次吧~\n（C）The keeper is having a rest now. Don't disturb him.\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 together.\n  Brainy：这句是说“我们应该一起等饲养员来”，不是我们想要先去打水的意思哦，不符合现在要表达的内容，再选一次吧~\n（B）Instead of waiting here, we'd better get some water for her first.\n  Brainy：完全正确！来试着把这句话朗读出来吧~\n（C）Let's go and play somewhere else first.\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 don't have time.\n  Brainy：这句是说“抱歉，我们没时间”，但我们本来就是想要帮大象洗澡的，所以这句话不对哦，再试试看~\n（C）We have no idea how to shower an elephant.\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. 如果用户没有说清楚是否愿意帮忙，你可以用更简单的表达再询问一次，比如\"Will you help the elephant?\"。\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": "# 1. 角色（你要扮演谁）\n你是Logan，在Wander Port的清洁站工作。你的语言风格亲切友好，简单易懂，适合儿童理解。\n# 2. 任务（你如何参与对话）\n1. 首轮对话先询问用户大象的情况，确认大象是否需要洗澡。\n2. 当用户告知大象需要洗澡后，你可以说明或许饲养员很快就会来，让用户稍等一下。\n3. 接下来询问用户是否愿意帮忙给大象洗澡。\n4. 如果用户明确表示愿意帮忙，你要先表达感谢，再告诉对方你会马上送干净的水过去。\n5. 如果用户没有说清楚是否愿意帮忙，你可以用更简单的表达再询问一次，比如\"Will you help the elephant?\"。\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-05-07 10:50:21
updated_at: 2026-05-07 10:50:21
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:
[cell repeats an earlier one in this file: 643 characters]

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": "这句话是询问健身房位置的，你已经知道位置啦，现在需要问能不能拿到毛巾，再试一次吧。"}}, {"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：这句话是询问健身房位置的，你已经知道位置啦，现在需要问能不能拿到毛巾，再试一次吧。\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- 你对之前帮你解过围的用户格外友善热情。\n# 2. 任务（你如何参与到整个对话）\n- 你只在用户提问时提供特定信息，不主动透露知识库中的信息。\n- 如果用户提问的内容在知识库范围内，你会准确回答。\n- 如果用户的问题不清晰，你会尝试确认问题。\n- 一般情况下，一次最多只回答知识库中的一条信息，除非用户明确地分别提问到多条信息。\n- 如果用户不提问，你会温和、自然地进行交谈。\n# 3. 背景信息\n你是 Chloe，是 Twilight 的空乘，服务好每一位乘客是你的使命。用户之前帮你在另一位乘客面前解了围，你很感谢用户的帮忙，对用户的态度也格外友善热情。你发现用完餐的用户正在东张西望，似乎在寻找什么，你确认用户需要帮助，于是上前询问。你发现用户想去健身房消消食，但是不知道方向，于是回答了用户的问题，提供了你的帮助。\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,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# 3. 背景信息\n你是 Chloe，是 Twilight 的空乘，服务好每一位乘客是你的使命。用户之前帮你在另一位乘客面前解了围，你很感谢用户的帮忙，对用户的态度也格外友善热情。你发现用完餐的用户正在东张西望，似乎在寻找什么，你确认用户需要帮助，于是上前询问。你发现用户想去健身房消消食，但是不知道方向，于是回答了用户的问题，提供了你的帮助。\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 的空乘，服务好每一位乘客是你的使命。用户之前帮你在另一位乘客面前解了围，你很感谢用户的帮忙，对用户的态度也格外友善热情。你发现用完餐的用户正在东张西望，似乎在寻找什么，你确认用户需要帮助，于是上前询问。你发现用户想去健身房消消食，但是不知道方向，于是回答了用户的问题，提供了你的帮助。", "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-05-07 10:50:52
updated_at: 2026-05-07 10:50:52
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": "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": "Perfect! You got all the answers right. You really 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: 这句话的意思是寒冷的，但老师现在问的是当前的季节是什么，和天气感受无关哦。请再仔细听清问题，告诉老师现在的季节。\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:
[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-05-07 10:51:01
updated_at: 2026-05-07 10:51:01
raw_config:
[cell repeats an earlier one in this file: 2377 characters]

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:
[cell repeats an earlier one in this file: 739 characters]

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:
[cell repeats an earlier one in this file: 2596 characters]

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": [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", "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，意思是在家烘焙。正确的发音是 /beɪk æt həʊm/。\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 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 part of living a healthy life.（你还了解到保持健康不需要很多钱或者昂贵的物品，好习惯才是健康生活最重要的部分。）"}


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-05-07 10:51:13
updated_at: 2026-05-07 10:51:13
raw_config:
[cell repeats an earlier one in this file: 173 characters]

final_config_json:
  {"cType": "mid_dialog_express", "cId": "0000800", "title": "回答养蜂人的问题", "asrPrompt": "养蜂人,蜂蜜,Spring,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:
[cell repeats an earlier one in this file: 210 characters]


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-05-07 10:51:54
updated_at: 2026-05-07 10:51:54
raw_config:
[cell repeats an earlier one in this file: 975 characters]

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

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

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

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是可数名词复数，对应的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": "你要向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会不会来Wander Port，现在想进一步询问她什么时候会到，需要补全句子“___ you arrive?"}, "optionList": [{"option": "When will", "feedback": {"type": "npc", "npcName": "Brainy", "content": "答对啦！询问将来的时间要用一般将来时，When will you arrive? 准确表达了“你什么时候会到？”的意思，符合语境要求。"}}, {"option": "When is", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，arrive是实义动词，不能和be动词is直接搭配使用，一般将来时需要用助动词will，再试一次哦。"}}, {"option": "How is", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，首先how是询问方式的，这里我们要问的是到达的时间，其次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，顺利完成了给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是可数名词复数，对应的be动词应该是are，和句子里的is不匹配，再想想呀。\n（选项 C）projects\n  Brainy: 不对哦，projects是可数名词复数，对应的be动词应该是are，和句子里的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会不会来Wander Port，现在想进一步询问她什么时候会到，需要补全句子“___ you arrive?”\n用户选项:\n（选项 A）When will [正确]\n  Brainy: 答对啦！询问将来的时间要用一般将来时，When will you arrive? 准确表达了“你什么时候会到？”的意思，符合语境要求。\n（选项 B）When is\n  Brainy: 不对哦，arrive是实义动词，不能和be动词is直接搭配使用，一般将来时需要用助动词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? When will you arrive?\n（亲爱的丽贝卡：我知道你很担心。但这是我们探索漫游港的最佳机会。这项任务对我们很重要。这就是我们必须留下来的原因。你将来会来漫游港吗？你什么时候会到？）"}

text_info_json:
[cell repeats an earlier one in this file: 789 characters]

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: 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-05-07 10:51:58
updated_at: 2026-05-07 10:51:58
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:
[cell repeats an earlier one in this file: 227 characters]


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-05-07 10:52:01
updated_at: 2026-05-07 10:52:01
final_config_json:
  {"cType": "mid_message_word", "cId": "0000800", "title": "填写信息表", "resourceMapping": {"Vicky": 658}, "cDesc": "You filled \"knowledge\" and \"information\" in the blanks. (你把“知识”对应的单词填在了空白处。)", "question": {"desc": "请在空白处填入合适的单词，使句意完整"}, "tip": "需要填入的单词的中文释义是“知识”", "answer": ["knowledge", "information"], "img": "0000800.png", "inputSet": []}

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


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

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

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", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这个短语的意思是“动物种类”，是记录里的分项内容，不是整张记录的标题哦，再想想看。"}}, {"option": "Cleaning Note", "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": "Elephant", "feedback": {"type": "npc", "npcName": "Brainy", "content": "答对啦！我们这次护理的动物就是大象，这个填写完全正确。"}}, {"option": "Banana", "feedback": {"type": "npc", "npcName": "Brainy", "content": "香蕉是给大象喂的食物，不是动物种类哦，不符合这个空的要求，再想想。"}}, {"option": "Shower", "feedback": {"type": "npc", "npcName": "Brainy", "content": "洗澡是我们给大象做的清洁项目，不是动物种类，填在这里不合适哦。"}}], "answer": [0], "write": {"desc": "Elephant", "trans": "大象"}, "feedback": {"type": "npc", "npcName": "Brainy", "content": "你写的很好！"}}]}, {"leadIn": {"image": "0000800-02.png"}, "learning": [{"question": {"type": "npc", "npcName": "Brainy", "content": "现在要填写食物部分的记录，我们今天喂大象吃了香蕉，“She ate ___.”这个空应该填什么呢？"}, "optionList": [{"option": "bananas", "feedback": {"type": "npc", "npcName": "Brainy", "content": "太对了！你准确记录了大象今天吃的食物是香蕉，很棒~"}}, {"option": "carrots", "feedback": {"type": "npc", "npcName": "Brainy", "content": "胡萝卜虽然也是动物常吃的食物，但我们今天喂给大象的是香蕉哦，不符合实际护理情况，再选选。"}}, {"option": "a shower", "feedback": {"type": "npc", "npcName": "Brainy", "content": "洗澡是清洁项目，不是食物，不能填在食物这一栏里哦，再想想。"}}], "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": "接下来填写清洁部分的内容，我们今天给大象洗了澡，“She had ___ today.”这个空应该填什么呢？"}, "optionList": [{"option": "a shower", "feedback": {"type": "npc", "npcName": "Brainy", "content": "完全正确！你准确记下了今天给大象安排了洗澡的清洁项目，很不错。"}}, {"option": "bananas", "feedback": {"type": "npc", "npcName": "Brainy", "content": "香蕉是大象吃的食物，不属于清洁项目，不能填在清洁这一栏哦，再试一次。"}}, {"option": "a walk", "feedback": {"type": "npc", "npcName": "Brainy", "content": "散步是活动项目，我们今天没有带大象散步，而且这也不属于清洁内容哦，不符合要求。"}}], "answer": [0], "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": "记录里有一个问题是“她喜欢什么？”，你需要选出对应这个提问的正确回答，填写在记录里，应该选哪一个呢？"}, "optionList": [{"option": "The elephant loves showers and bananas!", "feedback": {"type": "npc", "npcName": "Brainy", "content": "太厉害啦！这句话准确回答了大象的喜好，完美对应前面的问题。"}}, {"option": "The elephant eats bananas every day.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句话只是说大象每天吃香蕉，没有回答它喜欢什么，也没提到它喜欢洗澡的内容，不符合问题要求哦。"}}, {"option": "We gave the elephant a shower today.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句话说的是我们今天给大象洗澡的行为，不是在回答大象喜欢什么，答非所问啦，再想想。"}}], "answer": [0], "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(s) to...，描述了三张图中的各个细节，完成了大象护理记录的填写!"}}

intermediate_json:
  {"学习流程配置": "```\n# 问题1：\nBrainy: 现在你要开始填写大象护理记录了，首先需要写下这份记录的标题，你应该选择哪个表述呢？\n用户选项:\n（选项 A）Animal Keeper's Record [正确]\n  Brainy: 太棒啦！这正是饲养员护理记录的标准标题，选对了~\n（选项 B）Animal Type\n  Brainy: 这个短语的意思是“动物种类”，是记录里的分项内容，不是整张记录的标题哦，再想想看。\n（选项 C）Cleaning Note\n  Brainy: 这个短语的意思是“清洁记录”，只能对应清洁部分的内容，不能作为整张护理记录的标题，再试一次吧。\n\n# 问题2：\nBrainy: 接下来要填写动物种类这一项，你看看护理的对象是大象，这里应该填什么呢？\n用户选项:\n（选项 A）Elephant [正确]\n  Brainy: 答对啦！我们这次护理的动物就是大象，这个填写完全正确。\n（选项 B）Banana\n  Brainy: 香蕉是给大象喂的食物，不是动物种类哦，不符合这个空的要求，再想想。\n（选项 C）Shower\n  Brainy: 洗澡是我们给大象做的清洁项目，不是动物种类，填在这里不合适哦。\n\n# 问题3：\nBrainy: 现在要填写食物部分的记录，我们今天喂大象吃了香蕉，“She ate ___.”这个空应该填什么呢？\n用户选项:\n（选项 A）bananas [正确]\n  Brainy: 太对了！你准确记录了大象今天吃的食物是香蕉，很棒~\n（选项 B）carrots\n  Brainy: 胡萝卜虽然也是动物常吃的食物，但我们今天喂给大象的是香蕉哦，不符合实际护理情况，再选选。\n（选项 C）a shower\n  Brainy: 洗澡是清洁项目，不是食物，不能填在食物这一栏里哦，再想想。\n\n# 问题4：\nBrainy: 接下来填写清洁部分的内容，我们今天给大象洗了澡，“She had ___ today.”这个空应该填什么呢？\n用户选项:\n（选项 A）a shower [正确]\n  Brainy: 完全正确！你准确记下了今天给大象安排了洗澡的清洁项目，很不错。\n（选项 B）bananas\n  Brainy: 香蕉是大象吃的食物，不属于清洁项目，不能填在清洁这一栏哦，再试一次。\n（选项 C）a walk\n  Brainy: 散步是活动项目，我们今天没有带大象散步，而且这也不属于清洁内容哦，不符合要求。\n\n# 问题5：\nBrainy: 记录里有一个问题是“她喜欢什么？”，你需要选出对应这个提问的正确回答，填写在记录里，应该选哪一个呢？\n用户选项:\n（选项 A）The elephant loves showers and bananas! [正确]\n  Brainy: 太厉害啦！这句话准确回答了大象的喜好，完美对应前面的问题。\n（选项 B）The elephant eats bananas every day.\n  Brainy: 这句话只是说大象每天吃香蕉，没有回答它喜欢什么，也没提到它喜欢洗澡的内容，不符合问题要求哦。\n（选项 C）We gave the elephant a shower today.\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!（动物饲养员记录 动物种类：大象 食物：她吃了香蕉。 清洁：她今天洗了个澡。 她喜欢什么呢？ 这头大象喜欢洗澡和香蕉！）"}

text_info_json:
  {"inputType": "write", "passCondition": "说明动物类型是大象。说明大象吃了香蕉。说明大象洗了澡。表达大象喜欢香蕉和洗澡。", "textList": [{"mode": "preset", "desc": "Animal Keeper's Record"}, {"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?"}, {"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"}, {"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?"}, {"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: 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-05-07 10:52:08
updated_at: 2026-05-07 10:52:09
raw_config:
[cell repeats an earlier one in this file: 199 characters]

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

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


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-05-07 10:52:10
updated_at: 2026-05-07 10:52:10
raw_config:
[cell repeats an earlier one in this file: 176 characters]

final_config_json:
  {"cType": "mid_message_sentence", "cId": "0000800", "title": "填写信息表", "resourceMapping": {"Vicky": 658}, "cDesc": "You filled the information form with correct content.（你填写了信息表的正确内容。）", "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:
[cell repeats an earlier one in this file: 229 characters]


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-05-07 10:52:17
updated_at: 2026-05-07 10:52:17
raw_config:
[cell repeats an earlier one in this file: 242 characters]

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

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


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-05-07 10:52:18
updated_at: 2026-05-07 10:52:18
raw_config:
[cell repeats an earlier one in this file: 295 characters]

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:
[cell repeats an earlier one in this file: 211 characters]


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

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?\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": "太棒了！这是英文邮件写给熟人的标准称呼方式，非常合适。"}}, {"option": "Hello Rebecca?", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这个表达的标点使用有误，句末不需要问号，而且正式邮件开头通常用\"Dear + 名字\"的格式哦，再试一下吧。"}}, {"option": "Hi Rebecca!", "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的担心，同时说明你们想留在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": "I know you are worried. We have to leave Wander Port now.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句话后半部分说你们现在要离开Wander Port，和你们决定留下探索的实际情况不符哦，再试一下吧。"}}, {"option": "Don't worry, we will come back right now.", "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动词are，和句子里的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": "你写的很好！"}}, {"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 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": "Do you come to Wander Port some day?", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这个句子用了一般现在时，是询问经常性的行为，而你要问的是未来的计划，时态不合适哦。"}}, {"option": "Are you come to Wander Port some day?", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这个表达有语法错误，be动词are不能直接和动词原形come搭配使用哦，再调整一下吧。"}}], "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 will", "feedback": {"type": "npc", "npcName": "Brainy", "content": "答对啦！询问将来的时间要用一般将来时，\"when will you arrive\"是正确的疑问句结构，符合语境。"}}, {"option": "when is", "feedback": {"type": "npc", "npcName": "Brainy", "content": "arrive是实义动词，疑问句里需要用助动词will/do等，不能用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": "恭喜你，你掌握了英文邮件的正确称呼格式、回应他人担忧的表达、固定句式\"That's why...\"以及一般将来时询问未来计划和时间的用法，顺利完成了给Rebecca的邮件编写！"}}

intermediate_json:
  {"学习流程配置": "```\n# 问题1：\nBrainy: 邮件开头你需要称呼Rebecca，以下哪个选项是正确的开头？\n用户选项:\n（选项 A）Dear Rebecca, [正确]\n  Brainy: 太棒了！这是英文邮件写给熟人的标准称呼方式，非常合适。\n（选项 B）Hello Rebecca?\n  Brainy: 这个表达的标点使用有误，句末不需要问号，而且正式邮件开头通常用\"Dear + 名字\"的格式哦，再试一下吧。\n（选项 C）Hi Rebecca!\n  Brainy: 这个表达比较口语化，更适合日常聊天，写给担心你们安全的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）I know you are worried. We have to leave Wander Port now.\n  Brainy: 这句话后半部分说你们现在要离开Wander Port，和你们决定留下探索的实际情况不符哦，再试一下吧。\n（选项 C）Don't worry, we will come back right now.\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动词are，和句子里的is不匹配哦，再想想看。\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: 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）Do you come to Wander Port some day?\n  Brainy: 这个句子用了一般现在时，是询问经常性的行为，而你要问的是未来的计划，时态不合适哦。\n（选项 C）Are you come to Wander Port some day?\n  Brainy: 这个表达有语法错误，be动词are不能直接和动词原形come搭配使用哦，再调整一下吧。\n\n# 问题6：\nBrainy: 你接着想问如果她来的话，什么时候会到，句子\"If so, _________ you arrive?\"的空格处应该填什么？\n用户选项:\n（选项 A）when will [正确]\n  Brainy: 答对啦！询问将来的时间要用一般将来时，\"when will you arrive\"是正确的疑问句结构，符合语境。\n（选项 B）when is\n  Brainy: arrive是实义动词，疑问句里需要用助动词will/do等，不能用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": ""}, {"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: 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-05-07 11:28:47
updated_at: 2026-05-07 11:28:47
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": "As you explore the word castle, you come across Ben’s question about where hippos live, and you fill the blank with \"lake\", figuring out hippos make their homes in the lake (你在单词城堡探险时遇到了Ben关于河马栖息地的问题，填入lake后知道了河马生活在湖里。) Next, you answer Brainy’s question about other zoo animals, picking \"tree\" as the right fit, and learn there are also animals that live in trees in the zoo (接着你回答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": "As you explore the word castle, you come across Ben’s question about where hippos live, and you fill the blank with \"lake\", figuring out hippos make their homes in the lake (你在单词城堡探险时遇到了Ben关于河马栖息地的问题，填入lake后知道了河马生活在湖里。) Next, you answer Brainy’s question about other zoo animals, picking \"tree\" as the right fit, and learn there are also animals that live in trees in the zoo (接着你回答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": "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问“河马生活在哪里？”，我们需要选一个河马生存的地点填到横线上哦。"}, "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": "湖一般是自然环境里的水域，不是动物园里的典型事物哦，再根据动物园的场景想一想吧。"}}, {"option": "tree", "feedback": {"type": "npc", "npcName": "Brainy", "content": "太棒了！动物园里会有很多树来给动物营造适宜的生存环境，现在大声读出tree这个单词吧。"}}, {"option": "grass", "feedback": {"type": "npc", "npcName": "Brainy", "content": "草虽然在动物园里也可能有，但不是这道题的正确答案哦，再选一次吧。"}}], "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问“河马生活在哪里？”，我们需要选一个河马生存的地点填到横线上哦。\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：湖一般是自然环境里的水域，不是动物园里的典型事物哦，再根据动物园的场景想一想吧。\n- 选项 B：tree [正确]\n  Brainy：太棒了！动物园里会有很多树来给动物营造适宜的生存环境，现在大声读出tree这个单词吧。\n- 选项 C：grass\n  Brainy：草虽然在动物园里也可能有，但不是这道题的正确答案哦，再选一次吧。\n\n---\n\n# 完结反馈\nBrainy：太棒了！你复习了lake、tree、grass这些核心词汇，还学会了怎么在对话场景里使用它们，今天的英语对话任务完成得超出色哦，继续加油呀！\n```", "互动描述": "As you explore the word castle, you come across Ben’s question about where hippos live, and you fill the blank with \"lake\", figuring out hippos make their homes in the lake (你在单词城堡探险时遇到了Ben关于河马栖息地的问题，填入lake后知道了河马生活在湖里。)\nNext, you answer Brainy’s question about other zoo animals, picking \"tree\" as the right fit, and learn there are also animals that live in trees in the zoo (接着你回答Brainy关于动物园其他动物的问题，选了tree后了解到动物园里还有栖息在树上的动物。)"}

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_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-05-07 11:29:00
updated_at: 2026-05-07 11:29:00
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": "我们来认识一下这段话中的关键单词 exam，exam 的意思是考试，参加考试可以说 take an exam。", "npcName": "Brainy", "learning": [{"answer": [0], "meaning": "句意选择题", "optionList": [{"feedback": {"type": "npc", "content": "太棒啦！你准确理解了exam的含义，完全掌握了这个句子的意思哦~", "npcName": "Brainy"}, "option": "在瓦拉学院，开拓者们不用考试。"}, {"feedback": {"type": "npc", "content": "不对哦，“上课”和句中的exam意思不符，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": "这可不对哦，文中明确说开拓者们没有考试，要靠积分升级，再仔细读一下内容吧。", "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": "不对哦，“班级”和我们说的club意思不一样，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：我们来认识一下这段话中的关键单词 exam，exam 的意思是考试，参加考试可以说 take an exam。\n1. 句意选择题\nBrainy：接下来，我们来看下包含 exam 的句子 At Vala Academy, Pioneers don't have exams. 是什么意思呢？\n- 在瓦拉学院，开拓者们不用考试。[正确]\n  Brainy：太棒啦！你准确理解了exam的含义，完全掌握了这个句子的意思哦~\n- 在瓦拉学院，开拓者们不用上课。\n  Brainy：不对哦，“上课”和句中的exam意思不符，exam是考试的意思，再回忆一下释义吧。\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：不对哦，“班级”和我们说的club意思不一样，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_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-05-07 11:29:15
updated_at: 2026-05-07 11:29:15
raw_config:
[cell repeats an earlier one in this file: 1022 characters]

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

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

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

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": "你已经问过健身房的位置啦，现在需要索要毛巾，再试一次哦。"}}, {"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": [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": "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：你已经问过健身房的位置啦，现在需要索要毛巾，再试一次哦。\n（选项B）Can I have a towel please? [正确]\n  Brainy：太对啦！你准确地表达了想要毛巾的需求。请大声朗读这句话！\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,relax,walkway"}

dialog_config_json:
  {"config": {"asrPrompt": "gym,towel,exercise,sightseeing,relax,walkway", "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_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-05-07 11:29:16
updated_at: 2026-05-07 11:29:16
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": "类型1的描述", "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:
[cell repeats an earlier one in this file: 615 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 hungry. We need to give her some bananas.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，这句话是说“大象饿了，我们需要给她一些香蕉”，现在我们要告诉Logan的是大象需要洗澡，不是饿啦，再试一次吧。"}}, {"option": "The keeper is looking for the elephant everywhere.", "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 keeper to come first.", "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": "Do you know where the keeper is now?", "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 don't have time, we have to go home now.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，这句话是说“我们没时间，我们现在得回家了”，我们本来就是想要帮大象洗澡的，所以这个回答不对，再试一次吧。"}}, {"option": "We are afraid we can't help you.", "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 hungry. We need to give her some bananas.\n  Brainy：不对哦，这句话是说“大象饿了，我们需要给她一些香蕉”，现在我们要告诉Logan的是大象需要洗澡，不是饿啦，再试一次吧。\n（C）The keeper is looking for the elephant everywhere.\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 keeper to come first.\n  Brainy：不对哦，这句话是说“我们必须先等饲养员过来”，和我们要表达的不等了、先去取水的意思正好相反，再试一次吧。\n（B）Instead of waiting here, we'd better get some water for her first.\n  Brainy：你选对啦，非常棒！试着把这句话大声读出来吧~\n（C）Do you know where the keeper is now?\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 don't have time, we have to go home now.\n  Brainy：不对哦，这句话是说“我们没时间，我们现在得回家了”，我们本来就是想要帮大象洗澡的，所以这个回答不对，再试一次吧。\n（C）We are afraid we can't help you.\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. 如果用户答非所问，没有提到和大象洗澡相关的内容，友好地把话题拉回，重复你当前提出的问题。\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. 如果用户答非所问，没有提到和大象洗澡相关的内容，友好地把话题拉回，重复你当前提出的问题。\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_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-05-07 11:29:40
updated_at: 2026-05-07 11:29:40
raw_config:
[cell repeats an earlier one in this file: 559 characters]

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:
[cell repeats an earlier one in this file: 462 characters]

task_info_json:
[cell repeats an earlier one in this file: 586 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": "这句话的意思是“寒冷的”，但老师现在问的是现在是什么季节，不是问天气感受哦。请再仔细听清问题，告诉老师现在的季节。"}}, {"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": "You did a great job answering all my questions 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：这句话的意思是“寒冷的”，但老师现在问的是现在是什么季节，不是问天气感受哦。请再仔细听清问题，告诉老师现在的季节。\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:
[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_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-05-07 11:29:45
updated_at: 2026-05-07 11:29:45
raw_config:
[cell repeats an earlier one in this file: 1095 characters]

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:
[cell repeats an earlier one in this file: 898 characters]

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 holiday，意思是暑假。正确的发音是 summer holiday。", "type": "npc", "npcName": "Brainy"}, "extendQuestion": {"content": "仔细听音频，选出你听到的句子哦。", "type": "npc", "npcName": "Brainy"}, "optionList": [{"option": "This summer holiday!", "feedback": {"type": "npc", "content": "太厉害啦！你精准听出了句子里的重点短语 summer holiday！", "npcName": "Brainy"}}, {"option": "This winter holiday!", "feedback": {"type": "npc", "content": "哎呀，这句话里说的是 winter holiday（寒假），不是我们听到的内容哦，再仔细听听看吧~", "npcName": "Brainy"}}], "answer": [0]}, {"question": {"content": "This summer!", "type": "npc", "npcName": "Brainy"}, "extendQuestion": {"content": "“这个寒假！”这句话的意思是这个吗？", "type": "npc", "npcName": "Brainy"}, "optionList": [{"option": "错 / No", "feedback": {"type": "npc", "content": "答对啦！你不仅听懂了句子，还分清了 summer 和 winter 的不同意思，超棒的！", "npcName": "Brainy"}}, {"option": "对 / Yes", "feedback": {"type": "npc", "content": "不对哦，句子里说的是夏天相关的假期，不是冬天的假期，再想想看吧~", "npcName": "Brainy"}}], "answer": [0]}]}], "closing": {"type": "npc", "content": "很好！你已经回答完了全部问题，相信你已经听懂了这个任务中所有的重点句子。现在让我们来查看结果吧!", "npcName": "Brainy"}}

intermediate_json:
  {"学习过程配置": "```\n# 重点句子 1\n音频文本：This summer!\n讲解文本：刚刚听到的音频中，包含了一个关键短语 summer holiday，意思是暑假。正确的发音是 summer holiday。\n1. 听音选句\nBrainy：仔细听音频，选出你听到的句子哦。\n- This summer holiday! [正确]\n  - Brainy：太厉害啦！你精准听出了句子里的重点短语 summer holiday！\n- This winter holiday!\n  - Brainy：哎呀，这句话里说的是 winter holiday（寒假），不是我们听到的内容哦，再仔细听听看吧~\n\n2. 听音选意\nBrainy：“这个寒假！”这句话的意思是这个吗？\n- 错 / No [正确]\n  - Brainy：答对啦！你不仅听懂了句子，还分清了 summer 和 winter 的不同意思，超棒的！\n- 对 / Yes\n  - Brainy：不对哦，句子里说的是夏天相关的假期，不是冬天的假期，再想想看吧~\n---\n# 完成反馈\nBrainy：很好！你已经回答完了全部问题，相信你已经听懂了这个任务中所有的重点句子。现在让我们来查看结果吧!\n```", "互动描述": "请你提供完整的题目材料相关内容哦，目前缺少具体的听力材料内容、核心信息和对应的相关要点，我没办法生成符合要求的描述~"}


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（词义）

status: generated
bitable_token: FrxtwNRQDizqiikPkATcBzTCnYe
db_table: core_interaction_component
created_at: 2026-05-07 11:29:53
updated_at: 2026-05-07 11:29:53
raw_config:
[cell repeats an earlier one in this file: 2377 characters]

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:
[cell repeats an earlier one in this file: 739 characters]

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:
[cell repeats an earlier one in this file: 2596 characters]

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

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": "Oops，这句话说的是 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", "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，意思是在家烘焙。正确的发音是 /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：Oops，这句话说的是 buy at the shop，并没有提到 bake at home 哦。再仔细听一听音频内容吧！\n\n2. 听音选意\nBrainy：刚刚我们听了这句话，也看到了对应的英文文本，那它是什么意思呢？快来选选看吧！\n- 当你非常想吃甜食，比如饼干或者蛋糕时，你可以在家烘焙。[正确]\n  - Brainy：太厉害啦！你完全理解了这句话的意思，还掌握了 bake at home 这个实用短语哦！\n- 当你非常想吃甜食，比如饼干或者蛋糕时，你可以去商店购买。\n  - Brainy：这句话说的是去商店购买的场景，和我们听到的句子内容不一样哦，再想想看吧～\n---\n# 完成反馈\nBrainy：很好！你已经回答完了全部问题，相信你已经听懂了这个任务中所有的重点句子。现在让我们来查看结果吧!\n```", "互动描述": "You listened to an audio titled How to live a healthy life, and learned you should sleep and get up on time, stay away from smoking and alcohol, and good habits matter most instead of money.（你听了题为《如何健康生活》的音频，了解到你应该按时作息，远离烟酒，最重要的是好习惯而非金钱。）"}


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-05-07 11:30:37
updated_at: 2026-05-07 11:30:37
raw_config:
[cell repeats an earlier one in this file: 170 characters]

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


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试-全量)
category: core
cType: core_writing_imgMakeSentence
type_name: 看图组句
level: L1
unit_id: U14
knowledge_points_raw: terrible
status: generated
bitable_token: BkmtwUBwMiHd5Ak7VS6ccE9SnHd
db_table: core_interaction_component
created_at: 2026-05-07 11:30:40
updated_at: 2026-05-07 11:30:40
raw_config:
  【任务名称】
  报告飞船坠毁事件
  【任务背景】
  在森林中，Otis、Skylar 和你通过小熊猫 Bam 和无人机照片搜集到了关于飞船坠落的重要线索。你们需要将这些信息整理并汇报给 Luisa 教授，以便确定飞船的具体坠落位置。
  【任务描述】
  请根据图片内容，用英文写一段求救报告，说明你们现在的处境、遇到的困难和需要的帮助。
  【剧情提要】
  *可选配置* I saw a very cute kitten in the pet shop yesterday. The pattern on his body is black and white, like a cow. It's a month old and perfect for breeding.
  【题干类型】
  图片
  【题干描述】
  3
  【知识】
  - 地点描述
  I think the spaceship fell...  我认为飞船坠落在……
  I saw trees with...  我看到有…… 的树。
  I heard a loud noise in...  我听到…… 方向有巨大的声音。

  【写作类型】
  组句
  【写作材料】
  # 句子 1
  ## 句子类型
  全句预置
  ## 句子内容
  1. 句子主干
  Dear Alex,
  2. 选项
  /
  3. 答案
  /
  # 句子 2
  ## 句子类型
  全句录入
  ## 句子内容
  1. 句子主干
  /
  2. 选项
  - well
  - this email
  - you
  - finds
  - I hope
  - [干扰]：fine
  3. 答案
  I hope this email finds you well.
  ## 图片编号
  01
  # 句子 3
  ## 句子类型
  挖空录入
  ## 句子内容
  ```
  1. 句子主干
  We can ___ each other. 
  2. 选项
  - of
  - take
  - care
  - [干扰]：look
  - [干扰]：for
  3. 答案
  take care of
  ```
  ## 图片编号
  00
  【通过规则】
  用户写出：
  1. 坠机在一个湖附近
  2. 湖周边树木有红黄色的叶子
  3. Bam 听到东北方向的噪音

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

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

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

study_info_json:
  {"learningPart": [{"leadIn": {"image": "0000800-01.png"}, "learning": [{"question": {"type": "npc", "npcName": "Brainy", "content": "你现在要写求救报告，首先需要在开头写上收件人的称呼，正确的称呼应该是？"}, "optionList": [{"option": "Dear Alex,", "feedback": {"type": "npc", "npcName": "Brainy", "content": "太棒啦！这是正式邮件非常标准的开头称呼，完全符合写给收件人的规范哦。"}}, {"option": "Alex, Dear", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，英文信件的称呼格式是“Dear + 称呼”，顺序反过来不符合表达习惯，再试一下吧。"}}, {"option": "Dear Alex?", "feedback": {"type": "npc", "npcName": "Brainy", "content": "很接近啦，但称呼后面应该用感叹号或者逗号，问号是用来表示疑问的，不适合用在称呼后面哦，再调整一下吧。"}}], "answer": [0], "write": {"desc": "Dear Alex,", "trans": "亲爱的亚历克斯："}, "feedback": {"type": "npc", "npcName": "Brainy", "content": "你写的很好！"}}]}, {"leadIn": {"image": "0000800-00.png"}, "learning": [{"question": {"type": "npc", "npcName": "Brainy", "content": "写完称呼之后，你需要在开头礼貌问候收件人，以下哪个表达是正确的问候语呀？"}, "optionList": [{"option": "I hope this email finds you fine.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这个表达不太准确哦，“find sb well”是固定的问候搭配，用来表示“祝一切安好”，不用fine哦，再想想看吧。"}}, {"option": "I hope this email finds you well.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "太厉害了！这是商务/正式邮件里非常地道的开头问候语，意思是“希望你收到这封邮件时一切都好”，用在这里特别合适。"}}, {"option": "I hope you find this email well.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "语序不对哦，这个固定表达的主语是this email，正确的顺序是“I hope this email finds you well”，再调整一下语序就对啦。"}}], "answer": [1], "write": {"desc": "I hope this email finds you well.", "trans": "希望您收到这封邮件时一切安好。"}, "feedback": {"type": "npc", "npcName": "Brainy", "content": "你写的很好！"}}]}, {"leadIn": {"image": "0000800-01.png"}, "learning": [{"question": {"type": "npc", "npcName": "Brainy", "content": "你在报告里要说明你们现在可以互相照顾，以下哪个选项填入句子“We can ___ each other.”里是正确的？"}, "optionList": [{"option": "take care of", "feedback": {"type": "npc", "npcName": "Brainy", "content": "完全正确！“take care of”是固定短语，意思是“照顾”，填入后句子就是“我们可以互相照顾”，表达完全准确哦。"}}, {"option": "look care for", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，没有“look care for”这个搭配，如果要用look表示“照顾”，应该是“look after”，再想想正确的搭配是什么吧。"}}, {"option": "take care for", "feedback": {"type": "npc", "npcName": "Brainy", "content": "很接近啦，“照顾”的正确固定搭配是“take care of”，介词应该用of而不是for哦，再试一次吧。"}}], "answer": [0], "write": {"desc": "take care of", "trans": "照顾；照料"}, "feedback": {"type": "npc", "npcName": "Brainy", "content": "你写的很好！"}}]}], "closing": {"type": "npc", "npcName": "Brainy", "content": "恭喜你，可以使用准确的表达 Dear Alex、短语 I hope this email finds you well 和 take care of，完成了求救报告中的称呼、问候和团队互助部分的写作！"}}

intermediate_json:
  {"学习流程配置": "```\n# 问题1：\nBrainy: 你现在要写求救报告，首先需要在开头写上收件人的称呼，正确的称呼应该是？\n用户选项:\n（选项 A）Dear Alex, [正确]\n  Brainy: 太棒啦！这是正式邮件非常标准的开头称呼，完全符合写给收件人的规范哦。\n（选项 B）Alex, Dear\n  Brainy: 不对哦，英文信件的称呼格式是“Dear + 称呼”，顺序反过来不符合表达习惯，再试一下吧。\n（选项 C）Dear Alex?\n  Brainy: 很接近啦，但称呼后面应该用感叹号或者逗号，问号是用来表示疑问的，不适合用在称呼后面哦，再调整一下吧。\n\n# 问题2：\nBrainy: 写完称呼之后，你需要在开头礼貌问候收件人，以下哪个表达是正确的问候语呀？\n用户选项:\n（选项 A）I hope this email finds you fine.\n  Brainy: 这个表达不太准确哦，“find sb well”是固定的问候搭配，用来表示“祝一切安好”，不用fine哦，再想想看吧。\n（选项 B）I hope this email finds you well. [正确]\n  Brainy: 太厉害了！这是商务/正式邮件里非常地道的开头问候语，意思是“希望你收到这封邮件时一切都好”，用在这里特别合适。\n（选项 C）I hope you find this email well.\n  Brainy: 语序不对哦，这个固定表达的主语是this email，正确的顺序是“I hope this email finds you well”，再调整一下语序就对啦。\n\n# 问题3：\nBrainy: 你在报告里要说明你们现在可以互相照顾，以下哪个选项填入句子“We can ___ each other.”里是正确的？\n用户选项:\n（选项 A）take care of [正确]\n  Brainy: 完全正确！“take care of”是固定短语，意思是“照顾”，填入后句子就是“我们可以互相照顾”，表达完全准确哦。\n（选项 B）look care for\n  Brainy: 不对哦，没有“look care for”这个搭配，如果要用look表示“照顾”，应该是“look after”，再想想正确的搭配是什么吧。\n（选项 C）take care for\n  Brainy: 很接近啦，“照顾”的正确固定搭配是“take care of”，介词应该用of而不是for哦，再试一次吧。\n```", "互动描述": "Dear Alex, I hope this email finds you well. We can take care of each other.（亲爱的亚历克斯：希望你一切都好。我们可以互相照顾。）"}

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

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


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-05-07 11:30:44
updated_at: 2026-05-07 11:30:44
final_config_json:
  {"cType": "mid_message_fillin", "cId": "0000800", "title": "填写信息表", "resourceMapping": {"Vicky": 658}, "cDesc": "You filled in \"now\" to form the word \"knowledge\". (你填入“now”组成了单词“知识”。)", "question": {"desc": "请在空白处填入正确的字母，组成完整单词"}, "tip": "需要填入的单词的中文释义是“知识”", "inputConfig": [{"stem": "K(3)ledge", "value": "now"}], "img": "0000800.png", "inputSet": []}

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


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-05-07 11:30:51
updated_at: 2026-05-07 11:30:51
raw_config:
[cell repeats an earlier one in this file: 975 characters]

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:
[cell repeats an earlier one in this file: 1253 characters]

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": "你在邮件里想要说明这份工作对你们的重要性，现在需要补全句子\"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": "回答正确！这里是一般将来时的特殊疑问句，询问将来的时间要用\"When will + 主语 + 动词原形\"的结构，准确表达了你询问她到达时间的意思。"}}, {"option": "When is", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，句子里的动词arrive是原形，be动词is后面不能直接加动词原形，语法上是错误的。"}}, {"option": "How is", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，首先\"how\"是询问方式的，不符合你要询问时间的语境，同时is后面也不能直接加动词原形arrive，语法和语义都不合适，再试试吧。"}}], "answer": [0], "write": {"desc": "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: 你在邮件里想要说明这份工作对你们的重要性，现在需要补全句子\"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: 回答正确！这里是一般将来时的特殊疑问句，询问将来的时间要用\"When will + 主语 + 动词原形\"的结构，准确表达了你询问她到达时间的意思。\n（选项 B）When is\n  Brainy: 不对哦，句子里的动词arrive是原形，be动词is后面不能直接加动词原形，语法上是错误的。\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? When will you arrive?（亲爱的丽贝卡：我知道你很担心。但这是我们探索漫游港的最佳机会。这项任务对我们来说很重要。这就是我们必须留下来的原因。你会不会哪天来漫游港呢？你什么时候会到？）"}

text_info_json:
[cell repeats an earlier one in this file: 789 characters]

eval_info_json:
[cell repeats an earlier one in this file: 1049 characters]


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-05-07 11:30:58
updated_at: 2026-05-07 11:30:58
raw_config:
[cell repeats an earlier one in this file: 199 characters]

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 for getting water. (你找到了温暖的水来取水。)"}

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


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-05-07 11:31:33
updated_at: 2026-05-07 11:31:33
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": ["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:
[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": ["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": "非常棒！英文邮件中用“Dear + 姓名”是非常标准正式的称呼方式，很适合给Rebecca写邮件的场景。"}}, {"option": "Hello Rebecca?", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这个表达一般用于日常口语打招呼，而且问号使用错误，正式邮件开头不适合用这种表述哦，再试试吧。"}}, {"option": "Rebecca listen:", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这个表达语气太过强硬随意，不符合给关心你们的朋友写邮件的友好语境，不合适哦。"}}], "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 excited. But this is our best chance to leave 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": "太对啦！这句话既回应了Rebecca的担心，也清晰说明了你们想要留下探索Wander Port的想法，表达非常准确。"}}, {"option": "I know you are worried. But we don't want to explore Wander Port.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "后半句说你们不想探索Wander Port，和你们要留下的决定矛盾啦，不符合你要表达的意思哦。"}}], "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": "你写的很好！"}}]}, {"leadIn": {"desc": "1. Tell her your decision and why."}, "learning": [{"question": {"type": "npc", "npcName": "Brainy", "content": "你想说明这项工作对你们很重要，要填入合适的单词补全句子“The ____ is important for us.”，选哪个合适呢？"}, "optionList": [{"option": "jobs", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，句子里的be动词是“is”，说明主语应该是单数，jobs是复数形式，搭配不一致哦。"}}, {"option": "job", "feedback": {"type": "npc", "npcName": "Brainy", "content": "答对啦！job是单数形式，和后面的“is”搭配一致，准确表达了“这项工作对我们很重要”的意思。"}}, {"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": "你写的很好！"}}]}, {"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": "填入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": "非常好！这句话准确礼貌地询问了Rebecca未来是否会来Wander Port，符合邮件的语境。"}}, {"option": "You will come to Wander Port some day?", "feedback": {"type": "npc", "npcName": "Brainy", "content": "一般疑问句需要把助动词will提前到主语前面，这个句子语序是陈述语序，表达不够规范哦。"}}, {"option": "Will you come to Wander Port every day?", "feedback": {"type": "npc", "npcName": "Brainy", "content": "“every day”是“每天”的意思，你是想问对方未来会不会来，不是问会不会每天来，语义不对哦。"}}], "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": "如果Rebecca会来的话，你想询问她什么时候到，补全句子“If so, _________ you arrive?”，选哪个正确？"}, "optionList": [{"option": "when is", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，句子里的动词是实义动词arrive，疑问句需要用助动词will而不是be动词is，搭配不当。"}}, {"option": "when will", "feedback": {"type": "npc", "npcName": "Brainy", "content": "答对啦！询问将来的时间要用一般将来时，“when will you arrive”语序正确，准确表达了你想问对方到达时间的意思。"}}, {"option": "how is", "feedback": {"type": "npc", "npcName": "Brainy", "content": "how是询问方式，而且同样不能和实义动词arrive搭配使用，既不符合语义也不符合语法哦，再试试。"}}], "answer": [1], "write": {"desc": "If so, when will you arrive?", "trans": "如果会的话，你什么时候到呢？"}, "feedback": {"type": "npc", "npcName": "Brainy", "content": "你写的很好！"}}]}], "closing": {"type": "npc", "npcName": "Brainy", "content": "恭喜你，你掌握了邮件称呼“Dear + 姓名”的正确用法，学会了使用句子“I know you are worried. But this is our best chance to explore Wander Port.”回应担忧并说明想法，还巩固了“The job is important for us.”“That's why we have to stay.”“Will you come to Wander Port some day?”“If so, when will you arrive?”等常用表达，成功完成了给Rebecca的邮件编写！"}}

intermediate_json:
  {"学习流程配置": "```\n# 问题1：\nBrainy: 你准备开始写邮件，首先需要正确称呼收件人Rebecca，以下哪个是合适的邮件开头？\n用户选项:\n（选项 A）Dear Rebecca, [正确]\n  Brainy: 非常棒！英文邮件中用“Dear + 姓名”是非常标准正式的称呼方式，很适合给Rebecca写邮件的场景。\n（选项 B）Hello Rebecca?\n  Brainy: 这个表达一般用于日常口语打招呼，而且问号使用错误，正式邮件开头不适合用这种表述哦，再试试吧。\n（选项 C）Rebecca listen:\n  Brainy: 这个表达语气太过强硬随意，不符合给关心你们的朋友写邮件的友好语境，不合适哦。\n\n# 问题2：\nBrainy: 你想先回应Rebecca的担心，同时说明留下的理由，以下哪个句子能正确表达这个意思？\n用户选项:\n（选项 A）I know you are excited. But this is our best chance to leave Wander Port.\n  Brainy: 不对哦，Rebecca是担心你们的安全，不是感到兴奋，而且你们是要留下不是离开，语义完全不符，再试一下。\n（选项 B）I know you are worried. But this is our best chance to explore Wander Port. [正确]\n  Brainy: 太对啦！这句话既回应了Rebecca的担心，也清晰说明了你们想要留下探索Wander Port的想法，表达非常准确。\n（选项 C）I know you are worried. But we don't want to explore Wander Port.\n  Brainy: 后半句说你们不想探索Wander Port，和你们要留下的决定矛盾啦，不符合你要表达的意思哦。\n\n# 问题3：\nBrainy: 你想说明这项工作对你们很重要，要填入合适的单词补全句子“The ____ is important for us.”，选哪个合适呢？\n用户选项:\n（选项 A）jobs\n  Brainy: 不对哦，句子里的be动词是“is”，说明主语应该是单数，jobs是复数形式，搭配不一致哦。\n（选项 B）job [正确]\n  Brainy: 答对啦！job是单数形式，和后面的“is”搭配一致，准确表达了“这项工作对我们很重要”的意思。\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: 填入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）You will come to Wander Port some day?\n  Brainy: 一般疑问句需要把助动词will提前到主语前面，这个句子语序是陈述语序，表达不够规范哦。\n（选项 C）Will you come to Wander Port every day?\n  Brainy: “every day”是“每天”的意思，你是想问对方未来会不会来，不是问会不会每天来，语义不对哦。\n\n# 问题6：\nBrainy: 如果Rebecca会来的话，你想询问她什么时候到，补全句子“If so, _________ you arrive?”，选哪个正确？\n用户选项:\n（选项 A）when is\n  Brainy: 不对哦，句子里的动词是实义动词arrive，疑问句需要用助动词will而不是be动词is，搭配不当。\n（选项 B）when will [正确]\n  Brainy: 答对啦！询问将来的时间要用一般将来时，“when will you arrive”语序正确，准确表达了你想问对方到达时间的意思。\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": "Dear Rebecca,"}, {"mode": "preset", "desc": "I know you are worried. But this is our best chance to explore Wander Port.", "answerText": "I know you are worried. But this is our best chance to explore Wander Port."}, {"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": "Will you come to Wander Port some day?"}, {"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": "Dear Rebecca,"}, {"mode": "preset", "desc": "I know you are worried. But this is our best chance to explore Wander Port.", "answerText": "I know you are worried. But this is our best chance to explore Wander Port."}, {"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": "Will you come to Wander Port some day?"}, {"mode": "fillingInput", "desc": "If so, _________ you arrive?", "answerText": "when will", "hint": "如果是这样的话，你什么时候（when will）将会到达？"}]}


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-05-07 12:11:25
updated_at: 2026-05-07 12:11:25
raw_config:
[cell repeats an earlier one in this file: 747 characters]

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": "To enter the magical word castle, you first figure out the answer to Ben’s question about hippos’ home, and fill the blank with \"lake\" to complete the sentence \"in the lake\". Next, you reply to Brainy’s question about other zoo animals, and pick \"tree\" as the fitting answer to tell what else can be found in the zoo."}

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

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": "To enter the magical word castle, you first figure out the answer to Ben’s question about hippos’ home, and fill the blank with \"lake\" to complete the sentence \"in the lake\". Next, you reply to Brainy’s question about other zoo animals, and pick \"tree\" as the fitting answer to tell what else can be found in the zoo."}

study_info_json:
  {"learningPart": [{"image": "1201001_02.png", "learning": [{"question": {"type": "npc", "npcName": "Brainy", "content": "小朋友，今天我们要认识3个和自然相关的单词哦，先来考考你，哪个单词的意思是“湖”呀？"}, "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问“河马生活在哪里？”，你要选一个单词填到句子里，回答“在____里”哦。想一想河马的生存环境，选最合适的单词吧~"}, "optionList": [{"option": "lake", "feedback": {"type": "npc", "npcName": "Brainy", "content": "答对啦！河马是生活在湖里的，所以答案就是lake，跟着我大声朗读这个句子：in the lake~"}}, {"option": "tree", "feedback": {"type": "npc", "npcName": "Brainy", "content": "河马不会生活在树上哦，这不符合常识，再想一想河马平时待在哪里，重新选一次吧~"}}, {"option": "grass", "feedback": {"type": "npc", "npcName": "Brainy", "content": "河马不是生活在草里的哦，再结合你知道的河马的生活环境选一下吧~"}}], "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": "湖虽然也可能在动物园里，但不是动物园里典型的和动物相关的常见事物哦，再想想还有什么更合适的~"}}, {"option": "tree", "feedback": {"type": "npc", "npcName": "Brainy", "content": "太棒了！动物园里会有很多树，给动物们提供栖息的地方，这个答案是对的，你可以试着读一下这个单词tree哦~"}}, {"option": "grass", "feedback": {"type": "npc", "npcName": "Brainy", "content": "草比较普通，不是动物园里有代表性的事物哦，再想一想动物园里还有什么常见的东西吧~"}}], "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：小朋友，今天我们要认识3个和自然相关的单词哦，先来考考你，哪个单词的意思是“湖”呀？\n- 选项 A：tree\n  Brainy：不对哦，tree的意思是“树”，不是我们要找的“湖”，再试试吧~\n- 选项 B：grass\n  Brainy：不对哦，grass的意思是“草”，不是“湖”的意思，再选一次呀~\n- 选项 C：lake [正确]\n  Brainy：太棒啦！lake就是“湖”的意思，这个知识点你掌握得很好哦~\n\n### 2. 原题降级\nBrainy：现在我们来看这道题，Ben问“河马生活在哪里？”，你要选一个单词填到句子里，回答“在____里”哦。想一想河马的生存环境，选最合适的单词吧~\n- 选项 A：lake [正确]\n  Brainy：答对啦！河马是生活在湖里的，所以答案就是lake，跟着我大声朗读这个句子：in the lake~\n- 选项 B：tree\n  Brainy：河马不会生活在树上哦，这不符合常识，再想一想河马平时待在哪里，重新选一次吧~\n- 选项 C：grass\n  Brainy：河马不是生活在草里的哦，再结合你知道的河马的生活环境选一下吧~\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：湖虽然也可能在动物园里，但不是动物园里典型的和动物相关的常见事物哦，再想想还有什么更合适的~\n- 选项 B：tree [正确]\n  Brainy：太棒了！动物园里会有很多树，给动物们提供栖息的地方，这个答案是对的，你可以试着读一下这个单词tree哦~\n- 选项 C：grass\n  Brainy：草比较普通，不是动物园里有代表性的事物哦，再想一想动物园里还有什么常见的东西吧~\n\n---\n\n# 完结反馈\nBrainy：太棒了！你顺利完成了这两个题目的练习，不仅学会了lake、tree、grass这几个单词的意思，还学会了在实际情境里用这些单词回答问题，真的很厉害哦，继续加油！\n```", "互动描述": "To enter the magical word castle, you first figure out the answer to Ben’s question about hippos’ home, and fill the blank with \"lake\" to complete the sentence \"in the lake\".\nNext, you reply to Brainy’s question about other zoo animals, and pick \"tree\" as the fitting answer to tell what else can be found in the zoo."}

question_group_json:
[cell repeats an earlier one in this file: 430 characters]


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-05-07 12:11:30
updated_at: 2026-05-07 12:11:30
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在这里的意思是积分、分数，攒积分就可以说save points哦。", "npcName": "Brainy", "learning": [{"answer": [1], "meaning": "句意选择题", "optionList": [{"feedback": {"type": "npc", "content": "不对哦，礼物的英文是gift，不是我们这里的points，再回忆下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的意思是俱乐部，加入俱乐部可以说join a club哦。", "npcName": "Brainy", "learning": [{"answer": [1], "meaning": "句意选择题", "optionList": [{"feedback": {"type": "npc", "content": "不对哦，班级的英文是class，不是我们这里的club，再回忆下club的意思吧。", "npcName": "Brainy"}, "option": "你可以选择你最喜欢的班级加入。"}, {"feedback": {"type": "npc", "content": "完美！你已经掌握了重点单词club和这个句子的意思啦～", "npcName": "Brainy"}, "option": "你可以选择你最喜欢的俱乐部加入。"}], "question": {"type": "npc", "npcName": "Brainy", "content": "接下来，我们来看下包含 club 的句子 You can choose your favourite club to join. 是什么意思呢？"}}, {"answer": [1], "meaning": "段落大意题", "optionList": [{"feedback": {"type": "npc", "content": "不对哦，这段内容里没有提到可以创建新俱乐部的相关信息，再仔细看看段落内容吧。", "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在这里的意思是积分、分数，攒积分就可以说save points哦。\n1. 句意选择题\nBrainy：接下来，我们来看下包含 points 的句子 But you need points to level up! 是什么意思呢？\n- 但是你需要礼物来升级。\n  Brainy：不对哦，礼物的英文是gift，不是我们这里的points，再回忆下points的意思吧。\n- 但是你需要积分来升级。[正确]\n  Brainy：太棒啦！你已经掌握了重点单词points和这个句子的意思啦～\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：不对哦，班级的英文是class，不是我们这里的club，再回忆下club的意思吧。\n- 你可以选择你最喜欢的俱乐部加入。[正确]\n  Brainy：完美！你已经掌握了重点单词club和这个句子的意思啦～\n\n2. 段落大意题\nBrainy：了解了单词和句子的意思，我们来看看这段主要讲了什么内容吧？\n- 你可以自主选择感兴趣的俱乐部加入，也可以自己创建新俱乐部。\n  Brainy：不对哦，这段内容里没有提到可以创建新俱乐部的相关信息，再仔细看看段落内容吧。\n- 你可以选择喜欢的俱乐部加入，如果你对某件事感兴趣，就能找到对应的俱乐部。[正确]\n  Brainy：太厉害啦！你完全理解了这段内容的核心意思哦。\n# 完结反馈\nBrainy: 恭喜你完成了所有段落的学习，你真棒！继续加油哦～\n```"}


