# components

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 12:11:50
updated_at: 2026-05-07 12:11:50
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 hungry. She wants to eat bananas.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，现在我们要和对方说大象需要洗澡的事，这句话是说大象饿了想吃香蕉，和当前情境不匹配，再选一次吧。"}}, {"option": "The elephant is lost. Let's find her 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": "We can wait for the keeper to come and help her.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，现在我们要表达不等了先去拿水的想法，这句话是说我们可以等饲养员来帮忙，和我们要表达的意思相反，再选一次吧。"}}, {"option": "Instead of waiting here, we'd better get some water for her first.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "你太厉害了，选对了！跟着我大声朗读这句话吧：Instead of waiting here, we'd better get some water for her first."}}, {"option": "We need to go home now, we have no time 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": "完全正确！跟着我大声朗读这句话吧：We'd love to help."}}, {"option": "We are afraid we can't help you.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，我们是愿意帮忙的，这句话是说我们恐怕帮不了你，和我们要表达的意思不一样，再选一次吧。"}}, {"option": "We don't know how to shower an elephant.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，现在我们要先告诉对方我们愿意帮忙，这句话是说我们不知道怎么给大象洗澡，不符合当前回应的要求，再选一次吧。"}}], "answer": [0], "read": {"type": "user", "content": "We'd love to help."}, "feedback": {"type": "npc", "npcName": "Logan", "content": "Great. We will send some water to her right away."}}], "closing": {"type": "npc", "npcName": "Brainy", "content": "太棒啦！你已经顺利完成了这次对话任务，成功和清洁站的工作人员沟通好了给大象送水帮忙洗澡的事，你真棒！"}}}

intermediate_json:
  {"学习流程配置": "```\n# 开场回合\nLogan：Hi. What happened to the elephant?\n\n# 中间回合1\nBrainy：Logan在问大象发生什么事啦，现在你需要告诉对方大象需要洗澡，你们想要帮她准备淋浴哦。\n用户选项:\nA. 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.\nB. The elephant is hungry. She wants to eat bananas.\n  Brainy：不对哦，现在我们要和对方说大象需要洗澡的事，这句话是说大象饿了想吃香蕉，和当前情境不匹配，再选一次吧。\nC. The elephant is lost. Let's find her 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. We can wait for the keeper to come and help her.\n  Brainy：不对哦，现在我们要表达不等了先去拿水的想法，这句话是说我们可以等饲养员来帮忙，和我们要表达的意思相反，再选一次吧。\nB. 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.\nC. We need to go home now, we have no time to help.\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：完全正确！跟着我大声朗读这句话吧：We'd love to help.\nB. We are afraid we can't help you.\n  Brainy：不对哦，我们是愿意帮忙的，这句话是说我们恐怕帮不了你，和我们要表达的意思不一样，再选一次吧。\nC. We don't know how to shower an elephant.\n  Brainy：不对哦，现在我们要先告诉对方我们愿意帮忙，这句话是说我们不知道怎么给大象洗澡，不符合当前回应的要求，再选一次吧。\nLogan：Great. We will send some water to her right away.\n\n# 结尾回合\nBrainy：太棒啦！你已经顺利完成了这次对话任务，成功和清洁站的工作人员沟通好了给大象送水帮忙洗澡的事，你真棒！\n```", "promptInfo配置": "```\n# 1. 角色（你要扮演谁）\n你是Logan，在Wander Port的清洁站工作。你的语言风格简单亲切，适合儿童理解。\n# 2. 任务（你如何参与对话）\n1. 对话开场先询问用户大象的情况，确认大象是不是需要洗澡。\n2. 收到用户告知大象需要洗澡的回复后，先表达惊讶，询问是不是还没洗澡，然后告诉用户可以先等一等，饲养员可能很快就来。\n3. 收到用户表示要先自己去找水的回复后，先吐槽饲养员太粗心，再询问用户是否愿意帮忙给大象洗澡。\n4. 如果用户表示愿意帮忙，先向用户表示感谢，然后告知对方会马上送干净的水过去。\n5. 如果用户表示不愿意帮忙，先表达遗憾，告知用户你会自己安排给大象送水。\n6. 如果用户的回答和当前问题无关，先友好提示对方回答当前问题，再重复你提出的上一个问题。\n7. 所有任务确认完成后，和用户说我们快点去帮大象吧，自然结束对话。\n# 3. 背景信息\n你是Logan，在 Wander Port 的清洁站工作。清洁站附近有一只大象，人们都很喜欢她，喂她吃香蕉，帮她洗澡。这天你接到电话，几个孩子说大象需要洗澡，你意识到一定是饲养员粗心忘记了！孩子们说愿意帮助大象洗澡，需要借一些干净的水，你立刻答应。\n# 4. 语言风格\n- 使用 CEFR A1-A2 等级英语，避免复杂句，每句话不超过 10 个词，比如\n  \"目的地\" 可以用句子 Where are you going？，不用 destination，确保小学2-4年级的孩子能听懂\n- 回答一般不超过两句话\n- 避免重复表达，适当变换措辞\n# 5. 开场白 (仅用于首轮)\n由你开始对话，你会问用户：\"Hi. What happened to the elephant?\"\n# 6. 回应方式\n- 无论用户如何对话，你都应基于你的身份做出合理反应。\n- 每次最多只提问一个问题，等待用户回答后再继续。\n- 除开场轮次外，每次回应，可以先基于用户的话给一句反馈。然后再推进你的任务。\n```", "语音识别热词": "elephant,shower,water,keepers,help,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. 如果用户表示不愿意帮忙，先表达遗憾，告知用户你会自己安排给大象送水。\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_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 12:12:13
updated_at: 2026-05-07 12:12:13
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": "Great! You know a lot about winter. Now let's go and enjoy the warm food!"}}]}], "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 12:12:13
updated_at: 2026-05-07 12:12:13
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. Go to bed on time and get up early. Try to stay away from bad things, like smoking and alcohol. These things are not good for your body. Third, you do not need much money. Keeping a healthy body is not about money. You do not need expensive things. Good habits are the most important."}], "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": [1], "meaning": "听音选句", "optionList": [{"feedback": {"type": "npc", "content": "哎呀，这句话说的是 eat outside（出去吃），并不是我们听到的 bake at home 哦，再仔细听听音频内容吧！", "npcName": "Brainy"}, "option": "When you really want sweet food, like biscuits or cake, you can eat outside."}, {"feedback": {"type": "npc", "content": "太棒了！你准确匹配到了音频里的句子，精准听出了重点短语 bake at home！", "npcName": "Brainy"}, "option": "When you really want sweet food, like biscuits or cake, you can bake at home."}], "question": {"type": "npc", "content": "接下来，我们来试试，你能不能听出以下哪一句话和播放的音频内容一致呢？", "npcName": "Brainy"}}, {"answer": [0], "meaning": "听音选意", "optionList": [{"feedback": {"type": "npc", "content": "答对啦！你完全理解了这句话的意思，还掌握了 bake at home 这个实用短语哦，真厉害！", "npcName": "Brainy"}, "option": "当你非常想吃甜食，比如饼干或者蛋糕的时候，你可以在家烘焙。"}, {"feedback": {"type": "npc", "content": "这句话里的内容和我们听到的不一样哦，音频里说的是甜食和在家烘焙，再仔细想一想吧~", "npcName": "Brainy"}, "option": "当你非常想吃咸食，比如薯片或者汉堡的时候，你可以在家做饭。"}], "question": {"type": "npc", "content": "那这句话是什么意思呢？我们来选选正确的中文翻译吧！", "npcName": "Brainy"}}]}]}

intermediate_json:
  {"学习过程配置": "```\n# 重点句子 1\n音频文本：When you really want sweet food, like biscuits or cake, you can bake at home.\n讲解文本：刚刚听到的音频中，包含了一个关键短语 bake at home，意思是在家烘焙。正确的发音是 /beɪk æt həʊm/。\n1. 听音选句\nBrainy：接下来，我们来试试，你能不能听出以下哪一句话和播放的音频内容一致呢？\n- When you really want sweet food, like biscuits or cake, you can eat outside.\n  - Brainy：哎呀，这句话说的是 eat outside（出去吃），并不是我们听到的 bake at home 哦，再仔细听听音频内容吧！\n- When you really want sweet food, like biscuits or cake, you can bake at home. [正确]\n  - Brainy：太棒了！你准确匹配到了音频里的句子，精准听出了重点短语 bake at home！\n\n2. 听音选意\nBrainy：那这句话是什么意思呢？我们来选选正确的中文翻译吧！\n- 当你非常想吃甜食，比如饼干或者蛋糕的时候，你可以在家烘焙。[正确]\n  - Brainy：答对啦！你完全理解了这句话的意思，还掌握了 bake at home 这个实用短语哦，真厉害！\n- 当你非常想吃咸食，比如薯片或者汉堡的时候，你可以在家做饭。\n  - Brainy：这句话里的内容和我们听到的不一样哦，音频里说的是甜食和在家烘焙，再仔细想一想吧~\n---\n# 完成反馈\nBrainy：很好！你已经回答完了全部问题，相信你已经听懂了这个任务中所有的重点句子。现在让我们来查看结果吧!\n```", "互动描述": "You listened to the audio How to live a healthy life, and learned that a healthy routine like going to bed on time and getting up early is needed, and you should stay away from smoking and alcohol. (你听了《如何健康生活》的音频，了解到要保持早睡早起的健康作息，还要远离烟酒。)\nYou also learned from the audio that keeping healthy doesn't need 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: 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 12:12:14
updated_at: 2026-05-07 12:12:14
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 winter!", "feedback": {"type": "npc", "content": "哎呀，这句话里的是winter（冬天），不是我们听到的summer哦，再听一遍试试吧~", "npcName": "Brainy"}}, {"option": "This summer!", "feedback": {"type": "npc", "content": "太棒啦！你准确听出了句子里的summer，听力小耳朵超厉害！", "npcName": "Brainy"}}], "answer": [1]}, {"question": {"content": "This summer!", "type": "npc", "npcName": "Brainy"}, "extendQuestion": {"content": "这句话的中文意思是“这个夏天”，对不对呀？", "type": "npc", "npcName": "Brainy"}, "optionList": [{"option": "错 / No", "feedback": {"type": "npc", "content": "再想想哦，summer对应的中文意思不是其他季节，再猜一猜吧~", "npcName": "Brainy"}}, {"option": "对 / Yes", "feedback": {"type": "npc", "content": "完全正确！你已经牢牢记住了summer是“夏天”的意思，太厉害了！", "npcName": "Brainy"}}], "answer": [1]}]}], "closing": {"type": "npc", "content": "很好！你已经回答完了全部问题，相信你已经听懂了这个任务中所有的重点句子。现在让我们来查看结果吧!", "npcName": "Brainy"}}

intermediate_json:
  {"学习过程配置": "```\n# 重点句子 1\n音频文本：This summer!\n讲解文本：刚刚听到的音频里，有一个很常用的短语 summer，意思是夏天，是一年里最热的季节哦。\n1. 听音选句\nBrainy：仔细听音频，下面哪一句话和你听到的内容一致呢？\n- This winter!\n  - Brainy：哎呀，这句话里的是winter（冬天），不是我们听到的summer哦，再听一遍试试吧~\n- This summer! [正确]\n  - Brainy：太棒啦！你准确听出了句子里的summer，听力小耳朵超厉害！\n\n2. 听音选意\nBrainy：这句话的中文意思是“这个夏天”，对不对呀？\n- 错 / No\n  - Brainy：再想想哦，summer对应的中文意思不是其他季节，再猜一猜吧~\n- 对 / Yes [正确]\n  - Brainy：完全正确！你已经牢牢记住了summer是“夏天”的意思，太厉害了！\n---\n# 完成反馈\nBrainy：很好！你已经回答完了全部问题，相信你已经听懂了这个任务中所有的重点句子。现在让我们来查看结果吧!\n```", "互动描述": "请你提供具体的题目材料和对应的相关核心信息、正确答案内容，我会按照要求为你生成符合规范的叙事化描述。"}


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试-全量)
category: 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 12:12:35
updated_at: 2026-05-07 12:12:35
final_config_json:
  {"cType": "mid_message_trace", "cId": "0000800", "title": "购买葡萄", "resourceMapping": {"Vicky": 658}, "cDesc": "You wrote down grape as the fruit you need. (你写下了grape作为你需要的水果。)", "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-05-07 12:12:42
updated_at: 2026-05-07 12:12:42
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 down the question \"Is Maeve the visitor you invited?\". (你写下了“梅芙是你邀请的那位访客吗？”这个问句。)", "question": {"desc": "请在空白处填入正确的单词，组成句子"}, "tip": "可以用 is 引导的一般疑问句询问；you invited 是 visitor 的后置定语", "optionList": [{"option": "is"}, {"option": "the visitor"}, {"option": "you invited"}, {"option": "Maeve"}], "answer": [0, 3, 1, 2], "img": "0000800.png", "inputSet": []}

kp_info_json:
[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 12:12:46
updated_at: 2026-05-07 12:12:46
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-05-07 12:12:47
updated_at: 2026-05-07 12:12:47
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_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 12:12:51
updated_at: 2026-05-07 12:12:51
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 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-05-07 12:12:55
updated_at: 2026-05-07 12:12:55
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 area. (你找到了温暖的水域。)"}

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-05-07 12:13:01
updated_at: 2026-05-07 12:13:01
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 to fix. (你找到了需要修复的房子部位。)"}

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-05-07 12:13:03
updated_at: 2026-05-07 12:13:03
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 jumped the grids $one\\ by\\ one$ in order. (你按顺序一个接一个跳格子。)"}

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_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 12:13:04
updated_at: 2026-05-07 12:13:04
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动词is不匹配，应该使用单数形式的名词，再试一下吧。"}}, {"option": "projects", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，projects是可数名词复数，和句子里的be动词is不匹配，同时也不符合此处要表达的语义，再试一下吧。"}}], "answer": [0], "write": {"desc": "The job is important for us.", "trans": "这项工作对我们来说很重要。"}, "feedback": {"type": "npc", "npcName": "Brainy", "content": "你写的很好！"}}]}, {"leadIn": {"desc": "Why do you want to stay?"}, "learning": [{"question": {"type": "npc", "npcName": "Brainy", "content": "你接下来要解释你们必须留下来的原因，需要补全句子\"That's ___ we have to stay.\"。"}, "optionList": [{"option": "why", "feedback": {"type": "npc", "npcName": "Brainy", "content": "太棒了！\"That's why...\"是固定表达，用来引出原因，代入后句子意为“这就是我们必须留下来的原因”，正好承接上文说明留在这里的理由，符合语境。"}}, {"option": "how", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，how表示“如何、怎样”，代入后句子意为“这就是我们必须留下来的方式”，和前文要解释留在这里的原因的语境不匹配，再试一下吧。"}}, {"option": "which", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，which表示“哪一个”，放在这里句子逻辑不通顺，无法承接前文解释留下的原因，再试一下吧。"}}], "answer": [0], "write": {"desc": "That's why we have to stay.", "trans": "这就是我们必须留下来的原因。"}, "feedback": {"type": "npc", "npcName": "Brainy", "content": "你写的很好！"}}]}, {"leadIn": {"desc": "Ask her when to come."}, "learning": [{"question": {"type": "npc", "npcName": "Brainy", "content": "你想要询问Rebecca什么时候会抵达，需要补全句子\"___ you arrive?\"。"}, "optionList": [{"option": "When will", "feedback": {"type": "npc", "npcName": "Brainy", "content": "答对啦！询问对方将来到达的时间要用一般将来时，\"When will you arrive?\"意为“你什么时候会到？”，符合邮件里询问行程的语境。"}}, {"option": "When is", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，arrive是实义动词原形，不能和be动词is搭配使用，一般将来时需要用助动词will，再试一下吧。"}}, {"option": "How is", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，首先be动词is不能和实义动词原形arrive搭配，其次how是询问方式，这里你想要询问的是到达的时间，不符合语境，再试一下吧。"}}], "answer": [0], "write": {"desc": "When will you arrive?", "trans": "你什么时候会到？"}, "feedback": {"type": "npc", "npcName": "Brainy", "content": "你写的很好！"}}]}], "closing": {"type": "npc", "npcName": "Brainy", "content": "恭喜你，你已经掌握了名词单复数和be动词的搭配规则、\"That's why...\"固定句型的用法以及一般将来时询问时间的表达，能够顺利完成给Rebecca的邮件写作啦！"}}

intermediate_json:
  {"学习流程配置": "```\n# 问题1：\nBrainy: 邮件正文里你想要说明这项工作对你们很重要，现在需要补全句子\"The ___ is important for us.\"。\n用户选项:\n（选项 A）job [正确]\n  Brainy: 答对啦！根据前面的be动词is可知这里要填可数名词单数，job作为单数名词代入后句子意为“这项工作对我们很重要”，符合邮件语境。\n（选项 B）jobs\n  Brainy: 不对哦，jobs是可数名词复数，和句子里的be动词is不匹配，应该使用单数形式的名词，再试一下吧。\n（选项 C）projects\n  Brainy: 不对哦，projects是可数名词复数，和句子里的be动词is不匹配，同时也不符合此处要表达的语义，再试一下吧。\n\n# 问题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搭配使用，一般将来时需要用助动词will，再试一下吧。\n（选项 C）How is\n  Brainy: 不对哦，首先be动词is不能和实义动词原形arrive搭配，其次how是询问方式，这里你想要询问的是到达的时间，不符合语境，再试一下吧。\n```", "互动描述": "Dear Rebecca, I know you are worried. But this is our best chance to explore Wander Port. The job is important for us. That's why we have to stay. Will you come to Wander Port some day? When will you arrive?（亲爱的丽贝卡：我知道你很担心。但这是我们探索漫游港的最佳机会。这项任务对我们来说很重要。这就是我们必须留下来的原因。你某天会来漫游港吗？你什么时候会到？）"}

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

eval_info_json:
  {"title": "编写给 Rebecca 的邮件", "taskDesc": "请根据提示问题，用英文组句完成这封邮件。", "sceneDesc": "Rebecca听上去十分担心你们的安全，你们刚刚做出了决定，要继续留在 Wander Port 进行学院的探索任务，你需要回一封邮件给她，告诉她你们的决定以及原因，顺便询问她何时会来。", "knowledge": "The job is... 这份工作...... 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-05-07 12:13:27
updated_at: 2026-05-07 12:13:27
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": "Rebecca:", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这种称呼格式不符合英文邮件的常用规范哦，给对方写邮件开头的标准称呼应该是\"Dear + 名字\"，再试一次吧。"}}], "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 know you are happy. But this is our best chance to explore Wander Port.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "前面说Rebecca很开心不符合背景哦，背景里Rebecca是担心你们的安全，这句话语义和实际情况不符，再试试吧。"}}, {"option": "I know you are worried. But we don't want to explore Wander Port.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "后半句说你们不想探索Wander Port就不对啦，你们正是要留下来完成探索任务，语义和你的目的相反哦，再试一次吧。"}}], "answer": [0], "write": {"desc": "I know you are worried. But this is our best chance to explore Wander Port.", "trans": "我知道你很担心。但这是我们探索漫游港的最好机会。"}, "feedback": {"type": "npc", "npcName": "Brainy", "content": "你写的很好！"}}]}, {"leadIn": {"desc": "Tell her your decision and why."}, "learning": [{"question": {"type": "npc", "npcName": "Brainy", "content": "你要说明这份工作对你们很重要，句子\"The ____ is important for us.\"的横线处应该填什么词呢？"}, "optionList": [{"option": "job", "feedback": {"type": "npc", "npcName": "Brainy", "content": "答对啦！be动词是is，说明主语是单数，\"job\"是可数名词单数，符合语法和语义要求，这句话就是说这份工作对我们很重要。"}}, {"option": "jobs", "feedback": {"type": "npc", "npcName": "Brainy", "content": "\"jobs\"是复数形式，后面的be动词应该用are才对，和句子里的is不匹配哦，再试试吧。"}}, {"option": "projects", "feedback": {"type": "npc", "npcName": "Brainy", "content": "\"projects\"是复数形式，后面的be动词应该用are，和句子里的is不一致，而且意思也不符合这里的语境哦，再试一次吧。"}}], "answer": [0], "write": {"desc": "The job is important for us.", "trans": "这项工作对我们来说很重要。"}, "feedback": {"type": "npc", "npcName": "Brainy", "content": "你写的很好！"}}]}, {"leadIn": {"desc": "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会不会来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动词不能直接和动词原形come搭配使用，正确询问将来的动作应该用will引导疑问句，再试一次吧。"}}], "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": "太棒了！询问将来的时间要用一般将来时，特殊疑问句的结构是“特殊疑问词+will+主语+动词原形”，这里的表达完全符合语法和语义要求。"}}, {"option": "when is", "feedback": {"type": "npc", "npcName": "Brainy", "content": "后面已经有动词原形arrive了，不能用be动词is哦，语法结构错误，而且也不符合将来时的表达，再试试吧。"}}, {"option": "how is", "feedback": {"type": "npc", "npcName": "Brainy", "content": "\"how\"是询问方式的疑问词，你这里要问的是到达的时间，疑问词就不对，而且同样存在be动词和后面arrive搭配错误的问题哦，再试一次吧。"}}], "answer": [0], "write": {"desc": "If so, when will you arrive?", "trans": "如果会的话，你什么时候到呢？"}, "feedback": {"type": "npc", "npcName": "Brainy", "content": "你写的很好！"}}]}], "closing": {"type": "npc", "npcName": "Brainy", "content": "恭喜你，你已经掌握了英文邮件的称呼规范，还学会了用句子回应他人担心、说明做某事的原因，以及询问对方未来行动和时间的正确表达，成功完成了给Rebecca的邮件编写！"}}

intermediate_json:
  {"学习流程配置": "```\n# 问题1：\nBrainy: 你准备给Rebecca写邮件，首先要写邮件的称呼，下列哪个选项是正确的开头？\n用户选项:\n（选项 A）Dear Rebecca, [正确]\n  Brainy: 太棒了！这是英文邮件给熟人写称呼的标准正确表达，非常合适。\n（选项 B）Hello Rebecca!\n  Brainy: 这个表达虽然日常对话里可以用，但正式或者半正式邮件开头给对方写称呼时，用\"Dear + 名字\"是更规范的用法哦，再试试吧。\n（选项 C）Rebecca:\n  Brainy: 这种称呼格式不符合英文邮件的常用规范哦，给对方写邮件开头的标准称呼应该是\"Dear + 名字\"，再试一次吧。\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 know you are happy. But this is our best chance to explore Wander Port.\n  Brainy: 前面说Rebecca很开心不符合背景哦，背景里Rebecca是担心你们的安全，这句话语义和实际情况不符，再试试吧。\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）job [正确]\n  Brainy: 答对啦！be动词是is，说明主语是单数，\"job\"是可数名词单数，符合语法和语义要求，这句话就是说这份工作对我们很重要。\n（选项 B）jobs\n  Brainy: \"jobs\"是复数形式，后面的be动词应该用are才对，和句子里的is不匹配哦，再试试吧。\n（选项 C）projects\n  Brainy: \"projects\"是复数形式，后面的be动词应该用are，和句子里的is不一致，而且意思也不符合这里的语境哦，再试一次吧。\n\n# 问题4：\nBrainy: 你要解释这就是你们必须留下来的原因，句子\"That's ____ we have to stay.\"的横线处应该填什么词呢？\n用户选项:\n（选项 A）why [正确]\n  Brainy: 非常棒！\"That's why...\"是固定表达，意思是“这就是为什么……/这就是……的原因”，正好符合你要解释留下原因的需求。\n（选项 B）how\n  Brainy: \"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）Do you come to Wander Port some day?\n  Brainy: 这个是一般现在时的提问，用来问经常性、习惯性的动作，但你是问将来会不会来，时态不对哦，再试试吧。\n（选项 C）Are you come to Wander Port some day?\n  Brainy: 这个句子语法是错误的哦，be动词不能直接和动词原形come搭配使用，正确询问将来的动作应该用will引导疑问句，再试一次吧。\n\n# 问题6：\nBrainy: 你接着问如果她来的话，什么时候会到，句子\"If so, _________ 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: \"how\"是询问方式的疑问词，你这里要问的是到达的时间，疑问词就不对，而且同样存在be动词和后面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-08 12:32:07
updated_at: 2026-05-08 12:32:07
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": "When you explore the Word Castle, you first meet Ben who asks where hippos live, and you figure out they live in the lake, filling the blank with this proper word to move forward. Then Brainy asks what other animals live in the zoo, and you learn that many zoo animals live around trees, picking the matching content to continue your castle adventure."}

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": "When you explore the Word Castle, you first meet Ben who asks where hippos live, and you figure out they live in the lake, filling the blank with this proper word to move forward. Then Brainy asks what other animals live in the zoo, and you learn that many zoo animals live around trees, picking the matching content to continue your castle adventure."}

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": "太聪明啦！河马是生活在湖里的，完全正确。现在试着大声朗读这个句子：“Hippos live in the lake.”吧。"}}, {"option": "tree", "feedback": {"type": "npc", "npcName": "Brainy", "content": "tree是树哦，河马不会住在树上的，不符合常识，再选一次吧。"}}, {"option": "grass", "feedback": {"type": "npc", "npcName": "Brainy", "content": "grass是草地，河马主要的生活环境不是草地哦，再想一想答案是什么吧。"}}], "answer": [0]}]}, {"image": "1201001_02.png", "learning": [{"question": {"type": "npc", "npcName": "Brainy", "content": "这道题我们要分辨和动物、地点相关的词汇哦，先来看看下面哪个单词和动物栖息地没有直接关系，是可以生长在动物园里的植物类词汇吧。"}, "optionList": [{"option": "lake", "feedback": {"type": "npc", "npcName": "Brainy", "content": "lake是湖，是动物们的栖息地之一，不是我们要找的植物类词汇哦，再试试。"}}, {"option": "tree", "feedback": {"type": "npc", "npcName": "Brainy", "content": "真棒！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": "答对啦！动物园里除了动物之外，还有树木哦，符合提问的要求。现在试着大声读一下回答：“There are trees in the zoo.”吧。"}}, {"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：太聪明啦！河马是生活在湖里的，完全正确。现在试着大声朗读这个句子：“Hippos live in the lake.”吧。\n- 选项 B：tree\n  Brainy：tree是树哦，河马不会住在树上的，不符合常识，再选一次吧。\n- 选项 C：grass\n  Brainy：grass是草地，河马主要的生活环境不是草地哦，再想一想答案是什么吧。\n\n---\n# 小题 5\n## 材料内容\n【展示该小题对应的图片 ID：1201001_02.png】\n\n## 互动题目\n### 1. 句意选词题\nBrainy：这道题我们要分辨和动物、地点相关的词汇哦，先来看看下面哪个单词和动物栖息地没有直接关系，是可以生长在动物园里的植物类词汇吧。\n- 选项 A：lake\n  Brainy：lake是湖，是动物们的栖息地之一，不是我们要找的植物类词汇哦，再试试。\n- 选项 B：tree[正确]\n  Brainy：真棒！tree是“树”，属于动物园里存在的植物，这个是我们要找的答案哦。\n- 选项 C：grass\n  Brainy：grass是草，虽然也是植物，但通常不作为动物园里典型的特色存在，再想想看还有哪个更合适呀。\n\n### 2. 原题降级\nBrainy：现在看这道题，Brainy问“动物园里还有什么其他的东西？”，要选出一个在动物园里存在的事物哦。\n- 选项 A：lake\n  Brainy：湖是河马的栖息地，属于刚才已经提到的和河马相关的地点，不是“其他”的东西哦，再选一次吧。\n- 选项 B：tree[正确]\n  Brainy：答对啦！动物园里除了动物之外，还有树木哦，符合提问的要求。现在试着大声读一下回答：“There are trees in the zoo.”吧。\n- 选项 C：grass\n  Brainy：草虽然也存在于动物园，但不是动物园里有代表性的其他事物哦，再想想看正确答案是什么吧。\n\n---\n# 完结反馈\nBrainy：太棒了！你顺利完成了所有的对话任务，还复习了lake、tree、grass这些核心词汇，也学会了如何回答关于地点和事物的英文提问，你的英语又进步啦，继续加油哦！\n```", "互动描述": "When you explore the Word Castle, you first meet Ben who asks where hippos live, and you figure out they live in the lake, filling the blank with this proper word to move forward.\nThen Brainy asks what other animals live in the zoo, and you learn that many zoo animals live around trees, picking the matching content to continue your castle adventure."}

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-08 12:32:21
updated_at: 2026-05-08 12:32:21
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": "不对哦，club才是俱乐部的意思，这里的exam是考试的意思，再回忆一下正确释义吧。", "npcName": "Brainy"}, "option": "在瓦拉学院，先锋们不用参加俱乐部活动。"}], "question": {"type": "npc", "npcName": "Brainy", "content": "接下来，我们来看下包含 exam 的句子 At Vala Academy, Pioneers don't have exams. 是什么意思呢？"}}, {"answer": [0], "meaning": "段落大意题", "optionList": [{"feedback": {"type": "npc", "content": "回答正确！你完全抓住了段落的两个核心信息点，厉害呀~", "npcName": "Brainy"}, "option": "瓦拉学院的先锋们不需要考试，但是需要积分来升级。"}, {"feedback": {"type": "npc", "content": "这和原文内容刚好相反哦，原文说没有考试，再仔细读读段落内容吧。", "npcName": "Brainy"}, "option": "瓦拉学院的先锋们需要通过考试来获得积分升级。"}], "question": {"type": "npc", "npcName": "Brainy", "content": "了解了关键单词和句子，我们来看看这段主要讲了什么内容吧？"}}]}, {"leadIn": {"desc": "You can choose your favourite club to join. If you are interested in something, you can find a club for it."}, "type": "npc", "content": "我们来认识一下这段话中的关键单词 club。club 的意思是俱乐部，加入俱乐部可以说 join a club。", "npcName": "Brainy", "learning": [{"answer": [1], "meaning": "句意选择题", "optionList": [{"feedback": {"type": "npc", "content": "不对哦，course是课程的意思，这里的club指的是俱乐部，再想想正确的意思吧。", "npcName": "Brainy"}, "option": "你可以选择自己最喜欢的课程去学习。"}, {"feedback": {"type": "npc", "content": "回答完美！你已经掌握了club的意思，也读懂了这个句子~", "npcName": "Brainy"}, "option": "你可以选择自己最喜欢的俱乐部加入。"}], "question": {"type": "npc", "npcName": "Brainy", "content": "接下来，我们来看下包含 club 的句子 You can choose your favourite club to join. 是什么意思呢？"}}, {"answer": [0], "meaning": "段落大意题", "optionList": [{"feedback": {"type": "npc", "content": "太厉害啦！你完全理解了段落的整体意思，把两个句子的信息都抓住了~", "npcName": "Brainy"}, "option": "你可以选择感兴趣的俱乐部加入，如果有感兴趣的事物，也能找到对应的俱乐部。"}, {"feedback": {"type": "npc", "content": "不对哦，这段没有提到俱乐部是否受欢迎，也没有说必须加入俱乐部，再仔细看看内容吧。", "npcName": "Brainy"}, "option": "所有的俱乐部都非常受欢迎，你必须加入其中一个。"}], "question": {"type": "npc", "npcName": "Brainy", "content": "下面我们来看看这段主要想表达什么内容呢？"}}]}]}

intermediate_json:
  {"阅读材料格式化": "```\n# 材料2\n类型：电子屏\n标题：How to Join Clubs?\n正文:\n<sp>You can choose your favourite club to join. If you are interested in something, you can find a club for it. The robot club, the plant club, the sports club, and the reading club are all popular choices.<br>If you are not interested in any club, you can start a new one with friends!<br><sp>图片:[0101106_core reading2]\n```", "学习材料格式化": "```\n# 段落1\n重点词汇: \n正文:\n---\nAt Vala Academy, Pioneers don't have exams. But you need points to level up!\n---\n```\n```\n# 段落2\n重点词汇: \n正文:\n---\nYou can choose your favourite club to join. If you are interested in something, you can find a club for it.\n---\n```", "学习过程配置": "```\n# 段落1\n## 段落内容\n---\nAt Vala Academy, Pioneers don't have exams. But you need points to level up!\n---\n## 互动题目\nBrainy: 我们来认识一下这段话中的关键单词 exam。exam 的意思是考试，参加考试可以说 take an exam。\n1. 句意选择题\nBrainy：接下来，我们来看下包含 exam 的句子 At Vala Academy, Pioneers don't have exams. 是什么意思呢？\n- 在瓦拉学院，先锋们不用参加考试。[正确]\n  Brainy：太棒啦！你准确理解了exam的含义，也弄懂了整个句子的意思~\n- 在瓦拉学院，先锋们不用参加俱乐部活动。\n  Brainy：不对哦，club才是俱乐部的意思，这里的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：不对哦，course是课程的意思，这里的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-08 12:32:29
updated_at: 2026-05-08 12:32:29
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": "Can I have a towel please?", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句话是用来索要毛巾的，现在我们还没问健身房的位置哦，请再试一次，先问问Chloe健身房在哪里吧。"}}, {"option": "What else can I do there?", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句话是询问在健身房还能做什么的，现在我们首先要知道健身房的位置哦，请再试一次吧。"}}], "answer": [0], "read": {"type": "user", "content": "Where can I find the gym?"}, "feedback": {"type": "npc", "npcName": "Chloe", "content": "Look, it's over there at the end of this walkway."}}, {"question": {"type": "npc", "npcName": "Brainy", "content": "Chloe已经告诉你健身房在走道的尽头啦，现在你需要向她索要一条毛巾，为运动做准备。"}, "optionList": [{"option": "Where can I find the gym?", "feedback": {"type": "npc", "npcName": "Brainy", "content": "Chloe已经告诉你健身房的位置啦，现在我们需要要毛巾哦，请再试一次吧。"}}, {"option": "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": "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用户选项:\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：Look, it's over there at the end of this walkway.\n\n# 中间回合2\nBrainy: Chloe已经告诉你健身房在走道的尽头啦，现在你需要向她索要一条毛巾，为运动做准备。\n\n用户选项:\n（选项 A）Where can I find the gym?\n  Brainy: Chloe已经告诉你健身房的位置啦，现在我们需要要毛巾哦，请再试一次吧。\n（选项 B）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用户选项:\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\n# 3. 背景信息\n你是 Chloe，是 Twilight 的空乘，服务好每一位乘客是你的使命。用户之前帮你在另一位乘客面前解了围，你很感谢用户的帮忙，对用户的态度也格外友善热情。你发现用完餐的用户正在东张西望，似乎在寻找什么，你确认用户需要帮助，于是上前询问。你发现用户想去健身房消消食，但是不知道方向，于是回答了用户的问题，提供了你的帮助。\n\n# 4. 知识库（你知道的信息）\n你知道健身房就在前方过道的尽头。\n你会为有需要的用户准备一条新毛巾。\n你会解答用户的问题，告诉用户在健身房可以进行的活动：运动、看宇宙风光（sightseeing），或者可以拉伸放松、进行休息。\n对用户的任何提问，你都耐心安抚并一一回答。\n\n# 5. 语言风格\n- 使用 CEFR A1-A2 等级英语，避免复杂句，每句话不超过 10 个词，比如\n  \"我要去...\" 可以用句子 I am going to ...，不用 My destination is ...，确保小学2-4年级的孩子能听懂\n- 回答一般不超过两句话\n- 避免重复表达，适当变换措辞\n\n# 6. 开场白\n你由你开始对话，你会说：\"Can I help you?\"\n\n# 7. 回应方式（固定内容）\n- 你只在用户提问时才根据知识库中的信息回答。其他时候，以符合你身份的方式，自然地进行交谈。\n- 不主动提供知识库的信息\n- 不主动提问题\n```", "语音识别热词": "gym,towel,exercise,sightseeing,relax,walkway"}

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


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试-全量)
category: core
cType: core_speaking_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-08 12:32:31
updated_at: 2026-05-08 12:32:31
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 eating bananas. She is very happy.", "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 need to wait for the keepers 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": "I don't know who will come to help the elephant.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句话是说“我不知道谁会来帮助大象”，没有表达我们要先去打水的想法哦，再试试吧~"}}], "answer": [1], "read": {"type": "user", "content": "Instead of waiting here, we'd better get some water for her first."}, "feedback": {"type": "npc", "npcName": "Logan", "content": "The keepers are too careless! Thank you! Can you help her shower?"}}, {"question": {"type": "npc", "npcName": "Brainy", "content": "Logan说饲养员太粗心了，他很感谢你们，还问你们能不能帮忙给大象洗澡哦。你要回答他你们很乐意帮忙。"}, "optionList": [{"option": "We'd love to help.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "太厉害啦，你选对了！大声把这句话读出来吧~"}}, {"option": "We have no time to help her.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句话意思是“我们没有时间帮她”，和我们愿意帮忙的想法正好相反哦，再选一次吧~"}}, {"option": "We can get some food for her 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": "太棒啦！你已经顺利完成了这次对话任务，成功和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 eating bananas. She is very happy.\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 need to wait for the keepers to come first.\n  Brainy：这句话意思是“我们需要先等饲养员过来”，不符合我们想先打水帮大象洗澡的想法哦，再选一次吧~\n（选项B）Instead of waiting here, we'd better get some water for her first. ✅\n  Brainy：选对啦，你真棒！现在试着把这句话读出来吧~\n（选项C）I don't know who will come to help the elephant.\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 can get some food for her first.\n  Brainy：这句话是说“我们可以先给她拿点食物”，现在Logan问的是能不能帮忙洗澡，这个回答不符合哦，再试试吧~\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,children,Wander Port,banana"}

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


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-08 12:32:55
updated_at: 2026-05-08 12:32:55
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've mastered the expressions about winter very well. Great work!"}}]}], "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-05-08 12:33:05
updated_at: 2026-05-08 12:33:05
raw_config:
[cell repeats an earlier one in this file: 2377 characters]

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

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

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

material_info_json:
[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": "哎呀，这句话说的是从商店购买，没有出现 bake at home 哦，再认真听一遍音频试试吧！", "npcName": "Brainy"}, "option": "When you really want sweet food, like biscuits or cake, you can buy from shops."}], "question": {"type": "npc", "content": "仔细听音频，选出你听到的那句话哦。", "npcName": "Brainy"}}, {"answer": [0], "meaning": "听音选意", "optionList": [{"feedback": {"type": "npc", "content": "完全正确！你不仅读懂了句子意思，还掌握了 bake at home 这个实用的短语，太棒啦！", "npcName": "Brainy"}, "option": "当你特别想吃甜食，比如饼干或者蛋糕时，你可以在家烘焙。"}, {"feedback": {"type": "npc", "content": "这句话的动作不是去外面餐厅吃哦，再回忆一下句子里的关键短语是什么意思，重新选一次吧～", "npcName": "Brainy"}, "option": "当你特别想吃甜食，比如饼干或者蛋糕时，你可以去外面的餐厅吃。"}], "question": {"type": "npc", "content": "现在来看看这句话的正确意思是什么，选选看吧！", "npcName": "Brainy"}}]}]}

intermediate_json:
  {"学习过程配置": "```\n# 重点句子 1\n音频文本：When you really want sweet food, like biscuits or cake, you can bake at home.\n讲解文本：刚刚听到的音频中，包含了一个关键短语 bake at home，意思是在家烘焙。正确的发音是 /beɪk æt həʊm/。\n1. 听音选句\nBrainy：仔细听音频，选出你听到的那句话哦。\n- When you really want sweet food, like biscuits or cake, you can bake at home. [正确]\n  Brainy：太厉害啦！你精准听出了句子里的重点短语 bake at home！\n- When you really want sweet food, like biscuits or cake, you can buy from shops.\n  Brainy：哎呀，这句话说的是从商店购买，没有出现 bake at home 哦，再认真听一遍音频试试吧！\n\n2. 听音选意\nBrainy：现在来看看这句话的正确意思是什么，选选看吧！\n- 当你特别想吃甜食，比如饼干或者蛋糕时，你可以在家烘焙。[正确]\n  Brainy：完全正确！你不仅读懂了句子意思，还掌握了 bake at home 这个实用的短语，太棒啦！\n- 当你特别想吃甜食，比如饼干或者蛋糕时，你可以去外面的餐厅吃。\n  Brainy：这句话的动作不是去外面餐厅吃哦，再回忆一下句子里的关键短语是什么意思，重新选一次吧～\n---\n# 完成反馈\nBrainy：很好！你已经回答完了全部问题，相信你已经听懂了这个任务中所有的重点句子。现在让我们来查看结果吧!\n```", "互动描述": "You listened to the audio about how to live a healthy life, learning you should go to bed on time and get up early, keep good habits instead of relying on much money or expensive things. (你听了关于如何健康生活的音频，了解到你应该早睡早起，靠好习惯而非很多钱或贵重物品来保持健康。)\nYou also learned that when you want sweet food, baking at home with healthy ingredients is a great choice, and staying away from smoking and alcohol helps keep your body in good condition. (你还了解到想吃甜食时，在家用健康食材烘焙是很好的选择，远离烟酒能帮你保持身体健康。)"}


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-08 12:33:22
updated_at: 2026-05-08 12:33:22
final_config_json:
  {"cType": "mid_message_trace", "cId": "0000800", "title": "购买葡萄", "resourceMapping": {"Vicky": 658}, "cDesc": "You bought the fresh grape as required. (你按要求购买了新鲜的葡萄。)", "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-08 12:33:23
updated_at: 2026-05-08 12:33:23
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 sweet 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_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-08 12:33:29
updated_at: 2026-05-08 12:33:29
final_config_json:
  {"cType": "mid_message_fillin", "cId": "0000800", "title": "填写信息表", "resourceMapping": {"Vicky": 658}, "cDesc": "You filled in \"now\" to make \"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_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-08 12:33:40
updated_at: 2026-05-08 12:33:40
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": "", "content": "Warm water here!"}, "errFeedback": {"type": "user", "npcName": "", "content": "It doesn't seem like there's warm water."}, "postDialog": [], "cDesc": "You found the warm water area. (你找到了有温暖的水的区域。)"}

kp_info_json:
[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-05-08 12:33:43
updated_at: 2026-05-08 12:33:43
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_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-08 12:33:47
updated_at: 2026-05-08 12:33:47
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 $one\\ by\\ one$ in order. (你把跳格子按顺序一个接一个排好。)"}

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-05-08 12:33:51
updated_at: 2026-05-08 12:33:51
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_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-08 12:33:52
updated_at: 2026-05-08 12:33:52
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动词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": "太厉害啦！这是一般将来时的特殊疑问句，询问将来的时间要用“When will + 主语 + 动词原形”的结构，正好对应“你什么时候会到？”的语义，完全正确。"}}, {"option": "When is", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，句子里已经有实义动词arrive的原形了，不能和be动词is搭配使用，语法上是错误的，再试一下吧。"}}, {"option": "How is", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，首先这里是要询问到达的时间，不是方式，how不符合语义；其次be动词is也不能和实义动词原形arrive搭配，所以这个选项不对哦。"}}], "answer": [0], "write": {"desc": "When will you arrive?", "trans": "你什么时候会到？"}, "feedback": {"type": "npc", "npcName": "Brainy", "content": "你写的很好！"}}]}], "closing": {"type": "npc", "npcName": "Brainy", "content": "恭喜你，你已经掌握了名词job的单复数用法、固定句型That's why...表原因的用法以及一般将来时询问时间的特殊疑问句结构When will you...，可以顺利完成给Rebecca的邮件啦！"}}

intermediate_json:
  {"学习流程配置": "```\n# 问题1：\nBrainy: 你在邮件里向Rebecca解释留在Wander Port的原因，提到这项工作对你们很重要，现在需要补全句子：The ___ is important for us.\n用户选项:\n（选项 A）job [正确]\n  Brainy: 答对啦！句子里的be动词是is，说明主语是单数，job作为单数名词符合语法和语境，准确表达了“这项工作对我们很重要”的意思。\n（选项 B）jobs\n  Brainy: 不对哦，jobs是可数名词复数形式，和句子里的单数be动词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: 太厉害啦！这是一般将来时的特殊疑问句，询问将来的时间要用“When will + 主语 + 动词原形”的结构，正好对应“你什么时候会到？”的语义，完全正确。\n（选项 B）When is\n  Brainy: 不对哦，句子里已经有实义动词arrive的原形了，不能和be动词is搭配使用，语法上是错误的，再试一下吧。\n（选项 C）How is\n  Brainy: 不对哦，首先这里是要询问到达的时间，不是方式，how不符合语义；其次be动词is也不能和实义动词原形arrive搭配，所以这个选项不对哦。\n```", "互动描述": "Dear Rebecca, I know you are worried. But this is our best chance to explore Wander Port. The job is important for us. That's why we have to stay. Will you come to Wander Port some day? When will you arrive?（亲爱的丽贝卡：我知道你很担心。但这是我们探索漫游港的最佳机会。这项任务对我们来说很重要。这就是我们必须留下来的原因。你会不会在某一天来漫游港呢？你什么时候会到？）"}

text_info_json:
  {"inputType": "sentence", "passCondition": "用户写出：\n这份工作很重要。\n这就是我们为什么要留下。\n你什么时候将会到达？", "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": "用户写出：\n这份工作很重要。\n这就是我们为什么要留下。\n你什么时候将会到达？", "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-05-08 12:34:13
updated_at: 2026-05-08 12:34:13
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（亲爱的丽贝卡：\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（亲爱的丽贝卡：\n我知道你很担心，但这是我们探索漫游港的最佳机会。这项任务对我们来说很重要，这就是我们必须留下来的原因。你会不会哪天来漫游港呀？如果来的话，你什么时候到呢？）"}

study_info_json:
  {"learningPart": [{"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的担忧，也清晰说明了你们想要留下探索的初衷，表达非常准确。"}}, {"option": "I know you are happy. But this is our worst chance to explore Wander Port.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，Rebecca是担心你们的安全，不是开心，而且你们是要留下探索，说明这是好机会，不是糟糕的机会，再试一下吧。"}}, {"option": "I don't know your feeling. We have no chance to explore Wander Port.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句话既没有回应Rebecca的担忧，也不符合你们决定留下探索的语境哦，再想想怎么表达更合适。"}}], "answer": [0], "write": {"desc": "I know you are worried. But this is our best chance to explore Wander Port.", "trans": "我知道你很担心，但这是我们探索漫游港的最佳机会。"}, "feedback": {"type": "npc", "npcName": "Brainy", "content": "你写的很好！"}}]}, {"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\"是单数形式，\"The job is important for us.\"表示这份工作对我们很重要，完全符合语境。"}}, {"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": "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\"是表示方式的疑问词，\"That's how we have to stay\"意思是“这就是我们必须留下的方式”，不符合这里要解释原因的语境，再试一下。"}}, {"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": "Did you come to Wander Port yesterday?", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，这句话是一般过去时，询问的是对方昨天有没有来过Wander Port，不是问未来会不会来，不符合语境哦。"}}, {"option": "Are you coming to Wander Port now?", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，这句话是现在进行时，询问的是对方现在是不是正在来Wander Port，不是问未来的计划，再试一下吧。"}}], "answer": [0], "write": {"desc": "Will you come to Wander Port some day?", "trans": "你会不会哪天来漫游港呀？"}, "feedback": {"type": "npc", "npcName": "Brainy", "content": "你写的很好！"}}]}, {"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，而且这里是问将来的情况，要用一般将来时，结构是\"when will + 主语 + 动词原形\"，完全正确。"}}, {"option": "when is", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，句子里已经有实义动词arrive了，不能再用be动词is，语法上是错误的，再试一下吧。"}}, {"option": "how is", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，这里要询问的是到达的时间，不是方式，而且同样不能和实义动词arrive搭配使用is，不符合语法和语义要求哦。"}}], "answer": [0], "write": {"desc": "If so, when will you arrive?", "trans": "如果来的话，你什么时候到呢？"}, "feedback": {"type": "npc", "npcName": "Brainy", "content": "你写的很好！"}}]}], "closing": {"type": "npc", "npcName": "Brainy", "content": "恭喜你，你已经掌握了本次邮件写作的相关表达，包括句型“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你理解她的担忧，同时说明留下的原因是这是探索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 this is our worst chance to explore Wander Port.\n  Brainy: 不对哦，Rebecca是担心你们的安全，不是开心，而且你们是要留下探索，说明这是好机会，不是糟糕的机会，再试一下吧。\n（选项 C）I don't know your feeling. We have no chance to explore Wander Port.\n  Brainy: 这句话既没有回应Rebecca的担忧，也不符合你们决定留下探索的语境哦，再想想怎么表达更合适。\n\n# 问题2：\nBrainy: 接下来你要说明这份探索工作对你们的重要性，句子是\"The ____ is important for us.\"，空格处应该填什么呢？\n用户选项:\n（选项 A）job [正确]\n  Brainy: 答对啦！这里be动词是is，说明主语是单数，\"job\"是单数形式，\"The job is important for us.\"表示这份工作对我们很重要，完全符合语境。\n（选项 B）jobs\n  Brainy: 不对哦，\"jobs\"是复数形式，后面的be动词应该用are，和句子里的is不匹配，再试一下吧。\n（选项 C）projects\n  Brainy: 不对哦，\"projects\"是复数形式，后面的be动词应该用are，和句子里的is不匹配，而且这里要表达的是当前这份探索工作的重要性，不符合语义，再想想。\n\n# 问题3：\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 we have to stay\"意思是“这就是我们必须留下的方式”，不符合这里要解释原因的语境，再试一下。\n（选项 C）which\n  Brainy: 不对哦，\"which\"通常用来引导定语从句指代事物，放在这里语义不通，没法表达解释原因的意思，再想想吧。\n\n# 问题4：\nBrainy: 你想要询问Rebecca未来会不会来Wander Port，你会怎么说？\n用户选项:\n（选项 A）Will you come to Wander Port some day? [正确]\n  Brainy: 太对啦！这句话用一般将来时询问对方未来是否会来Wander Port，表达非常自然准确，符合邮件里询问的语境。\n（选项 B）Did you come to Wander Port yesterday?\n  Brainy: 不对哦，这句话是一般过去时，询问的是对方昨天有没有来过Wander Port，不是问未来会不会来，不符合语境哦。\n（选项 C）Are you coming to Wander Port now?\n  Brainy: 不对哦，这句话是现在进行时，询问的是对方现在是不是正在来Wander Port，不是问未来的计划，再试一下吧。\n\n# 问题5：\nBrainy: 接着你想问如果Rebecca来的话，她什么时候会到，句子是\"If so, _________ you arrive?\"，空格处应该填什么呢？\n用户选项:\n（选项 A）when will [正确]\n  Brainy: 答对啦！询问对方到达的时间要用疑问词when，而且这里是问将来的情况，要用一般将来时，结构是\"when will + 主语 + 动词原形\"，完全正确。\n（选项 B）when is\n  Brainy: 不对哦，句子里已经有实义动词arrive了，不能再用be动词is，语法上是错误的，再试一下吧。\n（选项 C）how is\n  Brainy: 不对哦，这里要询问的是到达的时间，不是方式，而且同样不能和实义动词arrive搭配使用is，不符合语法和语义要求哦。\n```", "互动描述": "Dear Rebecca, I know you are worried. But this is our best chance to explore Wander Port. The job is important for us. That's why we have to stay. Will you come to Wander Port some day? If so, when will you arrive?\n（亲爱的丽贝卡：\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-08 15:43:00
updated_at: 2026-05-08 15:43:00
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 see Ben's question about where hippos live. You figure out the proper word to fill in the blank, and learn that hippos live in the lake.你探索单词城堡时看到Ben提出河马居住在哪里的问题，你找到了合适的单词补全空缺，了解到河马住在湖里。You keep going through the castle and see Brainy ask about other animals in the zoo. You pick the right word for the content, and know that there are animals living in the tree in the zoo.你继续在城堡中探索，看到Brainy询问动物园里还有什么其他动物，你选对了对应的单词，了解到动物园里有栖息在树上的动物。"}

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 see Ben's question about where hippos live. You figure out the proper word to fill in the blank, and learn that hippos live in the lake.你探索单词城堡时看到Ben提出河马居住在哪里的问题，你找到了合适的单词补全空缺，了解到河马住在湖里。You keep going through the castle and see Brainy ask about other animals in the zoo. You pick the right word for the content, and know that there are animals living in the tree in the zoo.你继续在城堡中探索，看到Brainy询问动物园里还有什么其他动物，你选对了对应的单词，了解到动物园里有栖息在树上的动物。"}

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就是“在湖里”，河马就是生活在湖里的，现在跟着大声读一遍：in the lake。"}}, {"option": "tree", "feedback": {"type": "npc", "npcName": "Brainy", "content": "in the tree是“在树上”，河马没办法住在树上哦，结合图片再想想吧。"}}, {"option": "grass", "feedback": {"type": "npc", "npcName": "Brainy", "content": "in the 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": "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就是“在湖里”，河马就是生活在湖里的，现在跟着大声读一遍：in the lake。\n- 选项 B：tree\n  Brainy：in the tree是“在树上”，河马没办法住在树上哦，结合图片再想想吧。\n- 选项 C：grass\n  Brainy：in the grass是“在草里”，河马的家不在草里哦，再选一次吧。\n\n---\n\n# 小题 5\n## 材料内容\n【展示该小题对应的图片 ID：1201001_02.png】\n\n## 互动题目\n### 1. 句意选词题\nBrainy：这道题问的是动物园里还有什么其他动物，我们先看选项哦，lake是湖，tree是树，不对不对，哦不对，哦等下，哦不对，重新来：这道题我们要先认单词哦，lake是湖，tree是树，grass是草，不对不对，哦不对，题目5的正确选项是tree？不对哦，哦不对，等下，哦可能题目里的选项是猴子？不对不对，哦用户给的题目5的正确选项是tree？不对哦，哦等下看用户给的互动配置里的题目5：选项是lake，tree（正确），grass？不对啊，这三个里tree是树，怎么是动物园里的动物？哦不对，哦可能是用户输入的问题？不对不对，等下看用户任务知识里有monkey是猴子，哦可能是题目里的选项打错了？不对不对，就按照用户给的内容来。哦不对，用户给的题目5的正确选项是tree，那我们就按照这个来。哦不对，等下再仔细看：哦不对，用户给的互动配置里的题目5的选项是lake，tree（正确），grass？哦可能是输入错误，但是我们就按照给定的内容来。哦不对，哦等下，是不是我看错了？哦对，用户给的就是这样，那我们继续。\nBrainy：这道题我们要找动物园里有的东西哦，先看这几个单词：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\n# 完结反馈\nBrainy：太棒了！你复习了lake、tree、grass这些单词，还学会了回答关于动物住所和动物园事物的问题，进步超大哦！\n```\n\n哦不对，刚才题目5的知识点好像有问题，因为tree不是动物，用户给的题目5的题干是“What other animals are there in the zoo？”，选项里没有动物，可能是用户输入的错误？不对，再看用户给的互动配置里的题目5的选项确实是lake、tree（正确）、grass，可能是题干打错了？不管了，就按照用户给的内容来，刚才的流程是对的。哦不对，等下，用户给的用户任务知识里有monkey，但是选项里没有，可能是输入错误，但是我们就按照给定的内容生成就可以了。", "互动描述": "As you explore the word castle, you see Ben's question about where hippos live. You figure out the proper word to fill in the blank, and learn that hippos live in the lake.（你探索单词城堡时看到Ben提出河马居住在哪里的问题，你找到了合适的单词补全空缺，了解到河马住在湖里。）\nYou keep going through the castle and see Brainy ask about other animals in the zoo. You pick the right word for the content, and know that there are animals living in the tree in the zoo.（你继续在城堡中探索，看到Brainy询问动物园里还有什么其他动物，你选对了对应的单词，了解到动物园里有栖息在树上的动物。）"}

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-08 15:43:04
updated_at: 2026-05-08 15:43: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": "我们来认识一下这段话中的关键单词 exam，exam的意思是考试，期末考试可以说final exam。", "npcName": "Brainy", "learning": [{"answer": [0], "meaning": "句意选择题", "optionList": [{"feedback": {"type": "npc", "content": "太棒啦！你准确掌握了exam的含义，也读懂了这个句子的意思~", "npcName": "Brainy"}, "option": "在瓦拉学院，先锋者们没有考试。"}, {"feedback": {"type": "npc", "content": "不对哦，课程的英文是lesson或者course，并不是我们这里讲的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": "不对哦，句子里说的是需要points也就是积分，不是任务，再仔细看看句子内容吧。", "npcName": "Brainy"}, "option": "但是你需要做任务来升级。"}, {"feedback": {"type": "npc", "content": "回答正确！你已经掌握了point的意思，也读懂了这个句子啦~", "npcName": "Brainy"}, "option": "但是你需要积分来升级。"}], "question": {"type": "npc", "npcName": "Brainy", "content": "我们来看包含point的句子But you need points to level up! 是什么意思呢？"}}]}, {"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的意思是选择、挑选，做选择可以说make a choice。", "npcName": "Brainy", "learning": [{"answer": [0], "meaning": "句意选择题", "optionList": [{"feedback": {"type": "npc", "content": "太厉害啦！你完全掌握了choose的意思，也读懂了这个句子~", "npcName": "Brainy"}, "option": "你可以选择你最喜欢的俱乐部加入。"}, {"feedback": {"type": "npc", "content": "不对哦，创建的英文是create或者start，不是我们这里的choose，再回忆下单词的含义吧。", "npcName": "Brainy"}, "option": "你可以创建你最喜欢的俱乐部加入。"}], "question": {"type": "npc", "npcName": "Brainy", "content": "我们来看包含choose的句子You can choose your favourite club to join. 是什么意思呢？"}}, {"answer": [0], "meaning": "句意选择题", "optionList": [{"feedback": {"type": "npc", "content": "完美回答！你已经掌握了club的含义，也理解了整个句子的意思~", "npcName": "Brainy"}, "option": "如果你对某件事感兴趣，你可以找到对应的俱乐部。"}, {"feedback": {"type": "npc", "content": "不对哦，退出的英文是quit，句子里说的是find也就是找到，再认真看看句子内容吧。", "npcName": "Brainy"}, "option": "如果你对某件事感兴趣，你可以退出对应的俱乐部。"}], "question": {"type": "npc", "npcName": "Brainy", "content": "我们来看包含club的句子If you are interested in something, you can find a club for it. 是什么意思呢？"}}, {"answer": [0], "meaning": "段落大意题", "optionList": [{"feedback": {"type": "npc", "content": "太棒了！你完全抓住了段落的核心信息~", "npcName": "Brainy"}, "option": "你可以选择喜欢的俱乐部加入，如果你对某件事感兴趣，就能找到对应的俱乐部。"}, {"feedback": {"type": "npc", "content": "不对哦，段落里并没有提到俱乐部都受欢迎，也没有要求必须加入俱乐部，再回顾下段落内容吧。", "npcName": "Brainy"}, "option": "学校里所有的俱乐部都非常受欢迎，你必须加入至少一个。"}], "question": {"type": "npc", "npcName": "Brainy", "content": "了解了重点单词和句子，我们来看看这一段主要讲了什么内容吧？"}}]}]}

intermediate_json:
  {"阅读材料格式化": "```\n# 材料2\n类型：电子屏\n标题：How to Join Clubs?\n正文:\n<sp>You can choose your favourite club to join. If you are interested in something, you can find a club for it. The robot club, the plant club, the sports club, and the reading club are all popular choices.<br>If you are not interested in any club, you can start a new one with friends!<br>\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的意思是考试，期末考试可以说final exam。\n1. 句意选择题\nBrainy：接下来，我们来看下包含exam的句子At Vala Academy, Pioneers don't have exams. 是什么意思呢？\n- 在瓦拉学院，先锋者们没有考试。[正确]\n  Brainy：太棒啦！你准确掌握了exam的含义，也读懂了这个句子的意思~\n- 在瓦拉学院，先锋者们没有课程。\n  Brainy：不对哦，课程的英文是lesson或者course，并不是我们这里讲的exam，再回忆下单词的意思吧。\n\nBrainy：还有一个重点单词point，point在这里是积分的意思，攒积分可以说save points。\n2. 句意选择题\nBrainy：我们来看包含point的句子But you need points to level up! 是什么意思呢？\n- 但是你需要做任务来升级。\n  Brainy：不对哦，句子里说的是需要points也就是积分，不是任务，再仔细看看句子内容吧。\n- 但是你需要积分来升级。[正确]\n  Brainy：回答正确！你已经掌握了point的意思，也读懂了这个句子啦~\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的意思是选择、挑选，做选择可以说make a choice。\n1. 句意选择题\nBrainy：我们来看包含choose的句子You can choose your favourite club to join. 是什么意思呢？\n- 你可以选择你最喜欢的俱乐部加入。[正确]\n  Brainy：太厉害啦！你完全掌握了choose的意思，也读懂了这个句子~\n- 你可以创建你最喜欢的俱乐部加入。\n  Brainy：不对哦，创建的英文是create或者start，不是我们这里的choose，再回忆下单词的含义吧。\n\nBrainy：还有一个重点单词club，club的意思是俱乐部，足球俱乐部可以说football club。\n2. 句意选择题\nBrainy：我们来看包含club的句子If you are interested in something, you can find a club for it. 是什么意思呢？\n- 如果你对某件事感兴趣，你可以找到对应的俱乐部。[正确]\n  Brainy：完美回答！你已经掌握了club的含义，也理解了整个句子的意思~\n- 如果你对某件事感兴趣，你可以退出对应的俱乐部。\n  Brainy：不对哦，退出的英文是quit，句子里说的是find也就是找到，再认真看看句子内容吧。\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_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-08 15:43:15
updated_at: 2026-05-08 15:43:15
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": "这句话是询问在健身房还能做什么的，现在我们需要先索要毛巾哦。再试一次吧。"}}], "answer": [1], "read": {"type": "user", "content": "Oh, and can I have a towel please?"}, "feedback": {"type": "npc", "npcName": "Chloe", "content": "Of course! I'll bring a new one for you soon."}}, {"question": {"type": "npc", "npcName": "Brainy", "content": "Chloe同意马上给你拿一条新毛巾，现在你可以问问她在健身房还能做些什么。"}, "optionList": [{"option": "Where can I find the gym?", "feedback": {"type": "npc", "npcName": "Brainy", "content": "你已经知道健身房的位置啦，现在可以问问在健身房还有什么可以做的哦，再试一次吧。"}}, {"option": "Can I have a towel please?", "feedback": {"type": "npc", "npcName": "Brainy", "content": "你已经要过毛巾啦，Chloe也同意给你拿了哦。现在我们可以问问在健身房还有什么可以做的，再试一次吧。"}}, {"option": "What else can I do there?", "feedback": {"type": "npc", "npcName": "Brainy", "content": "做得好！你正确地问出了在健身房还可以做的事。请大声朗读这句话！"}}], "answer": [2], "read": {"type": "user", "content": "What else can I do there?"}, "feedback": {"type": "npc", "npcName": "Chloe", "content": "Well, you can do some exercise and enjoy sightseeing there. Or you can just relax."}}], "closing": {"type": "npc", "npcName": "Brainy", "content": "Chloe已经告诉你在健身房可以运动、欣赏风景或者放松休息，你已经问完了所有需要的信息，任务圆满完成啦！"}}}

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

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

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

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

task_info_json:
  {"cType": "core_speaking_reply", "cId": "0000800", "title": "求助清洁工人为大象洗澡", "taskDesc": "请你告诉清洁站的工人，大象需要洗澡，你们乐意帮助，希望送一些干净的水过来。", "sceneDesc": "你是Logan，在 Wander Port 的清洁站工作。清洁站附近有一只大象，人们都很喜欢她，喂她吃香蕉，帮她洗澡。这天你接到电话，几个孩子说大象需要洗澡，你意识到一定是饲养员粗心忘记了！孩子们说愿意帮助大象洗澡，需要借一些干净的水，你立刻答应。", "img": "", "key": [{"desc": "表达提议做某事", "keyList": [{"type": "default", "content": "Let's...", "desc": "让我们……"}]}, {"desc": "表达选择更优方案", "keyList": [{"type": "default", "content": "Instead of..., we'd better...", "desc": "与其……，我们不如……"}]}, {"desc": "表达乐意做某事", "keyList": [{"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 have bananas for her.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，这句话是说“大象饿了，我们有香蕉给她”，现在的情境是大象需要洗澡，不是饿啦，再试一次吧。"}}, {"option": "The elephant is lost. Let's look for her 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": "OK, let's wait here for the keeper.", "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": "You're right. Let's go play 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": "We are too busy to help.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，这句话是说“我们太忙了帮不了忙”，我们是很愿意帮忙给大象洗澡的哦，再试一次吧。"}}, {"option": "Sorry, we don't like elephants.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，这句话是说“不好意思，我们不喜欢大象”，我们本来就是要帮大象洗澡的，可不是不喜欢她哦，再选一次吧。"}}], "answer": [0], "read": {"type": "user", "content": "We'd love to help."}, "feedback": {"type": "npc", "npcName": "Logan", "content": "Great. We will send some water to her right away."}}], "closing": {"type": "npc", "npcName": "Brainy", "content": "太棒啦！你已经顺利完成了求助清洁工人给大象送水、帮忙洗澡的对话任务，继续加油哦~"}}}

intermediate_json:
  {"学习流程配置": "```\n# 开场回合\nLogan：Hi. What happened to the elephant?\n\n# 中间回合1\nBrainy：Logan问你大象出什么事啦，现在你需要告诉他大象需要洗澡，你们想要帮她安排冲澡哦。\n用户选项:\nA. The elephant needs a shower. Let's set up a shower for her.\n  Brainy：答对啦！你真棒，现在试着把这句话大声读出来吧~\nB. The elephant is hungry. We have bananas for her.\n  Brainy：不对哦，这句话是说“大象饿了，我们有香蕉给她”，现在的情境是大象需要洗澡，不是饿啦，再试一次吧。\nC. The elephant is lost. Let's look for her 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. OK, let's wait here for the keeper.\n  Brainy：不对哦，这句话是说“好的，我们在这里等饲养员吧”，现在我们是要主动先去拿水，不是等着哦，再试一次吧。\nB. Instead of waiting here, we'd better get some water for her first.\n  Brainy：太对啦！你理解得非常好，现在把这句话读出来练习一下吧~\nC. You're right. Let's go play 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. We are too busy to help.\n  Brainy：不对哦，这句话是说“我们太忙了帮不了忙”，我们是很愿意帮忙给大象洗澡的哦，再试一次吧。\nC. Sorry, we don't like elephants.\n  Brainy：不对哦，这句话是说“不好意思，我们不喜欢大象”，我们本来就是要帮大象洗澡的，可不是不喜欢她哦，再选一次吧。\nLogan：Great. We will send some water to her right away.\n\n# 结尾回合\nBrainy：太棒啦！你已经顺利完成了求助清洁工人给大象送水、帮忙洗澡的对话任务，继续加油哦~\n```", "promptInfo配置": "```\n# 1. 角色（你要扮演谁）\n你是Logan，在Wander Port的清洁站工作。你的语言风格亲切自然，简单易懂，适合儿童理解。\n# 2. 任务（你如何参与对话）\n1. 开场白先询问用户大象的相关情况，确认大象是否需要洗澡。\n2. 当用户说明大象需要洗澡后，你要表达疑惑，告诉用户可以先等一等，或许饲养员很快就会来。\n3. 接下来你要询问用户是否愿意帮忙给大象洗澡。\n4. 如果用户表示愿意帮忙，你要先表达感谢，然后告诉用户你会立刻安排送干净的水过去，之后自然结束对话。\n5. 如果用户没有明确回答是否愿意帮忙，你可以再友好地重复一次问题，引导用户给出明确答复。\n6. 如果用户说的内容和当前任务无关，你可以礼貌地把话题拉回给大象洗澡的相关内容上，继续推进任务。\n7. 整个对话过程不要提及和给大象洗澡无关的额外信息。\n# 3. 背景信息\n你是Logan，在 Wander Port 的清洁站工作。清洁站附近有一只大象，人们都很喜欢她，喂她吃香蕉，帮她洗澡。这天你接到电话，几个孩子说大象需要洗澡，你意识到一定是饲养员粗心忘记了！孩子们说愿意帮助大象洗澡，需要借一些干净的水，你立刻答应。\n# 4. 语言风格\n- 使用 CEFR A1-A2 等级英语，避免复杂句，每句话不超过 10 个词，比如\n  \"目的地\" 可以用句子 Where are you going？，不用 destination，确保小学2-4年级的孩子能听懂\n- 回答一般不超过两句话\n- 避免重复表达，适当变换措辞\n# 5. 开场白 (仅用于首轮)\n由你开始对话，你会问用户：\"Hi. What happened to the elephant?\"\n# 6. 回应方式\n- 无论用户如何对话，你都应基于你的身份做出合理反应。\n- 每次最多只提问一个问题，等待用户回答后再继续。\n- 除开场轮次外，每次回应，可以先基于用户的话给一句反馈。然后再推进你的任务。\n```", "语音识别热词": "elephant,shower,water,keepers,help,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. 如果用户没有明确回答是否愿意帮忙，你可以再友好地重复一次问题，引导用户给出明确答复。\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_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-08 15:43:54
updated_at: 2026-05-08 15:43:54
raw_config:
[cell repeats an earlier one in this file: 2377 characters]

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

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

task_info_json:
  {"cType": "core_listening_order", "cId": "0000800", "title": "Max 的专业健身指南", "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: 2600 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": [0], "meaning": "听音选句", "optionList": [{"feedback": {"type": "npc", "content": "太棒啦！你精准听出了句子里的重点短语 bake at home，太厉害啦！", "npcName": "Brainy"}, "option": "When you really want sweet food, like biscuits or cake, you can bake at home."}, {"feedback": {"type": "npc", "content": "哎呀，这句话说的是 buy at the shop（在商店买），没有出现 bake at home 哦，再仔细听听音频吧！", "npcName": "Brainy"}, "option": "When you really want sweet food, like biscuits or cake, you can buy at the shop."}], "question": {"type": "npc", "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：哎呀，这句话说的是 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 second part of Max's fitness guide, and learned that a healthy routine means going to bed on time and getting up early, and you should stay away from bad habits like smoking and alcohol. (你听了Max健身指南的第二部分，了解到健康的作息是按时睡觉早起，还要远离抽烟喝酒这类坏习惯。)\nYou also found that keeping healthy doesn't need much money or expensive items, and good habits are the most important thing for a healthy body. (你还发现保持健康不需要很多钱或者昂贵的物品，好习惯对健康的身体来说才是最重要的。)"}


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-08 15:44:03
updated_at: 2026-05-08 15:44:03
raw_config:
[cell repeats an earlier one in this file: 559 characters]

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

study_info_json:
  {"learningPart": [{"leadIn": {"type": "npc", "npcName": "Rock", "content": "What season is it?"}, "learning": [{"question": {"type": "npc", "npcName": "Brainy", "content": "Rock 老师问你现在是什么季节，你需要回答现在的季节哦。", "index": 0}, "optionList": [{"option": "Winter.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "太棒了！你正确回答了现在是冬季。请大声朗读这句话！"}}, {"option": "Cold.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句话的意思是“寒冷的”，但老师现在问的是什么季节，不是天气感受哦。请再仔细听清问题，告诉老师现在的季节。"}}, {"option": "Snow.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句话的意思是“雪”，但老师现在问的是什么季节，不是你看到的景物哦。请再仔细听清问题，告诉老师现在的季节。"}}], "answer": [0], "read": {"type": "npc", "npcName": "User", "content": "Winter."}}]}, {"leadIn": {"type": "npc", "npcName": "Rock", "content": "Is it hot or cold?"}, "learning": [{"question": {"type": "npc", "npcName": "Brainy", "content": "Rock 老师现在问你天气是热的还是冷的，你需要回答冬季的天气感受哦。", "index": 1}, "optionList": [{"option": "Winter.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句话的意思是“冬季”，但老师现在问的是天气冷还是热，不是季节哦。请再仔细听清问题，告诉老师冬季的天气感受。"}}, {"option": "Cold.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "太棒了！你正确回答了冬天天气很冷。请大声朗读这句话！"}}, {"option": "Snow.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句话的意思是“雪”，但老师现在问的是天气冷还是热，不是你看到的景物哦。请再仔细听清问题，告诉老师冬季的天气感受。"}}], "answer": [1], "read": {"type": "npc", "npcName": "User", "content": "Cold."}}]}, {"leadIn": {"type": "npc", "npcName": "Rock", "content": "What do you see in winter?"}, "learning": [{"question": {"type": "npc", "npcName": "Brainy", "content": "Rock 老师问你在冬天能看到什么，你需要回答冬季特有的景物哦。", "index": 2}, "optionList": [{"option": "Winter.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句话的意思是“冬季”，但老师现在问的是你能看到什么东西，不是季节哦。请再仔细听清问题，告诉老师你在冬天看到的景物。"}}, {"option": "Cold.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句话的意思是“寒冷的”，但老师现在问的是你能看到什么东西，不是天气感受哦。请再仔细听清问题，告诉老师你在冬天看到的景物。"}}, {"option": "Snow.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "太棒了！你正确回答了冬天能看到雪。请大声朗读这句话！"}}], "answer": [2], "read": {"type": "npc", "npcName": "User", "content": "Snow."}, "feedback": {"type": "npc", "npcName": "Rock", "content": "You did a great job sharing what you know 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```", "语音识别热词": "Mr Rock,Winter Island,winter,cold,snow"}

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

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_drag
type_name: 听力拖拽
level: L1
unit_id: U14
knowledge_points_raw:
  between
  duck
  next to

status: generated
bitable_token: K3QrwQnWqiPBm1krhnNcWDTqnhe
db_table: core_interaction_component
created_at: 2026-05-08 15:44:05
updated_at: 2026-05-08 15:44:05
raw_config:
  【任务标题】
  指挥大家赶鸭子
  【任务背景】
  鸭子大乱斗！手忙脚乱没有用，你现在得和伙伴们一起协作，把到处跑的鸭子赶进水里。快说说你的计划吧！
  【通关知识】
  between prep. 在……中间
  next to prep.        紧邻
  duck n. 鸭子
  【开场语】
  无
  【听力文本】
  # 文本 1
  Matt: Where should I go?
  User: Go between the red duck and the blue duck.
  User: Don't let them fight.        
  # 文本 2
  Ben: What about me?
  User: You are next to the blue duck.
  # 文本 3
  Amber: And me? Where should I be?
  User: You are next to the red duck.
  User: Get it into the water!
  【题目信息】
  #单空选择
  选项图片编号：00, 01,02
  答案图片编号：00, 01,02

  【学习过程】
  句子 1
  Go between the red duck and the blue duck.【between】
  句子 2
  You are next to the blue duck.【next to】
  句子 3
  You are next to the red duck.【next to】

final_config_json:
  {"cType": "core_listening_drag", "cId": "0000800", "title": "指挥大家赶鸭子", "sceneDesc": "鸭子大乱斗！手忙脚乱没有用，你现在得和伙伴们一起协作，把到处跑的鸭子赶进水里。快说说你的计划吧！", "key": [{"desc": "", "keyList": [{"type": "default", "content": "between", "desc": "prep. 在……中间"}, {"type": "default", "content": "next to", "desc": "prep. 紧邻"}, {"type": "default", "content": "duck", "desc": "n. 鸭子"}]}], "resourceMapping": {"Eva": 738, "Peter": 739}, "cDesc": "You took on the fun task of guiding everyone to herd the ducks, choosing the right methods from several options to make all the little ducks walk into the pen smoothly. (你接下了指挥大家赶鸭子的趣味任务，从几种方案里选了合适的方法，顺利让所有小鸭子都走进了围栏里。)"}

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

task_info_json:
  {"cType": "core_listening_drag", "cId": "0000800", "title": "指挥大家赶鸭子", "sceneDesc": "鸭子大乱斗！手忙脚乱没有用，你现在得和伙伴们一起协作，把到处跑的鸭子赶进水里。快说说你的计划吧！", "key": [{"desc": "", "keyList": [{"type": "default", "content": "between", "desc": "prep. 在……中间"}, {"type": "default", "content": "next to", "desc": "prep. 紧邻"}, {"type": "default", "content": "duck", "desc": "n. 鸭子"}]}], "resourceMapping": {"Eva": 738, "Peter": 739}, "cDesc": "You took on the fun task of guiding everyone to herd the ducks, choosing the right methods from several options to make all the little ducks walk into the pen smoothly. (你接下了指挥大家赶鸭子的趣味任务，从几种方案里选了合适的方法，顺利让所有小鸭子都走进了围栏里。)"}

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

intermediate_json:
  {"学习过程配置": "```\n# 重点句子 1\n音频文本：Go between the red duck and the blue duck.\n讲解文本：刚刚听到的音频中，包含了一个关键短语 between...and...，意思是“在……和……之间”，用来描述两个事物中间的位置哦。\n1. 听音选句\nBrainy：仔细听音频，选出你听到的句子吧。\n- Go behind the red duck and the blue duck.\n  - Brainy：哎呀，这句话里的介词是behind（在……后面），不是我们音频里的between哦，再仔细听一遍试试吧~\n- Go between the red duck and the blue duck. [正确]\n  - Brainy：太厉害啦！你准确听出了句子里的重点短语between...and...！\n\n2. 听音选意\nBrainy：“走到红色鸭子和蓝色鸭子的旁边”，这句话是刚刚句子的意思吗？\n- 对 / Yes\n  - Brainy：不对哦，句子里表示位置的短语意思不是“在旁边”，再好好想想~\n- 错 / No [正确]\n  - Brainy：答对啦！between...and...是“在……和……之间”的意思，你已经完全掌握这个句子啦！\n---\n# 完成反馈\nBrainy：很好！你已经回答完了全部问题，相信你已经听懂了这个任务中所有的重点句子。现在让我们来查看结果吧!\n```", "互动描述": "You took on the fun task of guiding everyone to herd the ducks, choosing the right methods from several options to make all the little ducks walk into the pen smoothly. (你接下了指挥大家赶鸭子的趣味任务，从几种方案里选了合适的方法，顺利让所有小鸭子都走进了围栏里。)"}

question_list_json:
  [{"imageInfo": {"questionImg": "0000800_question.png", "answerImg": "0000800_answer.png"}, "optionList": [{"option": "0000800_option_00.png"}, {"option": "0000800_option_01.png"}, {"option": "0000800_option_02.png"}], "answer": [0, 1, 2], "answerType": "all"}]

dialog_list_json:
  [[{"type": "npc", "npcName": "Matt", "content": "Where should I go?", "trans": "我该去哪里？", "isPoint": false}, {"type": "user", "content": "Go between the red duck and the blue duck.", "trans": "走到红鸭子和蓝鸭子中间去。", "isPoint": false}, {"type": "user", "content": "Don't let them fight.", "trans": "别让它们打架。", "isPoint": false}], [{"type": "npc", "npcName": "Ben", "content": "What about me?", "trans": "那我呢？", "isPoint": false}, {"type": "user", "content": "You are next to the blue duck.", "trans": "你在蓝鸭子旁边。", "isPoint": false}], [{"type": "npc", "npcName": "Amber", "content": "And me? Where should I be?", "trans": "那我呢？我应该在哪里？", "isPoint": false}, {"type": "user", "content": "You are next to the red duck.", "trans": "你在红鸭子旁边。", "isPoint": false}, {"type": "user", "content": "Get it into the water!", "trans": "把它弄到水里去！", "isPoint": false}]]


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-08 15:44:50
updated_at: 2026-05-08 15:44:50
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": "你正在和队友整理线索，准备向Luisa教授汇报，首先你要说出自己对飞船坠落位置的判断，你会怎么表达？"}, "optionList": [{"option": "I think the spaceship fell...", "feedback": {"type": "npc", "npcName": "Brainy", "content": "太棒啦！这句话正是用来表达你对飞船坠落位置的判断，很契合当前汇报线索的场景哦。"}}, {"option": "I saw trees with...", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句话是描述你看到的树木的特征，不是用来判断飞船坠落位置的表达哦，再试一下吧。"}}, {"option": "I heard a loud noise in...", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句话是用来描述你听到声响的方位，不是对飞船坠落位置的判断哦，再想想~"}}], "answer": [0], "write": {"desc": "I think the spaceship fell...", "trans": "我认为飞船坠落在……"}, "feedback": {"type": "npc", "npcName": "Brainy", "content": "你写的很好！"}}]}, {"leadIn": {"image": "0000800-00.png"}, "learning": [{"question": {"type": "npc", "npcName": "Brainy", "content": "你想要补充自己在森林里观察到的树木相关的线索，你会怎么开头描述这个发现？"}, "optionList": [{"option": "I think the spaceship fell...", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句话是用于判断飞船坠落位置的，不是描述你看到的树木特征哦，再试一下吧。"}}, {"option": "I saw trees with...", "feedback": {"type": "npc", "npcName": "Brainy", "content": "太对啦！这句话恰好可以用来引出你观察到的树木相关的线索，符合你要补充视觉发现的需求~"}}, {"option": "I heard a loud noise in...", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句话是描述你听到的声响，不是描述看到的树木相关线索哦，再想一想呀。"}}], "answer": [1], "write": {"desc": "I saw trees with...", "trans": "我看到有……的树。"}, "feedback": {"type": "npc", "npcName": "Brainy", "content": "你写的很好！"}}]}, {"leadIn": {"image": "0000800-00.png"}, "learning": [{"question": {"type": "npc", "npcName": "Brainy", "content": "你要说明自己听到的异常声响相关的线索，告诉教授声响传来的方向，你会怎么表达？"}, "optionList": [{"option": "I think the spaceship fell...", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句话是判断飞船坠落位置的表达，不是用来描述你听到的声响方位哦，再试一下吧。"}}, {"option": "I saw trees with...", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句话是描述视觉上看到的树木特征，不是描述听到的声响哦，再想想~"}}, {"option": "I heard a loud noise in...", "feedback": {"type": "npc", "npcName": "Brainy", "content": "太棒了！这句话就是用来描述你听到巨大声响的方位，刚好可以汇报这条听觉线索哦。"}}], "answer": [2], "write": {"desc": "I heard a loud noise in...", "trans": "我听到……方向有巨大的声音。"}, "feedback": {"type": "npc", "npcName": "Brainy", "content": "你写的很好！"}}]}], "closing": {"type": "npc", "npcName": "Brainy", "content": "恭喜你，可以使用准确的句型 I think the spaceship fell...、I saw trees with... 和 I heard a loud noise in...，完成向Luisa教授汇报飞船坠落相关线索的内容写作！"}}

intermediate_json:
  {"学习流程配置": "```\n# 问题1：\nBrainy: 你正在和队友整理线索，准备向Luisa教授汇报，首先你要说出自己对飞船坠落位置的判断，你会怎么表达？\n用户选项:\n（选项 A）I think the spaceship fell... [正确]\n  Brainy: 太棒啦！这句话正是用来表达你对飞船坠落位置的判断，很契合当前汇报线索的场景哦。\n（选项 B）I saw trees with...\n  Brainy: 这句话是描述你看到的树木的特征，不是用来判断飞船坠落位置的表达哦，再试一下吧。\n（选项 C）I heard a loud noise in...\n  Brainy: 这句话是用来描述你听到声响的方位，不是对飞船坠落位置的判断哦，再想想~\n\n# 问题2：\nBrainy: 你想要补充自己在森林里观察到的树木相关的线索，你会怎么开头描述这个发现？\n用户选项:\n（选项 A）I think the spaceship fell...\n  Brainy: 这句话是用于判断飞船坠落位置的，不是描述你看到的树木特征哦，再试一下吧。\n（选项 B）I saw trees with... [正确]\n  Brainy: 太对啦！这句话恰好可以用来引出你观察到的树木相关的线索，符合你要补充视觉发现的需求~\n（选项 C）I heard a loud noise in...\n  Brainy: 这句话是描述你听到的声响，不是描述看到的树木相关线索哦，再想一想呀。\n\n# 问题3：\nBrainy: 你要说明自己听到的异常声响相关的线索，告诉教授声响传来的方向，你会怎么表达？\n用户选项:\n（选项 A）I think the spaceship fell...\n  Brainy: 这句话是判断飞船坠落位置的表达，不是用来描述你听到的声响方位哦，再试一下吧。\n（选项 B）I saw trees with...\n  Brainy: 这句话是描述视觉上看到的树木特征，不是描述听到的声响哦，再想想~\n（选项 C）I heard a loud noise in... [正确]\n  Brainy: 太棒了！这句话就是用来描述你听到巨大声响的方位，刚好可以汇报这条听觉线索哦。\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: core
cType: core_listening_choose
type_name: 听力选择
level: L1
unit_id: U14
knowledge_points_raw: summerhotshortstrousersCould you...It feels...
status: generated
bitable_token: Kwrcw6A4jip2sxkdLn4czd1knvf
db_table: core_interaction_component
created_at: 2026-05-08 15:45:00
updated_at: 2026-05-08 15:45:00
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": "You talked with the fishing uncle Jack, and knew it is summer now and the weather is really hot that makes your face turn red.（你和钓鱼的杰克叔叔交流，了解到现在是夏天，天气太热让你脸都变红了。）\nYou told Jack you don’t have shorts at hand, and you need the shorts that are placed between the rocks nearby.（你告诉杰克你手头没有短裤，你需要放在附近岩石中间的那条短裤。）\nYou asked Jack for help to get the shorts for you, and Jack agreed to help you take the shorts over there.（你请求杰克帮忙拿那条短裤，杰克同意帮你去把那边的短裤取过来。）"}

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": "You talked with the fishing uncle Jack, and knew it is summer now and the weather is really hot that makes your face turn red.（你和钓鱼的杰克叔叔交流，了解到现在是夏天，天气太热让你脸都变红了。）\nYou told Jack you don’t have shorts at hand, and you need the shorts that are placed between the rocks nearby.（你告诉杰克你手头没有短裤，你需要放在附近岩石中间的那条短裤。）\nYou asked Jack for help to get the shorts for you, and Jack agreed to help you take the shorts over there.（你请求杰克帮忙拿那条短裤，杰克同意帮你去把那边的短裤取过来。）"}

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 winter!", "feedback": {"type": "npc", "content": "哎呀，这句话说到的是 winter（冬天），并不是我们听到的 summer 哦，再认真听一遍音频试试看吧！", "npcName": "Brainy"}}, {"option": "This summer!", "feedback": {"type": "npc", "content": "太棒啦！你准确听出了句子里的重点单词 summer，真厉害！", "npcName": "Brainy"}}], "answer": [1]}, {"question": {"content": "This summer!", "type": "npc", "npcName": "Brainy"}, "extendQuestion": {"content": "现在音频里说的句子意思是“现在是冬天！”，你觉得对不对呀？", "type": "npc", "npcName": "Brainy"}, "optionList": [{"option": "对 / Yes", "feedback": {"type": "npc", "content": "我们听到的单词是 summer 哦，不是代表冬天的单词，再想想看~", "npcName": "Brainy"}}, {"option": "错 / No", "feedback": {"type": "npc", "content": "完全正确！你已经掌握了 summer 是“夏天”的意思啦，棒棒的！", "npcName": "Brainy"}}], "answer": [1]}]}, {"type": "npc", "npcName": "Brainy", "content": "It feels so hot!", "learning": [{"question": {"content": "刚刚听到的音频中，包含了一个关键形容词 hot，意思是热的、温度高的，常用来描述炎热的天气哦。正确的发音是 /hɒt/。", "type": "npc", "npcName": "Brainy"}, "extendQuestion": {"content": "认真听音频内容，下面哪个句子是你刚刚听到的呀？", "type": "npc", "npcName": "Brainy"}, "optionList": [{"option": "It feels so hot!", "feedback": {"type": "npc", "content": "太聪明啦！你准确捕捉到了句子里的重点单词 hot，做得非常好！", "npcName": "Brainy"}}, {"option": "It feels so cold!", "feedback": {"type": "npc", "content": "这句话里说的是 cold（寒冷的），不是我们听到的 hot 哦，再仔细听一遍音频试试吧！", "npcName": "Brainy"}}], "answer": [0]}, {"question": {"content": "It feels so hot!", "type": "npc", "npcName": "Brainy"}, "extendQuestion": {"content": "这句话的中文意思是“天气感觉好热啊”，你说对不对呢？", "type": "npc", "npcName": "Brainy"}, "optionList": [{"option": "对 / Yes", "feedback": {"type": "npc", "content": "答对啦！你不仅听懂了句子，还牢牢记住了 hot 是“热的”意思，太优秀啦！", "npcName": "Brainy"}}, {"option": "错 / No", "feedback": {"type": "npc", "content": "句子里的描述是和温度高有关的哦，再回忆下 hot 的意思，重新选一次吧~", "npcName": "Brainy"}}], "answer": [0]}]}, {"type": "npc", "npcName": "Brainy", "content": "Do you have any shorts?", "learning": [{"question": {"content": "刚刚听到的音频中，包含了一个关键名词 shorts，意思是短裤，是夏天常穿的服饰哦。正确的发音是 /ʃɔːts/。", "type": "npc", "npcName": "Brainy"}, "extendQuestion": {"content": "仔细听播放的音频，下面哪句话和你听到的内容一样呢？", "type": "npc", "npcName": "Brainy"}, "optionList": [{"option": "Do you have any shoes?", "feedback": {"type": "npc", "content": "这句话里提到的是 shoes（鞋子），并不是我们听到的 shorts 哦，再认真听听音频吧！", "npcName": "Brainy"}}, {"option": "Do you have any shorts?", "feedback": {"type": "npc", "content": "哇，你精准听出了句子里的重点单词 shorts，太棒啦！", "npcName": "Brainy"}}], "answer": [1]}, {"question": {"content": "Do you have any shorts?", "type": "npc", "npcName": "Brainy"}, "extendQuestion": {"content": "这句话的意思是“你有鞋子吗？”，你觉得这个说法对吗？", "type": "npc", "npcName": "Brainy"}, "optionList": [{"option": "对 / Yes", "feedback": {"type": "npc", "content": "句子里提到的衣物是夏天穿的短裤哦，不是鞋子，再仔细想想呀~", "npcName": "Brainy"}}, {"option": "错 / No", "feedback": {"type": "npc", "content": "完全正确！你已经搞懂 shorts 是“短裤”的意思啦，掌握得很不错哦！", "npcName": "Brainy"}}], "answer": [1]}]}, {"type": "npc", "npcName": "Brainy", "content": "I need the shorts between those rocks.", "learning": [{"question": {"content": "刚刚听到的音频中，包含了一个关键介词短语 between rocks，意思是在岩石之间，用来描述物品的位置哦。", "type": "npc", "npcName": "Brainy"}, "extendQuestion": {"content": "认真听音频，下面哪个句子是你刚刚听到的内容呀？", "type": "npc", "npcName": "Brainy"}, "optionList": [{"option": "I need the shorts between those rocks.", "feedback": {"type": "npc", "content": "太厉害啦！你准确听出了短裤的位置是在岩石之间，听力超棒的！", "npcName": "Brainy"}}, {"option": "I need the shorts under those trees.", "feedback": {"type": "npc", "content": "这句话说的是短裤在树下哦，不是我们听到的岩石之间的位置，再听一遍音频试试看吧！", "npcName": "Brainy"}}], "answer": [0]}, {"question": {"content": "I need the shorts between those rocks.", "type": "npc", "npcName": "Brainy"}, "extendQuestion": {"content": "这句话的中文意思是“我需要那些岩石之间的短裤”，你说对不对呢？", "type": "npc", "npcName": "Brainy"}, "optionList": [{"option": "错 / No", "feedback": {"type": "npc", "content": "句子描述的是短裤所在的位置哦，再回忆下 between rocks 的意思，重新选一次吧~", "npcName": "Brainy"}}, {"option": "对 / Yes", "feedback": {"type": "npc", "content": "答对啦！你不仅听懂了整句话的意思，还掌握了 between rocks 这个表示位置的短语，太优秀了！", "npcName": "Brainy"}}], "answer": [1]}]}], "closing": {"type": "npc", "content": "很好！你已经回答完了全部问题，相信你已经听懂了这个任务中所有的重点句子。现在让我们来查看结果吧!", "npcName": "Brainy"}}

intermediate_json:
  {"学习过程配置": "```\n# 重点句子 1\n音频文本：This summer!\n讲解文本：刚刚听到的音频中，包含了一个关键单词 summer，意思为夏天，是一年中最热的季节哦。正确的发音是 /ˈsʌmə(r)/。\n1. 听音选句\nBrainy：仔细听音频哦，下面哪个句子和你听到的内容一致呢？\n- This winter!\n  - Brainy：哎呀，这句话说到的是 winter（冬天），并不是我们听到的 summer 哦，再认真听一遍音频试试看吧！\n- This summer! [正确]\n  - Brainy：太棒啦！你准确听出了句子里的重点单词 summer，真厉害！\n\n2. 听音选意\nBrainy：现在音频里说的句子意思是“现在是冬天！”，你觉得对不对呀？\n- 对 / Yes\n  - Brainy：我们听到的单词是 summer 哦，不是代表冬天的单词，再想想看~\n- 错 / No [正确]\n  - Brainy：完全正确！你已经掌握了 summer 是“夏天”的意思啦，棒棒的！\n---\n# 重点句子 2\n音频文本：It feels so hot!\n讲解文本：刚刚听到的音频中，包含了一个关键形容词 hot，意思是热的、温度高的，常用来描述炎热的天气哦。正确的发音是 /hɒt/。\n1. 听音选句\nBrainy：认真听音频内容，下面哪个句子是你刚刚听到的呀？\n- It feels so hot! [正确]\n  - Brainy：太聪明啦！你准确捕捉到了句子里的重点单词 hot，做得非常好！\n- It feels so cold!\n  - Brainy：这句话里说的是 cold（寒冷的），不是我们听到的 hot 哦，再仔细听一遍音频试试吧！\n\n2. 听音选意\nBrainy：这句话的中文意思是“天气感觉好热啊”，你说对不对呢？\n- 对 / Yes [正确]\n  - Brainy：答对啦！你不仅听懂了句子，还牢牢记住了 hot 是“热的”意思，太优秀啦！\n- 错 / No\n  - Brainy：句子里的描述是和温度高有关的哦，再回忆下 hot 的意思，重新选一次吧~\n---\n# 重点句子 3\n音频文本：Do you have any shorts?\n讲解文本：刚刚听到的音频中，包含了一个关键名词 shorts，意思是短裤，是夏天常穿的服饰哦。正确的发音是 /ʃɔːts/。\n1. 听音选句\nBrainy：仔细听播放的音频，下面哪句话和你听到的内容一样呢？\n- Do you have any shoes?\n  - Brainy：这句话里提到的是 shoes（鞋子），并不是我们听到的 shorts 哦，再认真听听音频吧！\n- Do you have any shorts? [正确]\n  - Brainy：哇，你精准听出了句子里的重点单词 shorts，太棒啦！\n\n2. 听音选意\nBrainy：这句话的意思是“你有鞋子吗？”，你觉得这个说法对吗？\n- 对 / Yes\n  - Brainy：句子里提到的衣物是夏天穿的短裤哦，不是鞋子，再仔细想想呀~\n- 错 / No [正确]\n  - Brainy：完全正确！你已经搞懂 shorts 是“短裤”的意思啦，掌握得很不错哦！\n---\n# 重点句子 4\n音频文本：I need the shorts between those rocks.\n讲解文本：刚刚听到的音频中，包含了一个关键介词短语 between rocks，意思是在岩石之间，用来描述物品的位置哦。\n1. 听音选句\nBrainy：认真听音频，下面哪个句子是你刚刚听到的内容呀？\n- I need the shorts between those rocks. [正确]\n  - Brainy：太厉害啦！你准确听出了短裤的位置是在岩石之间，听力超棒的！\n- I need the shorts under those trees.\n  - Brainy：这句话说的是短裤在树下哦，不是我们听到的岩石之间的位置，再听一遍音频试试看吧！\n\n2. 听音选意\nBrainy：这句话的中文意思是“我需要那些岩石之间的短裤”，你说对不对呢？\n- 错 / No\n  - Brainy：句子描述的是短裤所在的位置哦，再回忆下 between rocks 的意思，重新选一次吧~\n- 对 / Yes [正确]\n  - Brainy：答对啦！你不仅听懂了整句话的意思，还掌握了 between rocks 这个表示位置的短语，太优秀了！\n---\n# 完成反馈\nBrainy：很好！你已经回答完了全部问题，相信你已经听懂了这个任务中所有的重点句子。现在让我们来查看结果吧!\n```", "互动描述": "You talked with the fishing uncle Jack, and knew it is summer now and the weather is really hot that makes your face turn red.（你和钓鱼的杰克叔叔交流，了解到现在是夏天，天气太热让你脸都变红了。）\nYou told Jack you don’t have shorts at hand, and you need the shorts that are placed between the rocks nearby.（你告诉杰克你手头没有短裤，你需要放在附近岩石中间的那条短裤。）\nYou asked Jack for help to get the shorts for you, and Jack agreed to help you take the shorts over there.（你请求杰克帮忙拿那条短裤，杰克同意帮你去把那边的短裤取过来。）"}

question_group_json:
  [{"preDialog": [{"type": "npc", "npcName": "Jack", "content": "Hello, kiddo. What's the matter?"}], "dialogList": [{"type": "npc", "npcName": "Jack", "content": "Why is your face so red?", "trans": "你的脸怎么这么红？", "isPoint": false}, {"type": "user", "content": "This summer! It feels so hot!", "trans": "今年夏天！天气太热了！", "isPoint": false}, {"type": "npc", "npcName": "Jack", "content": "Do you have any shorts?", "trans": "你有短裤吗？", "isPoint": false}, {"type": "user", "content": "No, I don't have shorts.", "trans": "不，我没有短裤。", "isPoint": false}, {"type": "user", "content": "I need the shorts between those rocks.", "trans": "我需要那些岩石中间的短裤。", "isPoint": false}, {"type": "npc", "npcName": "Jack", "content": "I see.", "trans": "我明白了。", "isPoint": false}, {"type": "user", "content": "Could you help me get the shorts?", "trans": "你能帮我拿一下短裤吗？", "isPoint": false}, {"type": "user", "content": "Please!", "trans": "拜托了！", "isPoint": false}], "questionList": [{"type": "npc", "npcName": "Sue", "content": "What season is it?", "optionList": [{"option": "0000800_option_00.png", "feedback": {"type": "npc", "npcName": "Jack", "content": "I don't think so."}}, {"option": "0000800_option_01.png", "feedback": {"type": "npc", "npcName": "Jack", "content": "Yes. It is summer. It is hot."}}, {"option": "0000800_option_02.png", "feedback": {"type": "npc", "npcName": "Jack", "content": "I don't think so."}}], "answer": [1]}, {"type": "npc", "npcName": "Sue", "content": "What do you need?", "optionList": [{"option": "T-shirt.", "feedback": {"type": "npc", "npcName": "Jack", "content": "I didn't see it."}}, {"option": "Trousers.", "feedback": {"type": "npc", "npcName": "Jack", "content": "I didn't see them."}}, {"option": "Shorts.", "feedback": {"type": "npc", "npcName": "Jack", "content": "Got it."}}], "answer": [2]}, {"type": "npc", "npcName": "Sue", "content": "What should Jack do?", "optionList": [{"option": "0000800_option_03.png", "feedback": {"type": "npc", "npcName": "Jack", "content": "Got it."}}, {"option": "0000800_option_04.png", "feedback": {"type": "npc", "npcName": "Jack", "content": "I can't do that."}}, {"option": "0000800_option_05.png", "feedback": {"type": "npc", "npcName": "Jack", "content": "I can't do that."}}], "answer": [0]}], "postDialog": []}]


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-08 15:45:05
updated_at: 2026-05-08 15:45:06
raw_config:
[cell repeats an earlier one in this file: 770 characters]

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

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

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": "现在你要填写大象护理报告的第一项“动物类型”，请选择合适的单词填在横线上：Animal type: ___ "}, "optionList": [{"option": "elephant", "feedback": {"type": "npc", "npcName": "Brainy", "content": "答对啦！我们今天护理的动物是大象，所以这里填elephant是完全正确的~"}}, {"option": "banana", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，banana是香蕉，属于食物，不是动物类型，再想想我们今天照顾的是什么动物吧。"}}, {"option": "shower", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，shower是洗澡的意思，是我们给大象做的清洁项目，不是动物类型，再试试看吧。"}}], "answer": [0], "write": {"desc": "elephant", "trans": "大象"}, "feedback": {"type": "npc", "npcName": "Brainy", "content": "你写的很好！"}}]}, {"leadIn": {"image": "0000800-01.png"}, "learning": [{"question": {"type": "npc", "npcName": "Brainy", "content": "接下来要填写食物相关的记录，句子是“Food: She ate ___ .”，请选择正确的单词填进去吧~"}, "optionList": [{"option": "shower", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，shower是洗澡，是不能吃的，回忆一下你今天喂大象吃了什么好吃的呀？"}}, {"option": "bananas", "feedback": {"type": "npc", "npcName": "Brainy", "content": "太棒了！你喂给大象的是香蕉，这里填bananas刚好符合句子意思，完全正确~"}}, {"option": "elephant", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，elephant是大象本身，总不能是大象吃了自己吧，再想想喂给它的食物是什么~"}}], "answer": [1], "write": {"desc": "bananas", "trans": "香蕉"}, "feedback": {"type": "npc", "npcName": "Brainy", "content": "你写的很好！"}}]}, {"leadIn": {"image": "0000800-02.png"}, "learning": [{"question": {"type": "npc", "npcName": "Brainy", "content": "现在要填清洁护理的记录啦，句子是“Cleaning: She had ___ today.”，请选合适的词填空吧~"}, "optionList": [{"option": "a shower", "feedback": {"type": "npc", "npcName": "Brainy", "content": "答对啦！你今天给大象洗了澡，had a shower就是“洗了澡”的意思，完全符合清洁记录的内容~"}}, {"option": "bananas", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，bananas是香蕉，属于食物，不属于清洁项目，回忆一下你给大象做的清洁护理是什么吧。"}}, {"option": "elephant", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，elephant是我们护理的动物，这里是要填清洁相关的内容，再想想吧~"}}], "answer": [0], "write": {"desc": "a shower", "trans": "一次淋浴"}, "feedback": {"type": "npc", "npcName": "Brainy", "content": "你写的很好！"}}]}, {"leadIn": {"image": "0000800-02.png"}, "learning": [{"question": {"type": "npc", "npcName": "Brainy", "content": "最后要总结大象的喜好，句子是“The elephant ___ showers and bananas!”，请选择合适的表达补全句子吧~"}, "optionList": [{"option": "love to", "feedback": {"type": "npc", "npcName": "Brainy", "content": "很棒哦你记得love的相关用法，但是这里主语the elephant是第三人称单数，love要变成loves，而且后面跟的是名词showers和bananas，不需要加to哦，再调整一下吧。"}}, {"option": "loves", "feedback": {"type": "npc", "npcName": "Brainy", "content": "太优秀了！主语是第三人称单数，所以用loves，后面直接加喜欢的事物，完美表达出“大象喜欢洗澡和香蕉”的意思~"}}, {"option": "loves to", "feedback": {"type": "npc", "npcName": "Brainy", "content": "你注意到了第三人称单数的变化很棒，但是love to后面需要跟动词原形，这里后面是名词showers和bananas，不需要加to哦，再试一次吧。"}}], "answer": [1], "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: 现在你要填写大象护理报告的第一项“动物类型”，请选择合适的单词填在横线上：Animal type: ___ \n用户选项:\n（选项 A）elephant [正确]\n  Brainy: 答对啦！我们今天护理的动物是大象，所以这里填elephant是完全正确的~\n（选项 B）banana\n  Brainy: 不对哦，banana是香蕉，属于食物，不是动物类型，再想想我们今天照顾的是什么动物吧。\n（选项 C）shower\n  Brainy: 不对哦，shower是洗澡的意思，是我们给大象做的清洁项目，不是动物类型，再试试看吧。\n\n# 问题2：\nBrainy: 接下来要填写食物相关的记录，句子是“Food: She ate ___ .”，请选择正确的单词填进去吧~\n用户选项:\n（选项 A）shower\n  Brainy: 不对哦，shower是洗澡，是不能吃的，回忆一下你今天喂大象吃了什么好吃的呀？\n（选项 B）bananas [正确]\n  Brainy: 太棒了！你喂给大象的是香蕉，这里填bananas刚好符合句子意思，完全正确~\n（选项 C）elephant\n  Brainy: 不对哦，elephant是大象本身，总不能是大象吃了自己吧，再想想喂给它的食物是什么~\n\n# 问题3：\nBrainy: 现在要填清洁护理的记录啦，句子是“Cleaning: She had ___ today.”，请选合适的词填空吧~\n用户选项:\n（选项 A）a shower [正确]\n  Brainy: 答对啦！你今天给大象洗了澡，had a shower就是“洗了澡”的意思，完全符合清洁记录的内容~\n（选项 B）bananas\n  Brainy: 不对哦，bananas是香蕉，属于食物，不属于清洁项目，回忆一下你给大象做的清洁护理是什么吧。\n（选项 C）elephant\n  Brainy: 不对哦，elephant是我们护理的动物，这里是要填清洁相关的内容，再想想吧~\n\n# 问题4：\nBrainy: 最后要总结大象的喜好，句子是“The elephant ___ showers and bananas!”，请选择合适的表达补全句子吧~\n用户选项:\n（选项 A）love to\n  Brainy: 很棒哦你记得love的相关用法，但是这里主语the elephant是第三人称单数，love要变成loves，而且后面跟的是名词showers和bananas，不需要加to哦，再调整一下吧。\n（选项 B）loves [正确]\n  Brainy: 太优秀了！主语是第三人称单数，所以用loves，后面直接加喜欢的事物，完美表达出“大象喜欢洗澡和香蕉”的意思~\n（选项 C）loves to\n  Brainy: 你注意到了第三人称单数的变化很棒，但是love to后面需要跟动词原形，这里后面是名词showers和bananas，不需要加to哦，再试一次吧。\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_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-08 15:45:17
updated_at: 2026-05-08 15:45:17
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_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-08 15:45:22
updated_at: 2026-05-08 15:45:22
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（亲爱的丽贝卡：\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（亲爱的丽贝卡：\n我知道你很担心。但这是我们探索漫游港的最佳机会。这项工作对我们来说很重要。这就是我们必须留下来的原因。你会不会有一天来漫游港呢？你什么时候会到？）"}

study_info_json:
  {"learningPart": [{"leadIn": {"desc": "What is your opinion on the job?"}, "learning": [{"question": {"type": "npc", "npcName": "Brainy", "content": "你在邮件里要向Rebecca说明留在Wander Port的原因，首先需要提到这份探索任务对你们的重要性，你会怎么说？"}, "optionList": [{"option": "The job is important for us.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "太棒了！你准确表达了“这份工作（探索任务）对我们很重要”的含义，符合邮件里说明留任原因的语境。"}}, {"option": "The jobs is important for us.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，jobs是job的复数形式，后面的be动词应该用are，这里和单数的is搭配不匹配，而且语境里指代的是这一项探索任务，应该用单数形式。"}}, {"option": "The projects is important for us.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，projects是复数形式，和后面的单数is搭配不恰当，同时这里要指代的是当前的探索工作，用job更贴合语境。"}}], "answer": [0], "write": {"desc": "The job is important for us.", "trans": "这份工作对我们来说很重要。"}, "feedback": {"type": "npc", "npcName": "Brainy", "content": "你写的很好！"}}]}, {"leadIn": {"desc": "Why do you want to stay?"}, "learning": [{"question": {"type": "npc", "npcName": "Brainy", "content": "说完工作的重要性，你需要接着向Rebecca解释这就是你们必须留下来的原因，你会怎么表达这句话？"}, "optionList": [{"option": "That's how we have to stay.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，how的意思是“如何、怎样”，用在这里语义不通，这里要表达的是留在这里的原因，应该用表示原因的连接词。"}}, {"option": "That's why we have to stay.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "非常好！你准确用“That's why + 句子”的结构表达了“这就是为什么我们必须留下来”的含义，完美承接了上一句说明工作重要性的内容。"}}, {"option": "That's which we have to stay.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，which通常用来引导定语从句指代事物，在这里不能用来表示原因，不符合句子要表达的逻辑哦。"}}], "answer": [1], "write": {"desc": "That's why we have to stay.", "trans": "这就是为什么我们必须留下来。"}, "feedback": {"type": "npc", "npcName": "Brainy", "content": "你写的很好！"}}]}, {"leadIn": {"desc": "Ask her when to come."}, "learning": [{"question": {"type": "npc", "npcName": "Brainy", "content": "邮件的最后你想要询问Rebecca抵达Wander Port的时间，你会怎么问？"}, "optionList": [{"option": "When is you arrive?", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，arrive是实义动词，构成疑问句时需要用助动词will/do等，不能用be动词is，这个表达语法不正确。"}}, {"option": "How is you arrive?", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，首先语法上arrive是实义动词，不能和be动词is搭配使用，其次这里要询问的是时间，不是方式，how不符合语义要求。"}}, {"option": "When will you arrive?", "feedback": {"type": "npc", "npcName": "Brainy", "content": "太棒了！你准确使用了一般将来时的特殊疑问句结构，正确表达了询问对方抵达时间的意思，非常适合放在邮件的结尾询问Rebecca的行程。"}}], "answer": [2], "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的原因，首先需要提到这份探索任务对你们的重要性，你会怎么说？\n用户选项:\n（选项 A）The job is important for us. [正确]\n  Brainy: 太棒了！你准确表达了“这份工作（探索任务）对我们很重要”的含义，符合邮件里说明留任原因的语境。\n（选项 B）The jobs is important for us.\n  Brainy: 不对哦，jobs是job的复数形式，后面的be动词应该用are，这里和单数的is搭配不匹配，而且语境里指代的是这一项探索任务，应该用单数形式。\n（选项 C）The projects is important for us.\n  Brainy: 不对哦，projects是复数形式，和后面的单数is搭配不恰当，同时这里要指代的是当前的探索工作，用job更贴合语境。\n\n# 问题2：\nBrainy: 说完工作的重要性，你需要接着向Rebecca解释这就是你们必须留下来的原因，你会怎么表达这句话？\n用户选项:\n（选项 A）That's how we have to stay.\n  Brainy: 不对哦，how的意思是“如何、怎样”，用在这里语义不通，这里要表达的是留在这里的原因，应该用表示原因的连接词。\n（选项 B）That's why we have to stay. [正确]\n  Brainy: 非常好！你准确用“That's why + 句子”的结构表达了“这就是为什么我们必须留下来”的含义，完美承接了上一句说明工作重要性的内容。\n（选项 C）That's which we have to stay.\n  Brainy: 不对哦，which通常用来引导定语从句指代事物，在这里不能用来表示原因，不符合句子要表达的逻辑哦。\n\n# 问题3：\nBrainy: 邮件的最后你想要询问Rebecca抵达Wander Port的时间，你会怎么问？\n用户选项:\n（选项 A）When is you arrive?\n  Brainy: 不对哦，arrive是实义动词，构成疑问句时需要用助动词will/do等，不能用be动词is，这个表达语法不正确。\n（选项 B）How is you arrive?\n  Brainy: 不对哦，首先语法上arrive是实义动词，不能和be动词is搭配使用，其次这里要询问的是时间，不是方式，how不符合语义要求。\n（选项 C）When will you arrive? [正确]\n  Brainy: 太棒了！你准确使用了一般将来时的特殊疑问句结构，正确表达了询问对方抵达时间的意思，非常适合放在邮件的结尾询问Rebecca的行程。\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（亲爱的丽贝卡：\n我知道你很担心。但这是我们探索漫游港的最佳机会。这项工作对我们来说很重要。这就是我们必须留下来的原因。你会不会有一天来漫游港呢？你什么时候会到？）"}

text_info_json:
[cell repeats an earlier one in this file: 787 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_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-08 15:45:27
updated_at: 2026-05-08 15:45:27
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 made 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: 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-08 15:45:29
updated_at: 2026-05-08 15:45:29
final_config_json:
  {"cType": "mid_message_word", "cId": "0000800", "title": "填写信息表", "resourceMapping": {"Vicky": 658}, "cDesc": "You filled \"knowledge\" and \"information\" in the blanks. (你在空白处填入了“knowledge”和“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: 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-08 15:45:32
updated_at: 2026-05-08 15:45:32
final_config_json:
  {"cType": "mid_message_fillin", "cId": "0000800", "title": "填写信息表", "resourceMapping": {"Vicky": 658}, "cDesc": "You filled in \"now\" to make \"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_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-08 15:45:34
updated_at: 2026-05-08 15:45:34
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 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-05-08 15:45:38
updated_at: 2026-05-08 15:45:38
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": "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 area. (你找到了温暖的水域。)"}

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-05-08 15:45:41
updated_at: 2026-05-08 15:45:41
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 to fix. (你找到了房子需要修复的部分。)"}

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-05-08 15:45:44
updated_at: 2026-05-08 15:45:44
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 sort the 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: 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-08 15:45:53
updated_at: 2026-05-08 15:45:53
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的担忧，提到这是你们探索Wander Port的绝佳机会，接下来要说明这份探索工作对你们的重要性，你会怎么说？"}, "optionList": [{"option": "The job is important for us.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "太棒了！你准确表达了这份工作对你们的重要性，符合邮件里解释留在这里原因的语境。"}}, {"option": "The jobs are important for us.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这里你们的探索任务是一项整体的工作，不需要用复数形式jobs哦，再想想合适的表达吧。"}}, {"option": "The projects are important for us.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "projects是“项目”的意思，这里你要表达的是当下的这份探索工作的重要性，不符合你想表达的含义哦，再试一次吧。"}}], "answer": [0], "write": {"desc": "The job is important for us.", "trans": "这份工作对我们来说很重要。"}, "feedback": {"type": "npc", "npcName": "Brainy", "content": "你写的很好！"}}, {"question": {"type": "npc", "npcName": "Brainy", "content": "你已经说明了工作的重要性，现在需要进一步告诉Rebecca这就是你们必须留下来的原因，你会怎么表达？"}, "optionList": [{"option": "That's how we have to stay.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "how是用来询问方式的，这句话表达的是“我们就是这么留下来的”，不能用来解释留下来的原因哦，再想想吧。"}}, {"option": "That's why we have to stay.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "完全正确！你精准用That's why...的结构说明了你们必须留下来的原因，逻辑非常通顺。"}}, {"option": "That's which we have to stay.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "which一般用来引导定语从句指代事物，不能用来引出原因哦，这个表达不符合语法规则，再试一次吧。"}}], "answer": [1], "write": {"desc": "That's why we have to stay.", "trans": "这就是为什么我们必须留下来。"}, "feedback": {"type": "npc", "npcName": "Brainy", "content": "你写的很好！"}}]}, {"leadIn": {"desc": "Ask her when she will arrive."}, "learning": [{"question": {"type": "npc", "npcName": "Brainy", "content": "你已经把你们留下的决定和原因都说明白了，之前你问过Rebecca会不会来Wander Port，现在想进一步询问她如果来的话什么时候到达，你会怎么问？"}, "optionList": [{"option": "If so, when is you arrive?", "feedback": {"type": "npc", "npcName": "Brainy", "content": "arrive是实义动词，构成疑问句的时候需要用助动词will而不是is哦，这个表达语法有误，再试一次吧。"}}, {"option": "If so, how is you arrive?", "feedback": {"type": "npc", "npcName": "Brainy", "content": "how是询问方式的，你现在要问的是到达的时间，而且句子的动词搭配也有语法错误哦，再想想吧。"}}, {"option": "If so, when will you arrive?", "feedback": {"type": "npc", "npcName": "Brainy", "content": "太厉害了！你正确使用了一般将来时的特殊疑问句，准确询问了Rebecca的到达时间，非常符合邮件的语境。"}}], "answer": [2], "write": {"desc": "If so, when will you arrive?", "trans": "如果会的话，你什么时候会到呢？"}, "feedback": {"type": "npc", "npcName": "Brainy", "content": "你写的很好！"}}]}], "closing": {"type": "npc", "npcName": "Brainy", "content": "恭喜你，你已经掌握了表达“The job is...”、“That's why we have to...”以及询问“When will you arrive?”的用法，成功完成了给Rebecca的邮件编写！"}}

intermediate_json:
  {"学习流程配置": "```\n# 问题1：\nBrainy: 你在邮件开头已经安抚了Rebecca的担忧，提到这是你们探索Wander Port的绝佳机会，接下来要说明这份探索工作对你们的重要性，你会怎么说？\n用户选项:\n（选项 A）The job is important for us. [正确]\n  Brainy: 太棒了！你准确表达了这份工作对你们的重要性，符合邮件里解释留在这里原因的语境。\n（选项 B）The jobs are important for us.\n  Brainy: 这里你们的探索任务是一项整体的工作，不需要用复数形式jobs哦，再想想合适的表达吧。\n（选项 C）The projects are important for us.\n  Brainy: projects是“项目”的意思，这里你要表达的是当下的这份探索工作的重要性，不符合你想表达的含义哦，再试一次吧。\n\n# 问题2：\nBrainy: 你已经说明了工作的重要性，现在需要进一步告诉Rebecca这就是你们必须留下来的原因，你会怎么表达？\n用户选项:\n（选项 A）That's how we have to stay.\n  Brainy: how是用来询问方式的，这句话表达的是“我们就是这么留下来的”，不能用来解释留下来的原因哦，再想想吧。\n（选项 B）That's why we have to stay. [正确]\n  Brainy: 完全正确！你精准用That's why...的结构说明了你们必须留下来的原因，逻辑非常通顺。\n（选项 C）That's which we have to stay.\n  Brainy: which一般用来引导定语从句指代事物，不能用来引出原因哦，这个表达不符合语法规则，再试一次吧。\n\n# 问题3：\nBrainy: 你已经把你们留下的决定和原因都说明白了，之前你问过Rebecca会不会来Wander Port，现在想进一步询问她如果来的话什么时候到达，你会怎么问？\n用户选项:\n（选项 A）If so, when is you arrive?\n  Brainy: arrive是实义动词，构成疑问句的时候需要用助动词will而不是is哦，这个表达语法有误，再试一次吧。\n（选项 B）If so, how is you arrive?\n  Brainy: how是询问方式的，你现在要问的是到达的时间，而且句子的动词搭配也有语法错误哦，再想想吧。\n（选项 C）If so, when will you arrive? [正确]\n  Brainy: 太厉害了！你正确使用了一般将来时的特殊疑问句，准确询问了Rebecca的到达时间，非常符合邮件的语境。\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-08 16:05:04
updated_at: 2026-05-08 16:05:04
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": "You stand before the word castle wall, read the first question \"Where do hippos live?\", then put the word \"lake\" in the blank, knowing hippos make their homes in the lake.（你站在单词城堡的墙前，读到第一个问题“河马住在哪里？”，你把单词“lake”放到空白处，知道河马在湖里安家。）Next you look at the second question \"What other animals are there in the zoo?\", choose the word \"tree\", and realize trees are also important parts of the zoo for different animals.（接着你看到第二个问题“动物园里还有什么其他的东西？”，你选了单词“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": "You stand before the word castle wall, read the first question \"Where do hippos live?\", then put the word \"lake\" in the blank, knowing hippos make their homes in the lake.（你站在单词城堡的墙前，读到第一个问题“河马住在哪里？”，你把单词“lake”放到空白处，知道河马在湖里安家。）Next you look at the second question \"What other animals are there in the zoo?\", choose the word \"tree\", and realize trees are also important parts of the zoo for different animals.（接着你看到第二个问题“动物园里还有什么其他的东西？”，你选了单词“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": "lake是湖，动物园里一般不会有湖哦，再想想动物园里常见的东西，再试一次吧~"}}, {"option": "tree", "feedback": {"type": "npc", "npcName": "Brainy", "content": "答对了！动物园里会种很多树，给动物们提供阴凉和生活环境，现在跟着我大声读这个单词：tree。"}}, {"option": "grass", "feedback": {"type": "npc", "npcName": "Brainy", "content": "grass是草，问题问的是动物园里的其他事物，草不是动物园里典型的特色事物哦，再选一次吧~"}}], "answer": [1]}]}], "closing": {"type": "npc", "npcName": "Brainy", "content": "太棒了！你今天复习了lake、tree、grass这些单词，还学会了回答关于动物居住地点和动物园事物的问题，口语也练习得很认真，下次继续加油哦~"}}

intermediate_json:
  {"学习流程配置": "```\n# 小题 4\n## 材料内容\n【展示该小题对应的图片 ID：1201001_02.png】\n\n## 互动题目\n### 1. 句意选词题\nBrainy：小朋友，这道题我们要认识表示自然地点的英文单词哦，先来看看哪个单词是“湖”的意思吧~\n- 选项 A：tree\n  Brainy：tree的意思是“树”，河马不会住在树上哦，这个选项不对，再试试吧~\n- 选项 B：grass\n  Brainy：grass的意思是“草”，这不是河马居住的地点哦，再选一次呀~\n- 选项 C：lake[正确]\n  Brainy：答对啦！lake就是“湖”的意思，你太棒了，这个知识点已经记住啦~\n\n### 2. 原题降级\nBrainy：Ben问“河马住在哪里呀？”，你要选一个合适的地点，告诉大家河马住在什么地方哦。\n- 选项 A：lake[正确]\n  Brainy：答对了！河马是住在湖里的哦，现在跟着我大声读这句话：in the lake。\n- 选项 B：tree\n  Brainy：tree是树，河马没办法住在树上呀，结合图片再想想河马的生活环境，再选一次吧~\n- 选项 C：grass\n  Brainy：grass是草，这里要填的是河马居住的地点，草不是居住的地方哦，再试试吧~\n\n---\n# 小题 5\n## 材料内容\n【展示该小题对应的图片 ID：1201001_02.png】\n\n## 互动题目\n### 1. 句意选词题\nBrainy：这道题我们要选动物园里有的事物哦，先来看看哪个是动物园里能看到的吧~\n- 选项 A：lake\n  Brainy：lake是湖，一般是自然环境里的地点，不是动物园里特有的哦，再试试吧~\n- 选项 B：tree[正确]\n  Brainy：答对啦！tree是“树”，动物园里会种树给动物们提供栖息的地方，你真棒~\n- 选项 C：grass\n  Brainy：grass是草，虽然动物园可能有草，但它不是动物类的哦，不符合问题问的“动物”哦，再选一次吧~\n\n### 2. 原题降级\nBrainy：Brainy问“动物园里还有什么其他的？”，你要选一个动物园里存在的事物哦。\n- 选项 A：lake\n  Brainy：lake是湖，动物园里一般不会有湖哦，再想想动物园里常见的东西，再试一次吧~\n- 选项 B：tree[正确]\n  Brainy：答对了！动物园里会种很多树，给动物们提供阴凉和生活环境，现在跟着我大声读这个单词：tree。\n- 选项 C：grass\n  Brainy：grass是草，问题问的是动物园里的其他事物，草不是动物园里典型的特色事物哦，再选一次吧~\n\n---\n# 完结反馈\nBrainy：太棒了！你今天复习了lake、tree、grass这些单词，还学会了回答关于动物居住地点和动物园事物的问题，口语也练习得很认真，下次继续加油哦~\n```", "互动描述": "You stand before the word castle wall, read the first question \"Where do hippos live?\", then put the word \"lake\" in the blank, knowing hippos make their homes in the lake.（你站在单词城堡的墙前，读到第一个问题“河马住在哪里？”，你把单词“lake”放到空白处，知道河马在湖里安家。）\nNext you look at the second question \"What other animals are there in the zoo?\", choose the word \"tree\", and realize trees are also important parts of the zoo for different animals.（接着你看到第二个问题“动物园里还有什么其他的东西？”，你选了单词“tree”，明白树木是动物园里对不同动物很重要的部分。）"}

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-08 16:05:11
updated_at: 2026-05-08 16:05:11
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:
[cell repeats an earlier one in this file: 645 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 的意思是积分、分数，攒积分可以说 collect points。", "npcName": "Brainy", "learning": [{"answer": [1], "meaning": "句意选择题", "optionList": [{"feedback": {"type": "npc", "content": "金币的常见英文表达是 gold coins，并不是我们这里讲的 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": "不对哦，文中明确说了 Pioneers 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 在这里是俱乐部的意思，加入俱乐部可以说 join a club。", "npcName": "Brainy", "learning": [{"answer": [1], "meaning": "句意选择题", "optionList": [{"feedback": {"type": "npc", "content": "课程的英文表达是 course，并不是我们讲的 club，再认真看看正确的释义吧。", "npcName": "Brainy"}, "option": "你可以选择自己最喜欢的课程去上。"}, {"feedback": {"type": "npc", "content": "完美回答！你已经掌握了关键单词 club 和这个句子的意思啦～", "npcName": "Brainy"}, "option": "你可以选择自己最喜欢的俱乐部加入。"}], "question": {"type": "npc", "npcName": "Brainy", "content": "我们来看下包含 club 的句子 You can choose your favourite club to join. 是什么意思呢？"}}, {"answer": [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 的意思是积分、分数，攒积分可以说 collect points。\n1. 句意选择题\nBrainy：接下来，我们来看下包含 points 的句子 But you need points to level up! 是什么意思呢？\n- 但是你需要金币来升级。\n  Brainy：金币的常见英文表达是 gold coins，并不是我们这里讲的 points，再确认下正确释义吧。\n- 但是你需要积分来升级。[正确]\n  Brainy：太棒了！你已经掌握了关键单词 points 和这个句子的意思啦～\n\n2. 段落大意题\nBrainy：了解了关键单词和句子的意思，我们来看看这一段主要在说什么吧？\n- 在瓦拉学院，开拓者们不用考试，但需要靠积分升级。[正确]\n  Brainy：回答正确！你精准抓住了“没有考试”和“积分升级”这两个核心信息哦。\n- 在瓦拉学院，开拓者们需要通过考试获得积分来升级。\n  Brainy：不对哦，文中明确说了 Pioneers 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 在这里是俱乐部的意思，加入俱乐部可以说 join a club。\n1. 句意选择题\nBrainy：我们来看下包含 club 的句子 You can choose your favourite club to join. 是什么意思呢？\n- 你可以选择自己最喜欢的课程去上。\n  Brainy：课程的英文表达是 course，并不是我们讲的 club，再认真看看正确的释义吧。\n- 你可以选择自己最喜欢的俱乐部加入。[正确]\n  Brainy：完美回答！你已经掌握了关键单词 club 和这个句子的意思啦～\n\n2. 段落大意题\nBrainy：下面我们来看看这一段主要在讲什么内容吧？\n- 如果你对某件事感兴趣，必须自己创办对应的俱乐部。\n  Brainy：不对哦，文中说的是感兴趣的话可以找到对应的俱乐部，不是必须自己创办，再仔细看看段落内容吧。\n- 你可以选择喜欢的俱乐部加入，感兴趣的事物都能找到对应的俱乐部。[正确]\n  Brainy：答得太好了！你完全理解了这段的核心内容哦。\n# 完结反馈\nBrainy：恭喜你完成了本次所有内容的学习，你真棒呀！\n```"}


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试-全量)
category: core
cType: core_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-08 16:05:23
updated_at: 2026-05-08 16:05:23
raw_config:
[cell repeats an earlier one in this file: 1022 characters]

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

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

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

study_info_json:
  {"learningPart": {"opening": {"type": "npc", "npcName": "Chloe", "content": "Can I help you?"}, "wrongReadLeadIn": {"type": "npc", "content": "请根据提词框内的内容大声地朗读这句话", "npcName": "Brainy"}, "learning": [{"question": {"type": "npc", "npcName": "Brainy", "content": "空乘Chloe主动问你是否需要帮助，现在你需要先向她询问健身房的位置。"}, "optionList": [{"option": "Where can I find the gym?", "feedback": {"type": "npc", "npcName": "Brainy", "content": "太棒了！你正确问出了健身房的位置。请大声朗读这句话！"}}, {"option": "Can I have a towel please?", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句话是用来索要毛巾的，现在我们首先要询问健身房的位置哦，请再试一次。"}}, {"option": "What can I do in the gym?", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句话是询问健身房里可以做什么的，现在我们先要问清楚健身房在哪里哦，请再试一次。"}}], "answer": [0], "read": {"type": "user", "content": "Where can I find the gym?"}, "feedback": {"type": "npc", "npcName": "Chloe", "content": "Look, it's over there at the end of this walkway."}}, {"question": {"type": "npc", "npcName": "Brainy", "content": "Chloe已经告诉了你健身房在过道的尽头，现在你还需要向她索要毛巾，为运动做准备。"}, "optionList": [{"option": "Where is the restaurant?", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句话是询问餐厅位置的，我们现在需要索要毛巾哦，请再试一次。"}}, {"option": "Oh, and can I have a towel please?", "feedback": {"type": "npc", "npcName": "Brainy", "content": "太厉害啦！你正确地向Chloe提出了要毛巾的请求。请大声朗读这句话！"}}, {"option": "How much is the towel?", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句话是询问毛巾价格的，我们只需要礼貌索要毛巾就可以啦，请再试一次。"}}], "answer": [1], "read": {"type": "user", "content": "Oh, and can I have a towel please?"}, "feedback": {"type": "npc", "npcName": "Chloe", "content": "Of course! I'll bring a new one for you soon."}}, {"question": {"type": "npc", "npcName": "Brainy", "content": "Chloe答应会马上给你拿新毛巾，现在你可以问问她在健身房里还能做些什么，了解更多相关信息。"}, "optionList": [{"option": "What else can I do there?", "feedback": {"type": "npc", "npcName": "Brainy", "content": "非常棒！你正确问出了健身房的其他使用功能。请大声朗读这句话！"}}, {"option": "How long can I stay in the gym?", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句话是询问可以在健身房待多久的，现在我们要问的是在健身房里可以做什么哦，请再试一次。"}}, {"option": "When does the gym close?", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句话是询问健身房关门时间的，现在我们要问的是在健身房里可以做什么哦，请再试一次。"}}], "answer": [0], "read": {"type": "user", "content": "What else can I do there?"}, "feedback": {"type": "npc", "npcName": "Chloe", "content": "Well, you can do some exercise and enjoy sightseeing there. Or you can just relax."}}], "closing": {"type": "npc", "npcName": "Brainy", "content": "Chloe已经告诉了你健身房的位置、给你准备了毛巾，还和你说明了在健身房可以做的事，你已经做好运动前的全部准备啦，任务圆满完成！"}}}

intermediate_json:
  {"学习流程配置": "```\n# 开场回合\nChloe：Can I help you?\n\n# 中间回合1\nBrainy: 空乘Chloe主动问你是否需要帮助，现在你需要先向她询问健身房的位置。\n\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用户选项:\n（选项 A）Where is the restaurant?\n  Brainy: 这句话是询问餐厅位置的，我们现在需要索要毛巾哦，请再试一次。\n（选项 B）Oh, and can I have a towel please? [正确]\n  Brainy: 太厉害啦！你正确地向Chloe提出了要毛巾的请求。请大声朗读这句话！\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用户选项:\n（选项 A）What else can I do there? [正确]\n  Brainy: 非常棒！你正确问出了健身房的其他使用功能。请大声朗读这句话！\n（选项 B）How long can I stay in the gym?\n  Brainy: 这句话是询问可以在健身房待多久的，现在我们要问的是在健身房里可以做什么哦，请再试一次。\n（选项 C）When does the gym close?\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,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用户之前帮你在另一位乘客面前解了围，你很感谢用户的帮忙，对用户的态度也格外友善热情。\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-08 16:05:28
updated_at: 2026-05-08 16:05:28
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": "Let's...的描述", "keyList": [{"type": "default", "content": "Let's...", "desc": "让我们……"}]}, {"desc": "Instead of..., we'd better...的描述", "keyList": [{"type": "default", "content": "Instead of..., we'd better...", "desc": "与其……，我们不如……"}]}, {"desc": "... love(s) to...的描述", "keyList": [{"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": "Let's...的描述", "keyList": [{"type": "default", "content": "Let's...", "desc": "让我们……"}]}, {"desc": "Instead of..., we'd better...的描述", "keyList": [{"type": "default", "content": "Instead of..., we'd better...", "desc": "与其……，我们不如……"}]}, {"desc": "... love(s) to...的描述", "keyList": [{"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 eating bananas happily.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，现在我们要告诉Logan大象需要洗澡，这句话说的是大象正开心地吃香蕉，和当前情境不匹配，再选一次吧。"}}, {"option": "We want to take the elephant to the zoo.", "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 will 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 don't want to help the elephant.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，我们是很乐意帮助大象的，这句话说我们不想帮忙，不符合情境哦，再试试吧。"}}], "answer": [1], "read": {"type": "user", "content": "Instead of waiting here, we'd better get some water for her first."}, "feedback": {"type": "npc", "npcName": "Logan", "content": "The keepers are too careless! Thank you! Can you help her shower?"}}, {"question": {"type": "npc", "npcName": "Brainy", "content": "Logan说饲养员太粗心了，谢谢你们，问你们能不能帮忙给大象洗澡，你需要回答你们很乐意帮忙哦。"}, "optionList": [{"option": "We'd love to help.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "回答正确！特别棒，把这句话大声读出来就完成任务啦~"}}, {"option": "We have no time to help her.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，我们本来就是想要帮忙给大象洗澡的，这句话说我们没时间帮忙，和我们的想法不符，再选一次吧。"}}, {"option": "We can give her some bananas to eat.", "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 eating bananas happily.\n  Brainy：不对哦，现在我们要告诉Logan大象需要洗澡，这句话说的是大象正开心地吃香蕉，和当前情境不匹配，再选一次吧。\n（C）We want to take the elephant to the zoo.\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 will 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 don't want to help the elephant.\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 can give her some bananas to eat.\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. 如果用户说的内容你没听懂，可以用简单的表达请对方再说一次，比如\"Pardon?\"或者\"Can you say that again?\"。\n7. 不要提及和给大象洗澡无关的内容，全程围绕任务推进对话。\n# 3. 背景信息\n你是Logan，在 Wander Port 的清洁站工作。清洁站附近有一只大象，人们都很喜欢她，喂她吃香蕉，帮她洗澡。这天你接到电话，几个孩子说大象需要洗澡，你意识到一定是饲养员粗心忘记了！孩子们说愿意帮助大象洗澡，需要借一些干净的水，你立刻答应。\n# 4. 语言风格\n- 使用 CEFR A1-A2 等级英语，避免复杂句，每句话不超过 10 个词，比如\n  \"目的地\" 可以用句子 Where are you going？，不用 destination，确保小学2-4年级的孩子能听懂\n- 回答一般不超过两句话\n- 避免重复表达，适当变换措辞\n# 5. 开场白 (仅用于首轮)\nHi. What happened to the elephant?\n# 6. 回应方式\n- 无论用户如何对话，你都应基于你的身份做出合理反应。\n- 每次最多只提问一个问题，等待用户回答后再继续。\n- 除开场轮次外，每次回应，可以先基于用户的话给一句反馈。然后再推进你的任务。\n```", "语音识别热词": "elephant,shower,water,keepers,help,Wander Port,banana"}

dialog_config_json:
  {"config": {"asrPrompt": "elephant,shower,water,keepers,help,Wander Port,banana", "promptInfo": {"default": "\n# 1. 角色（你要扮演谁）\n你是Logan，在Wander Port的清洁站工作。你的语言风格亲切自然，适合儿童理解。\n# 2. 任务（你如何参与对话）\n1. 对话开场先主动询问大象的情况，确认大象是否需要洗澡。\n2. 当用户告知你大象需要洗澡后，你可以表示或许饲养员很快会来，让用户稍等一下。\n3. 接下来询问用户是否愿意帮忙给大象洗澡。\n4. 如果用户明确表示愿意帮忙，你要先表达感谢，然后告诉用户你们会马上送干净的水过去，对话自然结束。\n5. 如果用户没有直接说明愿意帮忙，你可以用简单的话再询问一次，确认用户的想法。\n6. 如果用户说的内容你没听懂，可以用简单的表达请对方再说一次，比如\"Pardon?\"或者\"Can you say that again?\"。\n7. 不要提及和给大象洗澡无关的内容，全程围绕任务推进对话。\n# 3. 背景信息\n你是Logan，在 Wander Port 的清洁站工作。清洁站附近有一只大象，人们都很喜欢她，喂她吃香蕉，帮她洗澡。这天你接到电话，几个孩子说大象需要洗澡，你意识到一定是饲养员粗心忘记了！孩子们说愿意帮助大象洗澡，需要借一些干净的水，你立刻答应。\n# 4. 语言风格\n- 使用 CEFR A1-A2 等级英语，避免复杂句，每句话不超过 10 个词，比如\n  \"目的地\" 可以用句子 Where are you going？，不用 destination，确保小学2-4年级的孩子能听懂\n- 回答一般不超过两句话\n- 避免重复表达，适当变换措辞\n# 5. 开场白 (仅用于首轮)\nHi. 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_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-08 16:06:05
updated_at: 2026-05-08 16:06:05
raw_config:
[cell repeats an earlier one in this file: 2377 characters]

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

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

flow_info_json:
[cell repeats an earlier one in this file: 122 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，意思是在家烘焙，是一种很健康的制作食物的方式哦。", "type": "npc", "npcName": "Brainy", "learning": [{"answer": [0], "meaning": "听音选句", "optionList": [{"feedback": {"type": "npc", "content": "太厉害啦！你准确听出了句子里的重点短语 bake at home！", "npcName": "Brainy"}, "option": "When you really want sweet food, like biscuits or cake, you can bake at home."}, {"feedback": {"type": "npc", "content": "不对哦，这句话说的是 buy at the shop（在商店买），没有提到 bake at home 呀，再听一遍试试吧。", "npcName": "Brainy"}, "option": "When you really want sweet food, like biscuits or cake, you can buy at the shop."}], "question": {"type": "npc", "content": "认真听音频，选出你听到的句子吧。", "npcName": "Brainy"}}, {"answer": [0], "meaning": "听音选意", "optionList": [{"feedback": {"type": "npc", "content": "答对啦！你完全理解了这句话的意思，还掌握了 bake at home 这个实用的短语，太棒了！", "npcName": "Brainy"}, "option": "当你很想吃甜食，比如饼干或者蛋糕的时候，你可以在家烘焙。"}, {"feedback": {"type": "npc", "content": "不对哦，句子里说的是在家制作食物的方式，不是去商店买哦，再想想看吧。", "npcName": "Brainy"}, "option": "当你很想吃甜食，比如饼干或者蛋糕的时候，你可以去商店买。"}], "question": {"type": "npc", "content": "现在来看看这句话是什么意思，选出正确的中文翻译吧。", "npcName": "Brainy"}}]}]}

intermediate_json:
  {"学习过程配置": "```\n# 重点句子 1\n音频文本：When you really want sweet food, like biscuits or cake, you can bake at home.\n讲解文本：刚刚听到的音频里有一个关键短语 bake at home，意思是在家烘焙，是一种很健康的制作食物的方式哦。\n1. 听音选句\nBrainy：认真听音频，选出你听到的句子吧。\n- When you really want sweet food, like biscuits or cake, you can bake at home. [正确]\n  - Brainy：太厉害啦！你准确听出了句子里的重点短语 bake at home！\n- When you really want sweet food, like biscuits or cake, you can buy at the shop.\n  - Brainy：不对哦，这句话说的是 buy at the shop（在商店买），没有提到 bake at home 呀，再听一遍试试吧。\n\n2. 听音选意\nBrainy：现在来看看这句话是什么意思，选出正确的中文翻译吧。\n- 当你很想吃甜食，比如饼干或者蛋糕的时候，你可以在家烘焙。[正确]\n  - Brainy：答对啦！你完全理解了这句话的意思，还掌握了 bake at home 这个实用的短语，太棒了！\n- 当你很想吃甜食，比如饼干或者蛋糕的时候，你可以去商店买。\n  - Brainy：不对哦，句子里说的是在家制作食物的方式，不是去商店买哦，再想想看吧。\n---\n# 完成反馈\nBrainy：很好！你已经回答完了全部问题，相信你已经听懂了这个任务中所有的重点句子。现在让我们来查看结果吧!\n```", "互动描述": "You listened to the second part of Max's fitness guide, learning that to live a healthy life, you should sleep and get up on time, and keep away from smoking and alcohol. (你听了Max健身指南的第二部分，了解到要健康生活需要按时作息，远离烟酒。)\nYou also learned that keeping healthy doesn't need much money or expensive items, and good habits are the most important thing for health. (你还了解到保持健康不需要很多钱或者昂贵的物品，好习惯对健康来说才是最重要的。)"}


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试-全量)
category: core
cType: core_listening_drag
type_name: 听力拖拽
level: L1
unit_id: U14
knowledge_points_raw:
  between
  duck
  next to

status: generated
bitable_token: K3QrwQnWqiPBm1krhnNcWDTqnhe
db_table: core_interaction_component
created_at: 2026-05-08 16:06:06
updated_at: 2026-05-08 16:06:06
raw_config:
  【任务标题】
  指挥大家赶鸭子
  【任务背景】
  鸭子大乱斗！手忙脚乱没有用，你现在得和伙伴们一起协作，把到处跑的鸭子赶进水里。快说说你的计划吧！
  【通关知识】
  between prep. 在……中间
  next to prep.        紧邻
  duck n. 鸭子
  【开场语】
  无
  【听力文本】
  # 文本 1
  Matt: Where should I go?
  User: Go between the red duck and the blue duck.
  User: Don't let them fight.        
  # 文本 2
  Ben: What about me?
  User: You are next to the blue duck.
  # 文本 3
  Amber: And me? Where should I be?
  User: You are next to the red duck.
  User: Get it into the water!
  【题目信息】
  #单空选择
  选项图片编号：00, 01,02
  答案图片编号：00, 01,02

  【学习过程】
  句子 1
  Go between the red duck and the blue duck.【between】
  句子 2
  You are next to the blue duck.【next to】
  句子 3
  You are next to the red duck.【next to】

final_config_json:
  {"cType": "core_listening_drag", "cId": "0000800", "title": "指挥大家赶鸭子", "sceneDesc": "鸭子大乱斗！手忙脚乱没有用，你现在得和伙伴们一起协作，把到处跑的鸭子赶进水里。快说说你的计划吧！", "key": [{"desc": "", "keyList": [{"type": "default", "content": "between", "desc": "prep. 在……中间"}, {"type": "default", "content": "next to", "desc": "prep. 紧邻"}, {"type": "default", "content": "duck", "desc": "n. 鸭子"}]}], "resourceMapping": {"Eva": 738, "Peter": 739}, "cDesc": "You took on the fun task of guiding everyone to herd the ducks, looked at the three pictures to pick the right moves, and successfully got all the little ducks walking in the right direction. (你接受了指挥大家赶鸭子的有趣任务，看着三张图片挑选正确的做法，成功让所有小鸭子都朝着正确的方向走了。)"}

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

task_info_json:
  {"cType": "core_listening_drag", "cId": "0000800", "title": "指挥大家赶鸭子", "sceneDesc": "鸭子大乱斗！手忙脚乱没有用，你现在得和伙伴们一起协作，把到处跑的鸭子赶进水里。快说说你的计划吧！", "key": [{"desc": "", "keyList": [{"type": "default", "content": "between", "desc": "prep. 在……中间"}, {"type": "default", "content": "next to", "desc": "prep. 紧邻"}, {"type": "default", "content": "duck", "desc": "n. 鸭子"}]}], "resourceMapping": {"Eva": 738, "Peter": 739}, "cDesc": "You took on the fun task of guiding everyone to herd the ducks, looked at the three pictures to pick the right moves, and successfully got all the little ducks walking in the right direction. (你接受了指挥大家赶鸭子的有趣任务，看着三张图片挑选正确的做法，成功让所有小鸭子都朝着正确的方向走了。)"}

study_info_json:
  {"learningPart": [{"type": "npc", "npcName": "Brainy", "content": "Go between the red duck and the blue duck.", "learning": [{"question": {"content": "刚刚听到的音频里，有个很有用的短语 between，意思是“在……之间”，通常用来描述两个事物中间的位置哦。", "type": "npc", "npcName": "Brainy"}, "extendQuestion": {"content": "仔细听音频，选出你听到的句子吧。", "type": "npc", "npcName": "Brainy"}, "optionList": [{"option": "Go behind the red duck and the blue duck.", "feedback": {"type": "npc", "content": "哎呀，这句话里的behind是“在……后面”的意思，不是我们要找的between哦，再仔细听听音频吧~", "npcName": "Brainy"}}, {"option": "Go between the red duck and the blue duck.", "feedback": {"type": "npc", "content": "太厉害啦！你准确听出了句子里的重点短语between，做得很棒！", "npcName": "Brainy"}}], "answer": [1]}, {"question": {"content": "Go between the red duck and the blue duck.", "type": "npc", "npcName": "Brainy"}, "extendQuestion": {"content": "“走到红色的鸭子和蓝色的鸭子中间去”，这句话的意思是对的吗？", "type": "npc", "npcName": "Brainy"}, "optionList": [{"option": "对 / Yes", "feedback": {"type": "npc", "content": "完全正确！你不仅听懂了句子，还记住了between是“在……之间”的意思，太优秀啦！", "npcName": "Brainy"}}, {"option": "错 / No", "feedback": {"type": "npc", "content": "没关系哦，再回忆一下between的意思，重新看看句子内容吧，你可以的~", "npcName": "Brainy"}}], "answer": [0]}]}], "closing": {"type": "npc", "content": "很好！你已经回答完了全部问题，相信你已经听懂了这个任务中所有的重点句子。现在让我们来查看结果吧!", "npcName": "Brainy"}}

intermediate_json:
  {"学习过程配置": "```\n# 重点句子 1\n音频文本：Go between the red duck and the blue duck.\n讲解文本：刚刚听到的音频里，有个很有用的短语 between，意思是“在……之间”，通常用来描述两个事物中间的位置哦。\n1. 听音选句\nBrainy：仔细听音频，选出你听到的句子吧。\n- Go behind the red duck and the blue duck.\n  - Brainy：哎呀，这句话里的behind是“在……后面”的意思，不是我们要找的between哦，再仔细听听音频吧~\n- Go between the red duck and the blue duck. [正确]\n  - Brainy：太厉害啦！你准确听出了句子里的重点短语between，做得很棒！\n\n2. 听音选意\nBrainy：“走到红色的鸭子和蓝色的鸭子中间去”，这句话的意思是对的吗？\n- 对 / Yes [正确]\n  - Brainy：完全正确！你不仅听懂了句子，还记住了between是“在……之间”的意思，太优秀啦！\n- 错 / No\n  - Brainy：没关系哦，再回忆一下between的意思，重新看看句子内容吧，你可以的~\n---\n# 完成反馈\nBrainy：很好！你已经回答完了全部问题，相信你已经听懂了这个任务中所有的重点句子。现在让我们来查看结果吧!\n```", "互动描述": "You took on the fun task of guiding everyone to herd the ducks, looked at the three pictures to pick the right moves, and successfully got all the little ducks walking in the right direction. (你接受了指挥大家赶鸭子的有趣任务，看着三张图片挑选正确的做法，成功让所有小鸭子都朝着正确的方向走了。)"}

question_list_json:
  [{"imageInfo": {"questionImg": "0000800_question.png", "answerImg": "0000800_answer.png"}, "optionList": [{"option": "0000800_option_00.png"}, {"option": "0000800_option_01.png"}, {"option": "0000800_option_02.png"}], "answer": [0, 1, 2], "answerType": "all"}]

dialog_list_json:
  [[{"type": "npc", "npcName": "Matt", "content": "Where should I go?", "trans": "我该去哪里？", "isPoint": false}, {"type": "user", "content": "Go between the red duck and the blue duck.", "trans": "走到红鸭子和蓝鸭子中间。", "isPoint": false}, {"type": "user", "content": "Don't let them fight.", "trans": "别让它们打架。", "isPoint": false}], [{"type": "npc", "npcName": "Ben", "content": "What about me?", "trans": "那我呢？", "isPoint": false}, {"type": "user", "content": "You are next to the blue duck.", "trans": "你在蓝鸭子旁边。", "isPoint": false}], [{"type": "npc", "npcName": "Amber", "content": "And me? Where should I be?", "trans": "那我呢？我应该在哪里？", "isPoint": false}, {"type": "user", "content": "You are next to the red duck.", "trans": "你在红鸭子旁边。", "isPoint": false}, {"type": "user", "content": "Get it into the water!", "trans": "把它弄到水里去！", "isPoint": false}]]


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-08 16:06:07
updated_at: 2026-05-08 16:06:07
raw_config:
[cell repeats an earlier one in this file: 559 characters]

final_config_json:
  {"cType": "core_speaking_image", "cId": "0000800", "title": "和 Mr Rock 分享在 Winter Island 的所见所得", "taskDesc": "回答 Mr Rock 的问题", "sceneDesc": "Mr Rock 要给我们煮东西吃，看着暖腾腾的热气，听着咕咚咚的水声，闻着香飘飘的味道，心里美滋滋。等待开饭的时间里，和 Mr Rock 聊聊天吧。", "key": [{"desc": "", "keyList": [{"type": "default", "content": "winter", "desc": "n. 冬天"}, {"type": "default", "content": "cold", "desc": "adj. 冷的"}, {"type": "default", "content": "snow", "desc": "n. 雪"}]}], "resourceMapping": {"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: 609 characters]

study_info_json:
  {"learningPart": [{"leadIn": {"type": "npc", "npcName": "Rock", "content": "What season is it?"}, "learning": [{"question": {"type": "npc", "npcName": "Brainy", "content": "Mr Rock 现在问你现在是什么季节，你需要回答他现在的季节是什么。", "index": 0}, "optionList": [{"option": "Winter.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "太棒了！你正确回答了现在的季节是冬天。请大声朗读这个单词！"}}, {"option": "Cold.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这个单词的意思是寒冷的，但 Mr Rock 问的是现在是什么季节，不是询问天气感受哦。请再仔细听清问题，告诉 Mr Rock 当前的季节。"}}, {"option": "Snow.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这个单词的意思是雪，但 Mr Rock 问的是现在是什么季节，不是问你看到了什么东西哦。请再仔细听清问题，告诉 Mr Rock 当前的季节。"}}], "answer": [0], "read": {"type": "npc", "npcName": "User", "content": "Winter."}}]}, {"leadIn": {"type": "npc", "npcName": "Rock", "content": "Is it hot or cold?"}, "learning": [{"question": {"type": "npc", "npcName": "Brainy", "content": "Mr Rock 现在问你天气是热还是冷，你需要告诉他现在冬季的天气感受。", "index": 1}, "optionList": [{"option": "Winter.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这个单词的意思是冬天，但 Mr Rock 问的是天气是热还是冷，不是询问现在的季节哦。请再仔细听清问题，告诉 Mr Rock 现在的天气感受。"}}, {"option": "Cold.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "太棒了！你正确回答了冬天的天气很寒冷。请大声朗读这个单词！"}}, {"option": "Snow.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这个单词的意思是雪，但 Mr Rock 问的是天气是热还是冷，不是问你看到了什么东西哦。请再仔细听清问题，告诉 Mr Rock 现在的天气感受。"}}], "answer": [1], "read": {"type": "npc", "npcName": "User", "content": "Cold."}}]}, {"leadIn": {"type": "npc", "npcName": "Rock", "content": "What do you see in winter?"}, "learning": [{"question": {"type": "npc", "npcName": "Brainy", "content": "Mr Rock 现在问你在冬天能看到什么，你需要告诉他冬季特有的事物。", "index": 2}, "optionList": [{"option": "Winter.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这个单词的意思是冬天，但 Mr Rock 问的是冬天能看到什么东西，不是询问现在的季节哦。请再仔细听清问题，告诉 Mr Rock 你在冬天看到的事物。"}}, {"option": "Cold.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这个单词的意思是寒冷的，但 Mr Rock 问的是冬天能看到什么东西，不是询问天气感受哦。请再仔细听清问题，告诉 Mr Rock 你在冬天看到的事物。"}}, {"option": "Snow.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "太棒了！你正确回答了冬天能看到雪。请大声朗读这个单词！"}}], "answer": [2], "read": {"type": "npc", "npcName": "User", "content": "Snow."}, "feedback": {"type": "npc", "npcName": "Rock", "content": "You did a great job sharing what you know about winter!"}}]}], "closing": {"type": "npc", "npcName": "Brainy", "content": "你已经成功回答了Mr Rock关于冬天的三个问题，既了解了冬天的季节属性，也知道了冬天的天气特点和特有事物，本次学习任务完成得非常棒！"}}

intermediate_json:
  {"学习流程配置": "```\n# 中间回合1\nRock: What season is it?\nBrainy: Mr Rock 现在问你现在是什么季节，你需要回答他现在的季节是什么。\n用户选项:\n（选项 A）Winter. [正确]\n  Brainy: 太棒了！你正确回答了现在的季节是冬天。请大声朗读这个单词！\n（选项 B）Cold.\n  Brainy: 这个单词的意思是寒冷的，但 Mr Rock 问的是现在是什么季节，不是询问天气感受哦。请再仔细听清问题，告诉 Mr Rock 当前的季节。\n（选项 C）Snow.\n  Brainy: 这个单词的意思是雪，但 Mr Rock 问的是现在是什么季节，不是问你看到了什么东西哦。请再仔细听清问题，告诉 Mr Rock 当前的季节。\n\n# 中间回合2\nRock: Is it hot or cold?\nBrainy: Mr Rock 现在问你天气是热还是冷，你需要告诉他现在冬季的天气感受。\n用户选项:\n（选项 A）Winter.\n  Brainy: 这个单词的意思是冬天，但 Mr Rock 问的是天气是热还是冷，不是询问现在的季节哦。请再仔细听清问题，告诉 Mr Rock 现在的天气感受。\n（选项 B）Cold. [正确]\n  Brainy: 太棒了！你正确回答了冬天的天气很寒冷。请大声朗读这个单词！\n（选项 C）Snow.\n  Brainy: 这个单词的意思是雪，但 Mr Rock 问的是天气是热还是冷，不是问你看到了什么东西哦。请再仔细听清问题，告诉 Mr Rock 现在的天气感受。\n\n# 中间回合3\nRock: What do you see in winter?\nBrainy: Mr Rock 现在问你在冬天能看到什么，你需要告诉他冬季特有的事物。\n用户选项:\n（选项 A）Winter.\n  Brainy: 这个单词的意思是冬天，但 Mr Rock 问的是冬天能看到什么东西，不是询问现在的季节哦。请再仔细听清问题，告诉 Mr Rock 你在冬天看到的事物。\n（选项 B）Cold.\n  Brainy: 这个单词的意思是寒冷的，但 Mr Rock 问的是冬天能看到什么东西，不是询问天气感受哦。请再仔细听清问题，告诉 Mr Rock 你在冬天看到的事物。\n（选项 C）Snow. [正确]\n  Brainy: 太棒了！你正确回答了冬天能看到雪。请大声朗读这个单词！\n\n# 结尾回合\nBrainy: 你已经和 Mr Rock 分享完在冬季岛屿的所见所得啦，任务成功完成，现在可以等着吃好吃的咯！\n```", "语音识别热词": "Mr Rock,Winter Island,winter,cold,snow"}

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

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...
status: generated
bitable_token: Kwrcw6A4jip2sxkdLn4czd1knvf
db_table: core_interaction_component
created_at: 2026-05-08 16:06:16
updated_at: 2026-05-08 16:06:16
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": "You heard the dialogue between you and Jack, and learned it is summer and the weather is really hot, which makes your face red. (你听了自己和Jack的对话，知道现在是夏天，天气很热，所以你的脸红红的。)\nYou continued the dialogue and found you didn't have shorts with you, so you need to get the shorts that are placed between the rocks. (你接着听完对话，发现你没带短裤，所以你要拿到放在岩石中间的那条短裤。)\nYou finished the whole dialogue, and know you are asking Jack for help to get the shorts between the rocks for you. (你听完了全部对话，知道你正在请Jack帮忙把岩石中间的短裤拿给你。)"}

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": "You heard the dialogue between you and Jack, and learned it is summer and the weather is really hot, which makes your face red. (你听了自己和Jack的对话，知道现在是夏天，天气很热，所以你的脸红红的。)\nYou continued the dialogue and found you didn't have shorts with you, so you need to get the shorts that are placed between the rocks. (你接着听完对话，发现你没带短裤，所以你要拿到放在岩石中间的那条短裤。)\nYou finished the whole dialogue, and know you are asking Jack for help to get the shorts between the rocks for you. (你听完了全部对话，知道你正在请Jack帮忙把岩石中间的短裤拿给你。)"}

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": "现在音频里的句子是\"This summer!\"，它的意思是“这个冬天”，对吗？", "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：现在音频里的句子是\"This summer!\"，它的意思是“这个冬天”，对吗？\n- 对 / Yes\n  - Brainy：不对哦，summer 是夏天的意思，再想一想呀~\n- 错 / No [正确]\n  - Brainy：答对啦！你已经掌握了 summer 这个单词，这句话的意思就是“这个夏天！”，你真棒~\n---\n# 完成反馈\nBrainy：很好！你已经回答完了全部问题，相信你已经听懂了这个任务中所有的重点句子。现在让我们来查看结果吧!\n```", "互动描述": "You heard the dialogue between you and Jack, and learned it is summer and the weather is really hot, which makes your face red. (你听了自己和Jack的对话，知道现在是夏天，天气很热，所以你的脸红红的。)\nYou continued the dialogue and found you didn't have shorts with you, so you need to get the shorts that are placed between the rocks. (你接着听完对话，发现你没带短裤，所以你要拿到放在岩石中间的那条短裤。)\nYou finished the whole dialogue, and know you are asking Jack for help to get the shorts between the rocks for you. (你听完了全部对话，知道你正在请Jack帮忙把岩石中间的短裤拿给你。)"}

question_group_json:
  [{"preDialog": [{"type": "npc", "npcName": "Jack", "content": "Hello, kiddo. What's the matter?"}], "dialogList": [{"type": "npc", "npcName": "Jack", "content": "Why is your face so red?", "trans": "你的脸怎么这么红？", "isPoint": false}, {"type": "user", "content": "This summer! It feels so hot!", "trans": "这个夏天！天气太热了！", "isPoint": false}, {"type": "npc", "npcName": "Jack", "content": "Do you have any shorts?", "trans": "你有短裤吗？", "isPoint": false}, {"type": "user", "content": "No, I don't have shorts.", "trans": "不，我没有短裤。", "isPoint": false}, {"type": "user", "content": "I need the shorts between those rocks.", "trans": "我需要那些岩石中间的短裤。", "isPoint": false}, {"type": "npc", "npcName": "Jack", "content": "I see.", "trans": "我明白了。", "isPoint": false}, {"type": "user", "content": "Could you help me get the shorts?", "trans": "你能帮我拿一下短裤吗？", "isPoint": false}, {"type": "user", "content": "Please!", "trans": "拜托了！", "isPoint": false}], "questionList": [{"type": "npc", "npcName": "Sue", "content": "What season is it?", "optionList": [{"option": "0000800_option_00.png", "feedback": {"type": "npc", "npcName": "Jack", "content": "I don't think so."}}, {"option": "0000800_option_01.png", "feedback": {"type": "npc", "npcName": "Jack", "content": "Yes. It is summer. It is hot."}}, {"option": "0000800_option_02.png", "feedback": {"type": "npc", "npcName": "Jack", "content": "I don't think so."}}], "answer": [1]}, {"type": "npc", "npcName": "Sue", "content": "What do you need?", "optionList": [{"option": "T-shirt.", "feedback": {"type": "npc", "npcName": "Jack", "content": "I didn't see it."}}, {"option": "Trousers.", "feedback": {"type": "npc", "npcName": "Jack", "content": "I didn't see them."}}, {"option": "Shorts.", "feedback": {"type": "npc", "npcName": "Jack", "content": "Got it."}}], "answer": [2]}, {"type": "npc", "npcName": "Sue", "content": "What should Jack do?", "optionList": [{"option": "0000800_option_03.png", "feedback": {"type": "npc", "npcName": "Jack", "content": "Got it."}}, {"option": "0000800_option_04.png", "feedback": {"type": "npc", "npcName": "Jack", "content": "I can't do that."}}, {"option": "0000800_option_05.png", "feedback": {"type": "npc", "npcName": "Jack", "content": "I can't do that."}}], "answer": [0]}], "postDialog": []}]


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-08 16:07:00
updated_at: 2026-05-08 16:07:00
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:
[cell repeats an earlier one in this file: 868 characters]

study_info_json:
  {"learningPart": [{"leadIn": {"image": "0000800-01.png"}, "learning": [{"question": {"type": "npc", "npcName": "Brainy", "content": "你们整理完线索后，准备向Luisa教授汇报飞船的坠落位置，首先你要表达自己对坠落地点的判断，你会怎么说？"}, "optionList": [{"option": "I think the spaceship fell...", "feedback": {"type": "npc", "npcName": "Brainy", "content": "太棒了！这句话准确表达了你对飞船坠落地点的判断，完全符合汇报场景的需求。"}}, {"option": "I saw trees with...", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句话是用来描述你看到的树木特征，不是直接表达对飞船坠落位置的判断哦，再试一次吧。"}}, {"option": "I heard a loud noise in...", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句话是用来描述你听到声响的方位，不是表达对坠落位置的判断，再想想怎么说更合适~"}}], "answer": [0], "write": {"desc": "I think the spaceship fell...", "trans": "我认为飞船坠落在……"}, "feedback": {"type": "npc", "npcName": "Brainy", "content": "你写的很好！"}}]}, {"leadIn": {"image": "0000800-00.png"}, "learning": [{"question": {"type": "npc", "npcName": "Brainy", "content": "你需要补充你在无人机照片里观察到的特殊树木特征，作为判断坠落位置的线索，你会怎么描述这个发现？"}, "optionList": [{"option": "I think the spaceship fell...", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句话是用来表达你对飞船坠落位置的判断，不是描述你看到的树木特征哦，再试一次吧。"}}, {"option": "I saw trees with...", "feedback": {"type": "npc", "npcName": "Brainy", "content": "答对啦！你正确使用了这个句子来描述观察到的树木线索，能很好地支撑对坠落位置的判断。"}}, {"option": "I heard a loud noise in...", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句话是用来描述你听到的声响相关信息，不是描述看到的树木特征，再想想哦~"}}], "answer": [1], "write": {"desc": "I saw trees with...", "trans": "我看到有…… 的树。"}, "feedback": {"type": "npc", "npcName": "Brainy", "content": "你写的很好！"}}]}, {"leadIn": {"image": "0000800-00.png"}, "learning": [{"question": {"type": "npc", "npcName": "Brainy", "content": "你还需要补充当时你听到的异常声响线索，帮助教授进一步确认坠落的方位，你会怎么说明这个线索？"}, "optionList": [{"option": "I think the spaceship fell...", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句话是用来表达你对坠落位置的判断，不是描述你听到的声响线索哦，再试一次吧。"}}, {"option": "I saw trees with...", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句话是用来描述你看到的树木特征，不是描述听到的声响信息，再想想怎么说更合适~"}}, {"option": "I heard a loud noise in...", "feedback": {"type": "npc", "npcName": "Brainy", "content": "太对了！你准确用这句话描述了听到声响的方位线索，能帮教授更好地锁定飞船坠落的位置。"}}], "answer": [2], "write": {"desc": "I heard a loud noise in...", "trans": "我听到…… 方向有巨大的声音。"}, "feedback": {"type": "npc", "npcName": "Brainy", "content": "你写的很好！"}}]}], "closing": {"type": "npc", "npcName": "Brainy", "content": "恭喜你，可以使用准确的句型 I think the spaceship fell...、I saw trees with... 和 I heard a loud noise in...，完成了向Luisa教授汇报飞船坠落位置的相关内容写作！"}}

intermediate_json:
  {"学习流程配置": "```\n# 问题1：\nBrainy: 你们整理完线索后，准备向Luisa教授汇报飞船的坠落位置，首先你要表达自己对坠落地点的判断，你会怎么说？\n用户选项:\n（选项 A）I think the spaceship fell... [正确]\n  Brainy: 太棒了！这句话准确表达了你对飞船坠落地点的判断，完全符合汇报场景的需求。\n（选项 B）I saw trees with...\n  Brainy: 这句话是用来描述你看到的树木特征，不是直接表达对飞船坠落位置的判断哦，再试一次吧。\n（选项 C）I heard a loud noise in...\n  Brainy: 这句话是用来描述你听到声响的方位，不是表达对坠落位置的判断，再想想怎么说更合适~\n\n# 问题2：\nBrainy: 你需要补充你在无人机照片里观察到的特殊树木特征，作为判断坠落位置的线索，你会怎么描述这个发现？\n用户选项:\n（选项 A）I think the spaceship fell...\n  Brainy: 这句话是用来表达你对飞船坠落位置的判断，不是描述你看到的树木特征哦，再试一次吧。\n（选项 B）I saw trees with... [正确]\n  Brainy: 答对啦！你正确使用了这个句子来描述观察到的树木线索，能很好地支撑对坠落位置的判断。\n（选项 C）I heard a loud noise in...\n  Brainy: 这句话是用来描述你听到的声响相关信息，不是描述看到的树木特征，再想想哦~\n\n# 问题3：\nBrainy: 你还需要补充当时你听到的异常声响线索，帮助教授进一步确认坠落的方位，你会怎么说明这个线索？\n用户选项:\n（选项 A）I think the spaceship fell...\n  Brainy: 这句话是用来表达你对坠落位置的判断，不是描述你听到的声响线索哦，再试一次吧。\n（选项 B）I saw trees with...\n  Brainy: 这句话是用来描述你看到的树木特征，不是描述听到的声响信息，再想想怎么说更合适~\n（选项 C）I heard a loud noise in... [正确]\n  Brainy: 太对了！你准确用这句话描述了听到声响的方位线索，能帮教授更好地锁定飞船坠落的位置。\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: 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-08 16:07:03
updated_at: 2026-05-08 16:07:03
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:
[cell repeats an earlier one in this file: 924 characters]

study_info_json:
  {"learningPart": [{"leadIn": {"desc": "What is your opinion on the job?"}, "learning": [{"question": {"type": "npc", "npcName": "Brainy", "content": "你在邮件里想向Rebecca说明这份探索任务对你们的重要性，现在要表达“这份工作对我们来说很重要”，应该怎么说？"}, "optionList": [{"option": "The job is important for us.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "太棒啦！你准确表达出了“这份工作对我们很重要”的含义，job在这里指代你们的探索任务，使用完全正确。"}}, {"option": "The jobs are important for us.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这里你用了job的复数形式，但我们要指代的是“在Wander Port探索”这一项任务，是单数含义，所以不合适哦，再试一次吧。"}}, {"option": "The projects is important for us.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "project是“项目”的意思，不符合这里要表达的“工作/任务”的含义，而且projects是复数，后面不能搭配is，语法也不对哦，再想想~"}}], "answer": [0], "write": {"desc": "The job is important for us.", "trans": "这份工作对我们来说很重要。"}, "feedback": {"type": "npc", "npcName": "Brainy", "content": "你写的很好！"}}]}, {"leadIn": {"desc": "Why do you want to stay?"}, "learning": [{"question": {"type": "npc", "npcName": "Brainy", "content": "你已经和Rebecca说明了探索任务的重要性，接下来要告诉她这就是你们必须留下来的原因，应该怎么表达呢？"}, "optionList": [{"option": "That's why we have to stay.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "太对了！你用That's why... 准确引出了你们要留下来的原因，完美符合语境需求。"}}, {"option": "That's how we have to stay.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "how是用来询问或说明方式的，这里你想表达的是留下来的原因，不是留下来的方式，所以这个选项不合适哦。"}}, {"option": "That's which we have to stay.", "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，应该怎么说呢？"}, "optionList": [{"option": "When will you arrive?", "feedback": {"type": "npc", "npcName": "Brainy", "content": "完全正确！你用一般将来时准确询问了Rebecca到达的时间，非常符合邮件结尾的询问语境。"}}, {"option": "When is you arrive?", "feedback": {"type": "npc", "npcName": "Brainy", "content": "arrive是实义动词，在疑问句中需要用助动词do/does/will来帮助构成句式，不能用be动词is哦，而且is和第二人称you也不搭配，再想想正确的表达~"}}, {"option": "How is you arrive?", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这里你是要询问到达的“时间”，不是到达的方式，所以不能用how提问，同时这个句子也存在语法错误，be动词不能直接和动词原形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说明这份探索任务对你们的重要性，现在要表达“这份工作对我们来说很重要”，应该怎么说？\n用户选项:\n（选项 A）The job is important for us. [正确]\n  Brainy: 太棒啦！你准确表达出了“这份工作对我们很重要”的含义，job在这里指代你们的探索任务，使用完全正确。\n（选项 B）The jobs are important for us.\n  Brainy: 这里你用了job的复数形式，但我们要指代的是“在Wander Port探索”这一项任务，是单数含义，所以不合适哦，再试一次吧。\n（选项 C）The projects is important for us.\n  Brainy: project是“项目”的意思，不符合这里要表达的“工作/任务”的含义，而且projects是复数，后面不能搭配is，语法也不对哦，再想想~\n\n# 问题2：\nBrainy: 你已经和Rebecca说明了探索任务的重要性，接下来要告诉她这就是你们必须留下来的原因，应该怎么表达呢？\n用户选项:\n（选项 A）That's why we have to stay. [正确]\n  Brainy: 太对了！你用That's why... 准确引出了你们要留下来的原因，完美符合语境需求。\n（选项 B）That's how we have to stay.\n  Brainy: how是用来询问或说明方式的，这里你想表达的是留下来的原因，不是留下来的方式，所以这个选项不合适哦。\n（选项 C）That's which we have to stay.\n  Brainy: which通常用来指代事物，不能用来引导原因状语从句，在这里语义和语法都不通顺哦，再试一次吧。\n\n# 问题3：\nBrainy: 你在邮件的最后想询问Rebecca什么时候会抵达Wander Port，应该怎么说呢？\n用户选项:\n（选项 A）When will you arrive? [正确]\n  Brainy: 完全正确！你用一般将来时准确询问了Rebecca到达的时间，非常符合邮件结尾的询问语境。\n（选项 B）When is you arrive?\n  Brainy: arrive是实义动词，在疑问句中需要用助动词do/does/will来帮助构成句式，不能用be动词is哦，而且is和第二人称you也不搭配，再想想正确的表达~\n（选项 C）How is you arrive?\n  Brainy: 这里你是要询问到达的“时间”，不是到达的方式，所以不能用how提问，同时这个句子也存在语法错误，be动词不能直接和动词原形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": "用户写出：\n这份工作很重要。\n这就是我们为什么要留下。\n你什么时候将会到达？", "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": "用户写出：\n这份工作很重要。\n这就是我们为什么要留下。\n你什么时候将会到达？", "textList": [{"mode": "preset", "desc": "Dear Rebecca,"}, {"mode": "preset", "desc": "I know you are worried. But this is our best chance to explore Wander Port. "}, {"mode": "fillingInput", "desc": "The ___ is important for us.", "optionList": [{"option": "job"}, {"option": "jobs"}, {"option": "projects"}], "answer": [0]}, {"mode": "fillingInput", "desc": "That's ___ we have to stay.", "optionList": [{"option": "why"}, {"option": "how"}, {"option": "which"}], "answer": [0]}, {"mode": "preset", "desc": "Will you come to Wander Port some day? "}, {"mode": "fillingInput", "desc": " ___ you arrive?", "optionList": [{"option": "When will"}, {"option": "When is"}, {"option": "How is"}], "answer": [0]}]}


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

status: generated
bitable_token: KwPHwnaqdiWlvNkDm5fcFreDnQh
db_table: core_interaction_component
created_at: 2026-05-08 16:07:06
updated_at: 2026-05-08 16:07:06
raw_config:
[cell repeats an earlier one in this file: 770 characters]

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

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": "Elephant", "feedback": {"type": "npc", "npcName": "Brainy", "content": "答对啦！我们今天护理的动物是大象，这一栏填Elephant完全正确~"}}, {"option": "Banana", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，banana是香蕉，属于食物，不是我们要填的动物类型，再想想吧。"}}, {"option": "Shower", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，shower是洗澡的意思，属于清洁护理的内容，不是动物类型，再试试看。"}}], "answer": [0], "write": {"desc": "Elephant", "trans": "大象"}, "feedback": {"type": "npc", "npcName": "Brainy", "content": "你写的很好！"}}]}, {"leadIn": {"image": "0000800-01.png"}, "learning": [{"question": {"type": "npc", "npcName": "Brainy", "content": "接下来要填食物栏，我们今天喂大象吃了香蕉，快把对应的单词填到横线上吧。"}, "optionList": [{"option": "banana", "feedback": {"type": "npc", "npcName": "Brainy", "content": "差一点就对啦！这里大象吃了不止一根香蕉，要用复数形式哦，再想想。"}}, {"option": "bananas", "feedback": {"type": "npc", "npcName": "Brainy", "content": "太棒了！大象吃了很多香蕉，用复数形式bananas完全符合护理记录的内容~"}}, {"option": "shower", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，shower是洗澡，不属于食物类的内容，填在这里不合适，再试一次吧。"}}], "answer": [1], "write": {"desc": "bananas", "trans": "香蕉（复数）"}, "feedback": {"type": "npc", "npcName": "Brainy", "content": "你写的很好！"}}]}, {"leadIn": {"image": "0000800-02.png"}, "learning": [{"question": {"type": "npc", "npcName": "Brainy", "content": "现在填清洁护理这一栏，我们今天给大象洗了澡，横线上应该填什么呢？"}, "optionList": [{"option": "a shower", "feedback": {"type": "npc", "npcName": "Brainy", "content": "太聪明啦！\"had a shower\"就是洗了澡的意思，完美对应我们今天给大象做的清洁护理~"}}, {"option": "a banana", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，banana是香蕉，属于食物，不是清洁护理的内容，填在这里不对哦。"}}, {"option": "an elephant", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，elephant是我们护理的动物，不是清洁相关的内容，再想想吧。"}}], "answer": [0], "write": {"desc": "a shower", "trans": "一次淋浴"}, "feedback": {"type": "npc", "npcName": "Brainy", "content": "你写的很好！"}}, {"question": {"type": "npc", "npcName": "Brainy", "content": "最后要总结大象的喜好，我们知道大象喜欢洗澡和吃香蕉，下面哪个句子表达是对的？"}, "optionList": [{"option": "The elephant love showers and bananas!", "feedback": {"type": "npc", "npcName": "Brainy", "content": "差点就对啦！主语the elephant是第三人称单数，动词love要变成loves哦，再调整一下。"}}, {"option": "The elephant loves showers and bananas!", "feedback": {"type": "npc", "npcName": "Brainy", "content": "完全正确！你准确使用了第三人称单数形式loves，清晰表达出了大象喜爱洗澡和香蕉的喜好~"}}, {"option": "The elephant loves showers and bananas?", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，这是一个陈述句，用来陈述事实，句末应该用句号而不是问号，再试试看。"}}], "answer": [1], "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）Elephant [正确]\n  Brainy: 答对啦！我们今天护理的动物是大象，这一栏填Elephant完全正确~\n（选项 B）Banana\n  Brainy: 不对哦，banana是香蕉，属于食物，不是我们要填的动物类型，再想想吧。\n（选项 C）Shower\n  Brainy: 不对哦，shower是洗澡的意思，属于清洁护理的内容，不是动物类型，再试试看。\n\n# 问题2：\nBrainy: 接下来要填食物栏，我们今天喂大象吃了香蕉，快把对应的单词填到横线上吧。\n用户选项:\n（选项 A）banana\n  Brainy: 差一点就对啦！这里大象吃了不止一根香蕉，要用复数形式哦，再想想。\n（选项 B）bananas [正确]\n  Brainy: 太棒了！大象吃了很多香蕉，用复数形式bananas完全符合护理记录的内容~\n（选项 C）shower\n  Brainy: 不对哦，shower是洗澡，不属于食物类的内容，填在这里不合适，再试一次吧。\n\n# 问题3：\nBrainy: 现在填清洁护理这一栏，我们今天给大象洗了澡，横线上应该填什么呢？\n用户选项:\n（选项 A）a shower [正确]\n  Brainy: 太聪明啦！\"had a shower\"就是洗了澡的意思，完美对应我们今天给大象做的清洁护理~\n（选项 B）a banana\n  Brainy: 不对哦，banana是香蕉，属于食物，不是清洁护理的内容，填在这里不对哦。\n（选项 C）an elephant\n  Brainy: 不对哦，elephant是我们护理的动物，不是清洁相关的内容，再想想吧。\n\n# 问题4：\nBrainy: 最后要总结大象的喜好，我们知道大象喜欢洗澡和吃香蕉，下面哪个句子表达是对的？\n用户选项:\n（选项 A）The elephant love showers and bananas!\n  Brainy: 差点就对啦！主语the elephant是第三人称单数，动词love要变成loves哦，再调整一下。\n（选项 B）The elephant loves showers and bananas! [正确]\n  Brainy: 完全正确！你准确使用了第三人称单数形式loves，清晰表达出了大象喜爱洗澡和香蕉的喜好~\n（选项 C）The elephant loves showers and bananas?\n  Brainy: 不对哦，这是一个陈述句，用来陈述事实，句末应该用句号而不是问号，再试试看。\n```", "互动描述": "Animal Keeper's Record Animal type: Elephant Food: She ate bananas. Cleaning: She had a shower today. What does she love? The elephant loves showers and bananas!（动物饲养员记录\n动物种类：大象\n食物：她吃了香蕉。\n清洁：她今天洗了澡。\n她喜欢什么？\n这头大象喜欢洗澡和香蕉！）"}

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

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


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试-全量)
category: 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-08 16:07:15
updated_at: 2026-05-08 16:07:15
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_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-08 16:07:20
updated_at: 2026-05-08 16:07:20
final_config_json:
  {"cType": "mid_message_fillin", "cId": "0000800", "title": "填写信息表", "resourceMapping": {"Vicky": 658}, "cDesc": "You completed the word \"knowledge\" on the sheet. (你在信息表上完成了单词“知识”的填写。)", "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-08 16:07:21
updated_at: 2026-05-08 16:07:21
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_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-08 16:07:21
updated_at: 2026-05-08 16:07:21
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，你已经说明了理解她的担忧、也提到留下是探索Wander Port的绝佳机会，现在需要进一步说明这个探索任务对你们的重要性，你会怎么说？"}, "optionList": [{"option": "The job is important for us.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "太棒了！你准确表达了这份探索工作对你们的重要性，和前文的理由衔接非常自然。"}}, {"option": "The jobs are important for us.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这里你们要做的探索是一项共同的任务，是单数概念，不需要用jobs哦，再试一下吧。"}}, {"option": "The projects are important for us.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "projects是“项目”的复数形式，这里咱们特指这次探索任务，不符合当前语境的表达哦，再想想吧。"}}], "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": "你已经说明了探索任务的重要性，现在需要告诉她这就是你们决定留下来的原因，你会怎么表达？"}, "optionList": [{"option": "That's how we have to stay.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "how是用来询问方式的，这里你要说明留下来的原因，这个选项不符合语义哦，再试一次吧。"}}, {"option": "That's why we have to stay.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "太对啦！你用That's why...准确引出了你们必须留下来的原因，逻辑非常通顺。"}}, {"option": "That's which we have to stay.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "which一般用来引导定语从句指代事物，不能用来引导原因状语哦，这个表达是不对的，再想想吧。"}}], "answer": [1], "write": {"desc": "That's why we have to stay.", "trans": "这就是为什么我们必须留下来。"}, "feedback": {"type": "npc", "npcName": "Brainy", "content": "你写的很好！"}}]}, {"leadIn": {"desc": "Ask her when she will arrive."}, "learning": [{"question": {"type": "npc", "npcName": "Brainy", "content": "你已经说完了留下的决定和原因，现在询问了Rebecca是否会来Wander Port，如果她要来的话，你想知道她到达的时间，你会怎么问呢？"}, "optionList": [{"option": "If so, when is you arrive?", "feedback": {"type": "npc", "npcName": "Brainy", "content": "arrive是实义动词，疑问句需要用助动词will来搭配，这个表达语法不正确哦，再试一下吧。"}}, {"option": "If so, how is you arrive?", "feedback": {"type": "npc", "npcName": "Brainy", "content": "how是询问方式的，你现在要问的是到达的时间，而且这个句子的语法也不对哦，再想想吧。"}}, {"option": "If so, when will you arrive?", "feedback": {"type": "npc", "npcName": "Brainy", "content": "完全正确！你准确询问了Rebecca到达的时间，时态和语义都和语境完美契合。"}}], "answer": [2], "write": {"desc": "If so, when will you arrive?", "trans": "如果会的话，你什么时候会到呀？"}, "feedback": {"type": "npc", "npcName": "Brainy", "content": "你写的很好！"}}]}], "closing": {"type": "npc", "npcName": "Brainy", "content": "恭喜你，你已经掌握了表达任务重要性的句式“The job is...”、说明原因的句式“That's why we have to...”以及询问到达时间的句式“When will you arrive?”，可以顺利完成给Rebecca的邮件写作啦！"}}

intermediate_json:
  {"学习流程配置": "```\n# 问题1：\nBrainy: 邮件开头问候完Rebecca，你已经说明了理解她的担忧、也提到留下是探索Wander Port的绝佳机会，现在需要进一步说明这个探索任务对你们的重要性，你会怎么说？\n用户选项:\n（选项 A）The job is important for us. [正确]\n  Brainy: 太棒了！你准确表达了这份探索工作对你们的重要性，和前文的理由衔接非常自然。\n（选项 B）The jobs are important for us.\n  Brainy: 这里你们要做的探索是一项共同的任务，是单数概念，不需要用jobs哦，再试一下吧。\n（选项 C）The projects are important for us.\n  Brainy: projects是“项目”的复数形式，这里咱们特指这次探索任务，不符合当前语境的表达哦，再想想吧。\n\n# 问题2：\nBrainy: 你已经说明了探索任务的重要性，现在需要告诉她这就是你们决定留下来的原因，你会怎么表达？\n用户选项:\n（选项 A）That's how we have to stay.\n  Brainy: how是用来询问方式的，这里你要说明留下来的原因，这个选项不符合语义哦，再试一次吧。\n（选项 B）That's why we have to stay. [正确]\n  Brainy: 太对啦！你用That's why...准确引出了你们必须留下来的原因，逻辑非常通顺。\n（选项 C）That's which we have to stay.\n  Brainy: which一般用来引导定语从句指代事物，不能用来引导原因状语哦，这个表达是不对的，再想想吧。\n\n# 问题3：\nBrainy: 你已经说完了留下的决定和原因，现在询问了Rebecca是否会来Wander Port，如果她要来的话，你想知道她到达的时间，你会怎么问呢？\n用户选项:\n（选项 A）If so, when is you arrive?\n  Brainy: arrive是实义动词，疑问句需要用助动词will来搭配，这个表达语法不正确哦，再试一下吧。\n（选项 B）If so, how is you arrive?\n  Brainy: how是询问方式的，你现在要问的是到达的时间，而且这个句子的语法也不对哦，再想想吧。\n（选项 C）If so, when will you arrive? [正确]\n  Brainy: 完全正确！你准确询问了Rebecca到达的时间，时态和语义都和语境完美契合。\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（亲爱的丽贝卡：\n我知道你很担心，但这是我们探索漫游港的最佳机会。这份工作对我们来说很重要，这就是我们必须留下来的原因。你会不会哪天来漫游港呢？如果会的话，你什么时候会到呀？）"}

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

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


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试-全量)
category: mid
cType: mid_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-08 16:07:27
updated_at: 2026-05-08 16:07:27
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 correct sentence on the information form. (你在信息表上填写了正确的句子。)", "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-05-08 16:07:29
updated_at: 2026-05-08 16:07:29
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": "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_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-08 16:07:31
updated_at: 2026-05-08 16:07:31
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 broken 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-05-08 16:07:31
updated_at: 2026-05-08 16:07:31
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 in 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
knowledge_points_raw: student
status: generated
bitable_token: MuwubKXoSaJe55sO4k9c63VSnmh
db_table: middle_interaction_component
created_at: 2026-05-08 16:59:04
updated_at: 2026-05-08 16:59:04
raw_config:
[cell repeats an earlier one in this file: 106 characters]

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

kp_info_json:
[cell repeats an earlier one in this file: 210 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-05-08 17:00:18
updated_at: 2026-05-08 17:00:18
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": "In the word castle, you fill in the blank for Ben's question about hippos' home, and learn that hippos live in the lake to open the castle gate.（在单词城堡里，你补全了Ben关于河马栖息地的问题，了解到河马住在湖里，为打开城堡大门推进了一步。）Next, you answer Brainy's question about other zoo animals, and find out there are trees with various animals in the zoo as you keep exploring the castle.（接着你回答了Brainy关于动物园其他动物的问题，了解到动物园里有树木和各类动物，继续探索城堡。）"}

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": "In the word castle, you fill in the blank for Ben's question about hippos' home, and learn that hippos live in the lake to open the castle gate.（在单词城堡里，你补全了Ben关于河马栖息地的问题，了解到河马住在湖里，为打开城堡大门推进了一步。）Next, you answer Brainy's question about other zoo animals, and find out there are trees with various animals in the zoo as you keep exploring the castle.（接着你回答了Brainy关于动物园其他动物的问题，了解到动物园里有树木和各类动物，继续探索城堡。）"}

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": "答对啦！河马是半水生动物，大部分时间都待在水里，住在湖里是很合理的~现在跟着我大声读这句话：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."}}, {"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：答对啦！河马是半水生动物，大部分时间都待在水里，住在湖里是很合理的~现在跟着我大声读这句话：Hippos live in the lake.\n- 选项 B：tree\n  Brainy：不对哦，树是小鸟、松鼠这些动物可能栖息的地方，河马这么大，没办法住在树上呀，再选一次吧~\n- 选项 C：grass\n  Brainy：不对哦，草是食草动物的食物，不是河马居住的地方哦，再想想吧~\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.\n- 选项 C：grass\n  Brainy：不对哦，草一般是长在地面上的，不是动物园里典型的特色设施哦，再选一次吧~\n\n---\n# 完结反馈\nBrainy：太棒了！你复习了lake、tree、grass这些核心名词，还学会了怎么回答关于动物栖息地、动物园环境的问题，今天的任务完成得超棒，继续加油哦~\n```", "互动描述": "In the word castle, you fill in the blank for Ben's question about hippos' home, and learn that hippos live in the lake to open the castle gate.（在单词城堡里，你补全了Ben关于河马栖息地的问题，了解到河马住在湖里，为打开城堡大门推进了一步。）\nNext, you answer Brainy's question about other zoo animals, and find out there are trees with various animals in the zoo as you keep exploring the castle.（接着你回答了Brainy关于动物园其他动物的问题，了解到动物园里有树木和各类动物，继续探索城堡。）"}

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-08 17:00:22
updated_at: 2026-05-08 17:00:22
raw_config:
[cell repeats an earlier one in this file: 2351 characters]

final_config_json:
[cell repeats an earlier one in this file: 645 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: 645 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 的意思是积分、分数，攒积分可以说 collect points。", "npcName": "Brainy", "learning": [{"answer": [1], "meaning": "句意选择题", "optionList": [{"feedback": {"type": "npc", "content": "不对哦，前文中已经说明没有考试，这里需要的是points也就是积分，再确认下正确答案吧。", "npcName": "Brainy"}, "option": "但是你需要考试才能升级。"}, {"feedback": {"type": "npc", "content": "完美回答！你已经掌握了句中的关键单词 points 和整个句子的意思了～", "npcName": "Brainy"}, "option": "但是你需要积分才能升级。"}], "question": {"type": "npc", "npcName": "Brainy", "content": "接下来，我们来看下包含 points 的句子 But you need points to level up! 是什么意思呢？"}}, {"answer": [0], "meaning": "段落大意题", "optionList": [{"feedback": {"type": "npc", "content": "太棒了！你抓住了 don't have exams 和 need points to level up 这两个重点！", "npcName": "Brainy"}, "option": "在瓦拉学院，先锋们不用考试，但是需要攒积分来升级。"}, {"feedback": {"type": "npc", "content": "不太对哦，文中明确说先锋们没有考试，再读一读试试看！", "npcName": "Brainy"}, "option": "在瓦拉学院，先锋们需要通过考试获得积分才能升级。"}], "question": {"type": "npc", "npcName": "Brainy", "content": "了解了关键单词和关键句子的意思，那我们来一起看看这一段主要在说什么呢？"}}]}, {"leadIn": {"desc": "You can choose your favourite club to join. If you are interested in something, you can find a club for it."}, "type": "npc", "content": "本段围绕一个关键词 club 展开，你认识这个单词吗？club 是俱乐部的意思，加入俱乐部可以说 join a club。", "npcName": "Brainy", "learning": [{"answer": [1], "meaning": "句意选择题", "optionList": [{"feedback": {"type": "npc", "content": "课程的英文表达是 course 哦，并不是我们讲的 club，再认真看看正确的释义吧。", "npcName": "Brainy"}, "option": "你可以选择你最喜欢的课程去上。"}, {"feedback": {"type": "npc", "content": "完美回答！你已经掌握了文中的关键单词 club 和关键句子的意思了～", "npcName": "Brainy"}, "option": "你可以选择你最喜欢的俱乐部去加入。"}], "question": {"type": "npc", "npcName": "Brainy", "content": "接下来我们看看包含 club 的句子 You can choose your favourite club to join. 你知道它是什么意思吗？"}}, {"answer": [0], "meaning": "段落大意题", "optionList": [{"feedback": {"type": "npc", "content": "答得好！俱乐部选择规则你都记住啦！", "npcName": "Brainy"}, "option": "你可以选择喜欢的俱乐部加入，如果对某件事感兴趣，能找到对应的俱乐部。"}, {"feedback": {"type": "npc", "content": "小心看哦～文中并没有提到不能创建新俱乐部的内容，再仔细看看正确的释义吧！", "npcName": "Brainy"}, "option": "所有的俱乐部都已经有人创建了，你不能自己创建新的俱乐部。"}], "question": {"type": "npc", "npcName": "Brainy", "content": "下面，让我们来看看这一段主要在讲什么。"}}]}]}

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


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试-全量)
category: core
cType: core_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-08 17:00:43
updated_at: 2026-05-08 17:00:43
raw_config:
[cell repeats an earlier one in this file: 998 characters]

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

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

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

study_info_json:
  {"learningPart": {"opening": {"type": "npc", "npcName": "Logan", "content": "Hi. What happened to the elephant?"}, "wrongReadLeadIn": {"type": "npc", "content": "请根据提词框内的内容大声地朗读这句话", "npcName": "Brainy"}, "learning": [{"question": {"type": "npc", "npcName": "Brainy", "content": "Logan在问大象发生什么事啦，现在你需要告诉对方大象需要洗澡，你们想要给它安排一次淋浴哦。"}, "optionList": [{"option": "The elephant needs a shower. Let's set up a shower for her.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "回答得太对啦！很棒~现在请你大声把这句话朗读出来吧。"}}, {"option": "The elephant is hungry. Let's give her some bananas.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句话的意思是“大象饿了，我们给她喂点香蕉吧”，现在我们要说的是大象需要洗澡的事，和这个内容不符哦，再试一次吧。"}}, {"option": "The elephant is lost. Let's call 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 just wait here for the keepers.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句话是说“你说得对，我们就在这儿等饲养员吧”，我们现在想要主动去拿水，不是等别人来哦，再选一次吧。"}}, {"option": "Instead of waiting here, we'd better get some water for her first.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "完全正确！你理解得非常好，现在试着把这句话大声读出来吧。"}}, {"option": "We don't have time to help her, let's go 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": "Sorry, we are too busy to do that.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句话的意思是“不好意思，我们太忙了没法做这件事”，你们本来就很愿意帮大象洗澡，所以这个选项不对哦，再试一次吧。"}}, {"option": "No, we hope you can do it yourself.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句话是说“不，我们希望你自己做这件事”，不符合我们愿意帮忙的想法哦，再选一次吧。"}}], "answer": [0], "read": {"type": "user", "content": "We'd love to help."}, "feedback": {"type": "npc", "npcName": "Logan", "content": "Great. We will send some water to her right away."}}], "closing": {"type": "npc", "npcName": "Brainy", "content": "恭喜你完成了本次对话任务！你成功和清洁站的工人沟通好了帮大象洗澡的事，工人马上就会送水过来啦，你真棒~"}}}

intermediate_json:
  {"学习流程配置": "```\n# 开场回合\nLogan：Hi. What happened to the elephant?\n\n# 中间回合1\nBrainy：Logan在问大象发生什么事啦，现在你需要告诉对方大象需要洗澡，你们想要给它安排一次淋浴哦。\n用户选项:\n（选项A）The elephant needs a shower. Let's set up a shower for her.\n  Brainy：回答得太对啦！很棒~现在请你大声把这句话朗读出来吧。\n（选项B）The elephant is hungry. Let's give her some bananas.\n  Brainy：这句话的意思是“大象饿了，我们给她喂点香蕉吧”，现在我们要说的是大象需要洗澡的事，和这个内容不符哦，再试一次吧。\n（选项C）The elephant is lost. Let's call 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用户选项:\n（选项A）You are right, let's just wait here for the keepers.\n  Brainy：这句话是说“你说得对，我们就在这儿等饲养员吧”，我们现在想要主动去拿水，不是等别人来哦，再选一次吧。\n（选项B）Instead of waiting here, we'd better get some water for her first.\n  Brainy：完全正确！你理解得非常好，现在试着把这句话大声读出来吧。\n（选项C）We don't have time to help her, let's go 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）Sorry, we are too busy to do that.\n  Brainy：这句话的意思是“不好意思，我们太忙了没法做这件事”，你们本来就很愿意帮大象洗澡，所以这个选项不对哦，再试一次吧。\n（选项C）No, we hope you can do it yourself.\n  Brainy：这句话是说“不，我们希望你自己做这件事”，不符合我们愿意帮忙的想法哦，再选一次吧。\nLogan：Great. We will send some water to her right away.\n\n# 结尾回合\nBrainy：恭喜你完成了本次对话任务！你成功和清洁站的工人沟通好了帮大象洗澡的事，工人马上就会送水过来啦，你真棒~\n```", "promptInfo配置": "```\n# 1. 角色（你要扮演谁）\n你是Logan，在Wander Port的清洁站工作。你的语言风格亲切自然，适合儿童理解。\n# 2. 任务（你如何参与对话）\n1. 开场首先询问用户大象的情况，确认大象是不是需要洗澡\n2. 得到用户确认大象没洗澡的回答后，告诉用户可以稍等，或许饲养员很快就会来\n3. 接下来询问用户是否愿意帮忙给大象洗澡\n4. 如果用户表示愿意帮忙，先向用户表达感谢，然后告知用户会立刻送干净的水过去\n5. 如果用户表示不愿意帮忙，你可以告知用户你会联系饲养员来处理，结束对话\n6. 如果用户的回答你没有理解，你可以用简单的英语请用户再说一次，比如\"Pardon?\"\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,banana,Wander Port"}

dialog_config_json:
  {"config": {"asrPrompt": "elephant,shower,water,keepers,help,clean,banana,Wander Port", "promptInfo": {"default": "\n# 1. 角色（你要扮演谁）\n你是Logan，在Wander Port的清洁站工作。你的语言风格亲切自然，适合儿童理解。\n# 2. 任务（你如何参与对话）\n1. 开场首先询问用户大象的情况，确认大象是不是需要洗澡\n2. 得到用户确认大象没洗澡的回答后，告诉用户可以稍等，或许饲养员很快就会来\n3. 接下来询问用户是否愿意帮忙给大象洗澡\n4. 如果用户表示愿意帮忙，先向用户表达感谢，然后告知用户会立刻送干净的水过去\n5. 如果用户表示不愿意帮忙，你可以告知用户你会联系饲养员来处理，结束对话\n6. 如果用户的回答你没有理解，你可以用简单的英语请用户再说一次，比如\"Pardon?\"\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-05-08 17:00:51
updated_at: 2026-05-08 17:00:51
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: 655 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 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": "How much is the towel?", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这里不需要询问毛巾的价格哦，我们只要表达想要一条毛巾就可以啦，再试试吧。"}}], "answer": [1], "read": {"type": "user", "content": "Oh, and can I have a towel please?"}, "feedback": {"type": "npc", "npcName": "Chloe", "content": "Of course! I'll bring a new one for you soon."}}, {"question": {"type": "npc", "npcName": "Brainy", "content": "Chloe同意给你拿一条新毛巾啦，现在你可以问问在健身房里还能做些什么。"}, "optionList": [{"option": "What else can I do there?", "feedback": {"type": "npc", "npcName": "Brainy", "content": "你真棒！正确问出了健身房的其他用途。请大声朗读这句话！"}}, {"option": "Where is the restaurant?", "feedback": {"type": "npc", "npcName": "Brainy", "content": "我们现在问的是和健身房相关的问题，不是餐厅的位置哦，再试一次吧。"}}, {"option": "When does the gym close?", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句话是问健身房的关门时间，不是问在里面可以做什么的哦，再选一次吧。"}}], "answer": [0], "read": {"type": "user", "content": "What else can I do there?"}, "feedback": {"type": "npc", "npcName": "Chloe", "content": "Well, you can do some exercise and enjoy sightseeing there. Or you can just relax."}}], "closing": {"type": "npc", "npcName": "Brainy", "content": "Chloe已经告诉你在健身房可以运动、观景或者放松，你已经问清了所有需要的信息，任务完成啦！"}}}

intermediate_json:
  {"学习流程配置": "```\n# 开场回合\nChloe：Can I help you?\n\n# 中间回合1\nBrainy：空乘Chloe主动询问你是否需要帮助，现在你需要向她询问健身房的位置。\n用户选项:\n（选项 A）Where can I find the gym? [正确]\n  Brainy：太棒了！你正确地问出了健身房的位置。请大声朗读这句话！\n（选项 B）Can I have a towel please?\n  Brainy：这句话是询问能不能拿毛巾的，现在我们还没问健身房的位置哦，再试一次吧。\n（选项 C）What can I do in the gym?\n  Brainy：这句话是问在健身房可以做什么，我们现在需要先问清楚健身房在哪里，再选一次吧。\nChloe：Look, it's over there at the end of this walkway.\n\n# 中间回合2\nBrainy：Chloe已经告诉你健身房在这条通道的尽头啦，现在你需要向她索要运动需要用到的毛巾。\n用户选项:\n（选项 A）Where can I find the gym?\n  Brainy：你已经问过健身房的位置啦，现在我们需要向Chloe要毛巾，再试一次吧。\n（选项 B）Oh, and can I have a towel please? [正确]\n  Brainy：太厉害啦！你正确地向Chloe提出了要毛巾的请求。请大声朗读这句话！\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）Where is the restaurant?\n  Brainy：我们现在问的是和健身房相关的问题，不是餐厅的位置哦，再试一次吧。\n（选项 C）When does the gym close?\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,walkway,sightseeing,relax"}

dialog_config_json:
  {"config": {"asrPrompt": "gym,towel,exercise,walkway,sightseeing,relax", "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_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-08 17:01:13
updated_at: 2026-05-08 17:01:13
raw_config:
[cell repeats an earlier one in this file: 2377 characters]

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

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

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

material_info_json:
[cell repeats an earlier one in this file: 2600 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": [0], "meaning": "听音选句", "optionList": [{"feedback": {"type": "npc", "content": "太厉害啦！你精准捕捉到了句子里的重点短语 bake at home！", "npcName": "Brainy"}, "option": "When you really want sweet food, like biscuits or cake, you can bake at home."}, {"feedback": {"type": "npc", "content": "呀，这句话里说的是 buy at the shop，不是我们听到的 bake at home 哦，再仔细听听音频试试看~", "npcName": "Brainy"}, "option": "When you really want sweet food, like biscuits or cake, you can buy at the shop."}], "question": {"type": "npc", "content": "仔细听音频内容，选出你听到的句子哦。", "npcName": "Brainy"}}, {"answer": [0], "meaning": "听音选意", "optionList": [{"feedback": {"type": "npc", "content": "完全正确！你已经掌握了 bake at home 这个短语的意思，太棒啦！", "npcName": "Brainy"}, "option": "当你很想吃甜食，比如饼干或者蛋糕时，你可以在家烘焙。"}, {"feedback": {"type": "npc", "content": "不对哦，这句话里的动作不是去商店买，再想想句子里的关键短语是什么意思吧~", "npcName": "Brainy"}, "option": "当你很想吃甜食，比如饼干或者蛋糕时，你可以去商店买。"}], "question": {"type": "npc", "content": "现在来看看这句话的正确意思是什么，选一下吧！", "npcName": "Brainy"}}]}]}

intermediate_json:
  {"学习过程配置": "```\n# 重点句子 1\n音频文本：When you really want sweet food, like biscuits or cake, you can bake at home.\n讲解文本：刚刚听到的音频中，包含了一个关键短语 bake at home，意思是在家烘焙。正确的发音是 /beɪk æt həʊm/。\n1. 听音选句\nBrainy：仔细听音频内容，选出你听到的句子哦。\n- When you really want sweet food, like biscuits or cake, you can bake at home. [正确]\n  - Brainy：太厉害啦！你精准捕捉到了句子里的重点短语 bake at home！\n- When you really want sweet food, like biscuits or cake, you can buy at the shop.\n  - Brainy：呀，这句话里说的是 buy at the shop，不是我们听到的 bake at home 哦，再仔细听听音频试试看~\n\n2. 听音选意\nBrainy：现在来看看这句话的正确意思是什么，选一下吧！\n- 当你很想吃甜食，比如饼干或者蛋糕时，你可以在家烘焙。[正确]\n  - Brainy：完全正确！你已经掌握了 bake at home 这个短语的意思，太棒啦！\n- 当你很想吃甜食，比如饼干或者蛋糕时，你可以去商店买。\n  - Brainy：不对哦，这句话里的动作不是去商店买，再想想句子里的关键短语是什么意思吧~\n---\n# 完成反馈\nBrainy：很好！你已经回答完了全部问题，相信你已经听懂了这个任务中所有的重点句子。现在让我们来查看结果吧!\n```", "互动描述": "You listened to the second part of Max's fitness guide, learning that a healthy routine means going to bed on time and getting up early, and you should stay away from smoking and alcohol. (你听了Max健身指南的第二部分，了解到健康的作息是早睡早起，还要远离烟酒。)\nYou also learned that keeping healthy doesn't need much money or expensive items, and good habits are the most important thing for health. (你还了解到保持健康不需要很多钱或是昂贵的东西，良好的习惯才是健康最重要的部分。)"}


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-08 17:01:17
updated_at: 2026-05-08 17:01:17
raw_config:
[cell repeats an earlier one in this file: 559 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: 462 characters]

task_info_json:
[cell repeats an earlier one in this file: 609 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": "Great! You know a lot about winter."}}]}], "closing": {"type": "npc", "npcName": "Brainy", "content": "太棒了！你已经完成了和Rock老师的互动，正确回答了关于冬季的季节、天气和特有景物的问题，顺利完成了冬季岛的分享任务啦！"}}

intermediate_json:
  {"学习流程配置": "```\n# 中间回合1\nRock：What season is it?\nBrainy：Rock 老师问你现在是什么季节，你需要告诉他现在的季节哦。\n用户选项:\n（选项 A）Winter. [正确]\n  Brainy：太棒了！你正确回答了现在是冬季。请大声朗读这句话！\n（选项 B）Cold.\n  Brainy：这句话的意思是“寒冷的”，但老师现在问的是当前的季节，不是天气感受哦。请再仔细听清问题，告诉老师现在是什么季节。\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```", "语音识别热词": "Mr Rock,Winter Island,winter,cold,snow"}

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

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_drag
type_name: 听力拖拽
level: L1
unit_id: U14
knowledge_points_raw:
  between
  duck
  next to

status: generated
bitable_token: K3QrwQnWqiPBm1krhnNcWDTqnhe
db_table: core_interaction_component
created_at: 2026-05-08 17:01:25
updated_at: 2026-05-08 17:01:25
raw_config:
  【任务标题】
  指挥大家赶鸭子
  【任务背景】
  鸭子大乱斗！手忙脚乱没有用，你现在得和伙伴们一起协作，把到处跑的鸭子赶进水里。快说说你的计划吧！
  【通关知识】
  between prep. 在……中间
  next to prep.        紧邻
  duck n. 鸭子
  【开场语】
  无
  【听力文本】
  # 文本 1
  Matt: Where should I go?
  User: Go between the red duck and the blue duck.
  User: Don't let them fight.        
  # 文本 2
  Ben: What about me?
  User: You are next to the blue duck.
  # 文本 3
  Amber: And me? Where should I be?
  User: You are next to the red duck.
  User: Get it into the water!
  【题目信息】
  #单空选择
  选项图片编号：00, 01,02
  答案图片编号：00, 01,02

  【学习过程】
  句子 1
  Go between the red duck and the blue duck.【between】
  句子 2
  You are next to the blue duck.【next to】
  句子 3
  You are next to the red duck.【next to】

final_config_json:
  {"cType": "core_listening_drag", "cId": "0000800", "title": "指挥大家赶鸭子", "sceneDesc": "鸭子大乱斗！手忙脚乱没有用，你现在得和伙伴们一起协作，把到处跑的鸭子赶进水里。快说说你的计划吧！", "key": [{"desc": "", "keyList": [{"type": "default", "content": "between", "desc": "prep. 在……中间"}, {"type": "default", "content": "next to", "desc": "prep. 紧邻"}, {"type": "default", "content": "duck", "desc": "n. 鸭子"}]}], "resourceMapping": {"Eva": 738, "Peter": 739}, "cDesc": "You took on the fun task of herding ducks with everyone, and picked the right actions from three different options to guide all the waddling little ducks back to their cozy nest smoothly. (你承担了和大家一起赶鸭子的有趣任务，从三个不同的选项中选出了正确的动作，顺利把所有摇摇晃晃的小鸭子都引导回了它们舒适的小窝。)"}

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

task_info_json:
  {"cType": "core_listening_drag", "cId": "0000800", "title": "指挥大家赶鸭子", "sceneDesc": "鸭子大乱斗！手忙脚乱没有用，你现在得和伙伴们一起协作，把到处跑的鸭子赶进水里。快说说你的计划吧！", "key": [{"desc": "", "keyList": [{"type": "default", "content": "between", "desc": "prep. 在……中间"}, {"type": "default", "content": "next to", "desc": "prep. 紧邻"}, {"type": "default", "content": "duck", "desc": "n. 鸭子"}]}], "resourceMapping": {"Eva": 738, "Peter": 739}, "cDesc": "You took on the fun task of herding ducks with everyone, and picked the right actions from three different options to guide all the waddling little ducks back to their cozy nest smoothly. (你承担了和大家一起赶鸭子的有趣任务，从三个不同的选项中选出了正确的动作，顺利把所有摇摇晃晃的小鸭子都引导回了它们舒适的小窝。)"}

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

intermediate_json:
  {"学习过程配置": "```\n# 重点句子 1\n音频文本：Go between the red duck and the blue duck.\n讲解文本：刚刚听到的音频中，包含了一个关键短语 between...and...，意思是“在……和……之间”，用来描述两个事物中间的位置哦。\n1. 听音选句\nBrainy：仔细听音频，选出你听到的句子吧。\n- Go behind the red duck and the blue duck.\n  - Brainy：哎呀，这句话里的方位词是behind（在……后面），不是我们听到的between哦，再听听看~\n- Go between the red duck and the blue duck. [正确]\n  - Brainy：太厉害啦！你准确听出了句子里的重点短语between...and...！\n\n2. 听音选意\nBrainy：“走到红色的鸭子和蓝色的鸭子中间去”，这句话的意思是对的吗？\n- 对 / Yes [正确]\n  - Brainy：答对啦！你完全理解了between...and...的意思，真棒！\n- 错 / No\n  - Brainy：再想想哦，between...and...是描述两个事物中间的位置，再回忆下句子的意思吧~\n---\n# 完成反馈\nBrainy：很好！你已经回答完了全部问题，相信你已经听懂了这个任务中所有的重点句子。现在让我们来查看结果吧!\n```", "互动描述": "You took on the fun task of herding ducks with everyone, and picked the right actions from three different options to guide all the waddling little ducks back to their cozy nest smoothly. (你承担了和大家一起赶鸭子的有趣任务，从三个不同的选项中选出了正确的动作，顺利把所有摇摇晃晃的小鸭子都引导回了它们舒适的小窝。)"}

question_list_json:
  [{"imageInfo": {"questionImg": "0000800_question.png", "answerImg": "0000800_answer.png"}, "optionList": [{"option": "0000800_option_00.png"}, {"option": "0000800_option_01.png"}, {"option": "0000800_option_02.png"}], "answer": [0, 1, 2], "answerType": "all"}]

dialog_list_json:
  [[{"type": "npc", "npcName": "Matt", "content": "Where should I go?", "trans": "我该去哪里？", "isPoint": false}, {"type": "user", "content": "Go between the red duck and the blue duck.", "trans": "走到红鸭子和蓝鸭子中间。", "isPoint": false}, {"type": "user", "content": "Don't let them fight.", "trans": "别让它们打架。", "isPoint": false}], [{"type": "npc", "npcName": "Ben", "content": "What about me?", "trans": "那我呢？", "isPoint": false}, {"type": "user", "content": "You are next to the blue duck.", "trans": "你在蓝鸭子旁边。", "isPoint": false}], [{"type": "npc", "npcName": "Amber", "content": "And me? Where should I be?", "trans": "那我呢？我该待在哪里？", "isPoint": false}, {"type": "user", "content": "You are next to the red duck.", "trans": "你在红鸭子旁边。", "isPoint": false}, {"type": "user", "content": "Get it into the water!", "trans": "把它弄到水里去！", "isPoint": false}]]


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...
status: generated
bitable_token: Kwrcw6A4jip2sxkdLn4czd1knvf
db_table: core_interaction_component
created_at: 2026-05-08 17:01:41
updated_at: 2026-05-08 17:01:41
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": "You meet fishing uncle Jack, talk with him and know it's super hot summer, you don't have shorts and the pair you need is between the rocks.（你遇到了钓鱼的杰克叔叔，和他交流后得知现在是酷热的夏天，你没有短裤，你需要的那条在岩石之间。）\nYou tell Jack you need the shorts between the rocks and ask him to help you get that pair of shorts, and Jack understands your request.（你告诉杰克你需要岩石之间的短裤，请求他帮你拿到那条短裤，杰克明白了你的诉求。）\nJack agrees to help you get the shorts that are placed between the rocks after you put forward your request politely.（在你礼貌提出请求后，杰克同意帮你去拿放在岩石之间的那条短裤。）"}

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": "You meet fishing uncle Jack, talk with him and know it's super hot summer, you don't have shorts and the pair you need is between the rocks.（你遇到了钓鱼的杰克叔叔，和他交流后得知现在是酷热的夏天，你没有短裤，你需要的那条在岩石之间。）\nYou tell Jack you need the shorts between the rocks and ask him to help you get that pair of shorts, and Jack understands your request.（你告诉杰克你需要岩石之间的短裤，请求他帮你拿到那条短裤，杰克明白了你的诉求。）\nJack agrees to help you get the shorts that are placed between the rocks after you put forward your request politely.（在你礼貌提出请求后，杰克同意帮你去拿放在岩石之间的那条短裤。）"}

study_info_json:
  {"learningPart": [{"type": "npc", "npcName": "Brainy", "content": "This summer!", "learning": [{"question": {"content": "刚刚听到的音频中，包含了一个关键单词 summer，意思是夏天，是表示季节的名词哦。", "type": "npc", "npcName": "Brainy"}, "extendQuestion": {"content": "仔细听音频，哪一个是你刚刚听到的句子呀？", "type": "npc", "npcName": "Brainy"}, "optionList": [{"option": "This winter!", "feedback": {"type": "npc", "content": "不对哦，这句话里的单词是winter（冬天），不是我们听到的内容，再听听看~", "npcName": "Brainy"}}, {"option": "This summer!", "feedback": {"type": "npc", "content": "太厉害啦！你准确听出了句子里的重点单词summer！", "npcName": "Brainy"}}], "answer": [1]}, {"question": {"content": "This summer!", "type": "npc", "npcName": "Brainy"}, "extendQuestion": {"content": "这句话的中文意思是“今天天气好冷”，对吗？", "type": "npc", "npcName": "Brainy"}, "optionList": [{"option": "对 / Yes", "feedback": {"type": "npc", "content": "summer是夏天的意思，夏天的天气特点不是冷哦，再想想~", "npcName": "Brainy"}}, {"option": "错 / No", "feedback": {"type": "npc", "content": "答对啦！你已经掌握了summer这个词，这句话的意思是“这个夏天！”，夏天天气很热，和我们听力里的内容刚好对应哦。", "npcName": "Brainy"}}], "answer": [1]}]}], "closing": {"type": "npc", "content": "很好！你已经回答完了全部问题，相信你已经听懂了这个任务中所有的重点句子。现在让我们来查看结果吧!", "npcName": "Brainy"}}

intermediate_json:
  {"学习过程配置": "```\n# 重点句子 1\n音频文本：This summer!\n讲解文本：刚刚听到的音频中，包含了一个关键单词 summer，意思是夏天，是表示季节的名词哦。\n1. 听音选句\nBrainy：仔细听音频，哪一个是你刚刚听到的句子呀？\n- This winter!\n  - Brainy：不对哦，这句话里的单词是winter（冬天），不是我们听到的内容，再听听看~\n- This summer! [正确]\n  - Brainy：太厉害啦！你准确听出了句子里的重点单词summer！\n\n2. 听音选意\nBrainy：这句话的中文意思是“今天天气好冷”，对吗？\n- 对 / Yes\n  - Brainy：summer是夏天的意思，夏天的天气特点不是冷哦，再想想~\n- 错 / No [正确]\n  - Brainy：答对啦！你已经掌握了summer这个词，这句话的意思是“这个夏天！”，夏天天气很热，和我们听力里的内容刚好对应哦。\n---\n# 完成反馈\nBrainy：很好！你已经回答完了全部问题，相信你已经听懂了这个任务中所有的重点句子。现在让我们来查看结果吧!\n```", "互动描述": "You meet fishing uncle Jack, talk with him and know it's super hot summer, you don't have shorts and the pair you need is between the rocks.（你遇到了钓鱼的杰克叔叔，和他交流后得知现在是酷热的夏天，你没有短裤，你需要的那条在岩石之间。）\nYou tell Jack you need the shorts between the rocks and ask him to help you get that pair of shorts, and Jack understands your request.（你告诉杰克你需要岩石之间的短裤，请求他帮你拿到那条短裤，杰克明白了你的诉求。）\nJack agrees to help you get the shorts that are placed between the rocks after you put forward your request politely.（在你礼貌提出请求后，杰克同意帮你去拿放在岩石之间的那条短裤。）"}

question_group_json:
  [{"preDialog": [{"type": "npc", "npcName": "Jack", "content": "Hello, kiddo. What's the matter?"}], "dialogList": [{"type": "npc", "npcName": "Jack", "content": "Why is your face so red?", "trans": "你的脸怎么这么红？", "isPoint": false}, {"type": "user", "content": "This summer! It feels so hot!", "trans": "今年夏天！天气太热了！", "isPoint": false}, {"type": "npc", "npcName": "Jack", "content": "Do you have any shorts?", "trans": "你有短裤吗？", "isPoint": false}, {"type": "user", "content": "No, I don't have shorts.", "trans": "不，我没有短裤。", "isPoint": false}, {"type": "user", "content": "I need the shorts between those rocks.", "trans": "我需要那些岩石中间的短裤。", "isPoint": false}, {"type": "npc", "npcName": "Jack", "content": "I see.", "trans": "我明白了。", "isPoint": false}, {"type": "user", "content": "Could you help me get the shorts?", "trans": "你能帮我拿一下短裤吗？", "isPoint": false}, {"type": "user", "content": "Please!", "trans": "拜托了！", "isPoint": false}], "questionList": [{"type": "npc", "npcName": "Sue", "content": "What season is it?", "optionList": [{"option": "0000800_option_00.png", "feedback": {"type": "npc", "npcName": "Jack", "content": "I don't think so."}}, {"option": "0000800_option_01.png", "feedback": {"type": "npc", "npcName": "Jack", "content": "Yes. It is summer. It is hot."}}, {"option": "0000800_option_02.png", "feedback": {"type": "npc", "npcName": "Jack", "content": "I don't think so."}}], "answer": [1]}, {"type": "npc", "npcName": "Sue", "content": "What do you need?", "optionList": [{"option": "T-shirt.", "feedback": {"type": "npc", "npcName": "Jack", "content": "I didn't see it."}}, {"option": "Trousers.", "feedback": {"type": "npc", "npcName": "Jack", "content": "I didn't see them."}}, {"option": "Shorts.", "feedback": {"type": "npc", "npcName": "Jack", "content": "Got it."}}], "answer": [2]}, {"type": "npc", "npcName": "Sue", "content": "What should Jack do?", "optionList": [{"option": "0000800_option_03.png", "feedback": {"type": "npc", "npcName": "Jack", "content": "Got it."}}, {"option": "0000800_option_04.png", "feedback": {"type": "npc", "npcName": "Jack", "content": "I can't do that."}}, {"option": "0000800_option_05.png", "feedback": {"type": "npc", "npcName": "Jack", "content": "I can't do that."}}], "answer": [0]}], "postDialog": []}]


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-08 17:02:16
updated_at: 2026-05-08 17:02:16
raw_config:
[cell repeats an earlier one in this file: 911 characters]

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

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

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

study_info_json:
  {"learningPart": [{"leadIn": {"image": "0000800-01.png"}, "learning": [{"question": {"type": "npc", "npcName": "Brainy", "content": "你们整理好线索后，准备向Luisa教授汇报飞船坠落的推测位置，现在你需要先开口表达自己对飞船坠落地点的判断，你会说："}, "optionList": [{"option": "I think the spaceship fell...", "feedback": {"type": "npc", "npcName": "Brainy", "content": "太棒了！这句话正好可以用来引出你对飞船坠落位置的推测，符合当前汇报的场景需求。"}}, {"option": "I saw trees with...", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句话是用来描述你看到的树木特征，不是直接表达对飞船坠落位置的判断哦，再试一下吧。"}}, {"option": "I heard a loud noise in...", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句话是用来描述你听到声音的方位，不是直接表达对飞船坠落位置的推测哦，再试一下吧。"}}], "answer": [0], "write": {"desc": "I think the spaceship fell...", "trans": "我认为飞船坠落在……"}, "feedback": {"type": "npc", "npcName": "Brainy", "content": "你写的很好！"}}]}, {"leadIn": {"image": "0000800-00.png"}, "learning": [{"question": {"type": "npc", "npcName": "Brainy", "content": "你说完对飞船坠落位置的推测后，需要补充你在无人机照片里观察到的特殊树木特征作为线索，你会怎么说："}, "optionList": [{"option": "I think the spaceship fell...", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句话是用来推测飞船坠落位置的，不是描述你看到的树木特征哦，再试一下吧。"}}, {"option": "I saw trees with...", "feedback": {"type": "npc", "npcName": "Brainy", "content": "答对啦！用这句话开头可以清晰地描述你观察到的树木相关线索，能给教授判断位置提供有效信息。"}}, {"option": "I heard a loud noise in...", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句话是用来描述你听到的声音信息，不是描述看到的树木特征哦，再试一下吧。"}}], "answer": [1], "write": {"desc": "I saw trees with...", "trans": "我看到有…… 的树。"}, "feedback": {"type": "npc", "npcName": "Brainy", "content": "你写的很好！"}}, {"question": {"type": "npc", "npcName": "Brainy", "content": "说完视觉线索后，你还需要补充当时你在森林里听到的异常声响线索，你会怎么说："}, "optionList": [{"option": "I think the spaceship fell...", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句话是用来推测飞船坠落位置的，不是描述你听到的声响线索哦，再试一下吧。"}}, {"option": "I saw trees with...", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这句话是用来描述你看到的树木特征，不是描述听到的声音信息哦，再试一下吧。"}}, {"option": "I heard a loud noise in...", "feedback": {"type": "npc", "npcName": "Brainy", "content": "太好啦！这句话正好可以用来描述你听到声响的方位，能辅助教授进一步确认飞船坠落的位置。"}}], "answer": [2], "write": {"desc": "I heard a loud noise in...", "trans": "我听到…… 方向有巨大的声音。"}, "feedback": {"type": "npc", "npcName": "Brainy", "content": "你写的很好！"}}]}], "closing": {"type": "npc", "npcName": "Brainy", "content": "恭喜你，可以使用准确的句型 I think the spaceship fell...、I saw trees with...、I heard a loud noise in...，完整描述飞船坠落的推测位置、观察到的树木特征和听到的声响线索，完成了给Luisa教授的汇报内容！"}}

intermediate_json:
  {"学习流程配置": "```\n# 问题1：\nBrainy: 你们整理好线索后，准备向Luisa教授汇报飞船坠落的推测位置，现在你需要先开口表达自己对飞船坠落地点的判断，你会说：\n用户选项:\n（选项 A）I think the spaceship fell... [正确]\n  Brainy: 太棒了！这句话正好可以用来引出你对飞船坠落位置的推测，符合当前汇报的场景需求。\n（选项 B）I saw trees with...\n  Brainy: 这句话是用来描述你看到的树木特征，不是直接表达对飞船坠落位置的判断哦，再试一下吧。\n（选项 C）I heard a loud noise in...\n  Brainy: 这句话是用来描述你听到声音的方位，不是直接表达对飞船坠落位置的推测哦，再试一下吧。\n\n# 问题2：\nBrainy: 你说完对飞船坠落位置的推测后，需要补充你在无人机照片里观察到的特殊树木特征作为线索，你会怎么说：\n用户选项:\n（选项 A）I think the spaceship fell...\n  Brainy: 这句话是用来推测飞船坠落位置的，不是描述你看到的树木特征哦，再试一下吧。\n（选项 B）I saw trees with... [正确]\n  Brainy: 答对啦！用这句话开头可以清晰地描述你观察到的树木相关线索，能给教授判断位置提供有效信息。\n（选项 C）I heard a loud noise in...\n  Brainy: 这句话是用来描述你听到的声音信息，不是描述看到的树木特征哦，再试一下吧。\n\n# 问题3：\nBrainy: 说完视觉线索后，你还需要补充当时你在森林里听到的异常声响线索，你会怎么说：\n用户选项:\n（选项 A）I think the spaceship fell...\n  Brainy: 这句话是用来推测飞船坠落位置的，不是描述你听到的声响线索哦，再试一下吧。\n（选项 B）I saw trees with...\n  Brainy: 这句话是用来描述你看到的树木特征，不是描述听到的声音信息哦，再试一下吧。\n（选项 C）I heard a loud noise in... [正确]\n  Brainy: 太好啦！这句话正好可以用来描述你听到声响的方位，能辅助教授进一步确认飞船坠落的位置。\n```", "互动描述": "Dear Alex, I hope this email finds you well. We can take care of each other.（亲爱的亚历克斯，我希望你一切都好。我们可以互相照顾。）"}

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

eval_info_json:
  {"title": "报告飞船坠毁事件", "taskDesc": "请根据图片内容，用英文写一段求救报告，说明你们现在的处境、遇到的困难和需要的帮助。", "sceneDesc": "在森林中，Otis、Skylar 和你通过小熊猫 Bam 和无人机照片搜集到了关于飞船坠落的重要线索。你们需要将这些信息整理并汇报给 Luisa 教授，以便确定飞船的具体坠落位置。", "knowledge": "- 地点描述 I think the spaceship fell...  我认为飞船坠落在…… I saw trees with...  我看到有…… 的树。 I 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: 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-08 17:02:18
updated_at: 2026-05-08 17:02:18
raw_config:
[cell repeats an earlier one in this file: 770 characters]

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

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

study_info_json:
  {"learningPart": [{"leadIn": {"image": "0000800-00.png"}, "learning": [{"question": {"type": "npc", "npcName": "Brainy", "content": "现在你要填写护理报告的动物种类栏，需要告诉大家今天护理的动物是大象，你应该怎么填？"}, "optionList": [{"option": "Elephant", "feedback": {"type": "npc", "npcName": "Brainy", "content": "答对啦！elephant就是“大象”的意思，准确填出了本次护理的动物种类~"}}, {"option": "Banana", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，banana是“香蕉”，是大象吃的食物，不是动物种类，再想想吧。"}}, {"option": "Shower", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，shower是“洗澡、淋浴”，是今天给大象做的护理项目，不是动物种类，再试试呀。"}}], "answer": [0], "write": {"desc": "Elephant", "trans": "大象"}, "feedback": {"type": "npc", "npcName": "Brainy", "content": "你写的很好！"}}]}, {"leadIn": {"image": "0000800-01.png"}, "learning": [{"question": {"type": "npc", "npcName": "Brainy", "content": "接下来要填写大象今天吃的食物，你记得今天喂了它香蕉，应该怎么填在“Food”的横线上呢？"}, "optionList": [{"option": "elephants", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，elephants是“大象”的复数形式，不是食物，再想想我们喂给大象吃的是什么~"}}, {"option": "bananas", "feedback": {"type": "npc", "npcName": "Brainy", "content": "太棒了！banana是“香蕉”，这里用复数形式准确表示大象吃了若干根香蕉，填得很对！"}}, {"option": "a shower", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，a shower是“一次淋浴”，是清洁项目，不是食物哦，再想想吧。"}}], "answer": [1], "write": {"desc": "bananas", "trans": "香蕉"}, "feedback": {"type": "npc", "npcName": "Brainy", "content": "你写的很好！"}}]}, {"leadIn": {"image": "0000800-02.png"}, "learning": [{"question": {"type": "npc", "npcName": "Brainy", "content": "现在要填写清洁护理部分的内容，今天你给大象洗了澡，应该怎么填在“Cleaning”的横线上呢？"}, "optionList": [{"option": "a shower", "feedback": {"type": "npc", "npcName": "Brainy", "content": "完全正确！have a shower就是“洗澡”的意思，准确记录了今天给大象做的清洁护理~"}}, {"option": "bananas", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，bananas是香蕉，属于食物部分的内容，不是清洁项目，再试试呀。"}}, {"option": "elephant", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，elephant是大象，是我们护理的对象，不是清洁项目哦，再想想吧。"}}], "answer": [0], "write": {"desc": "a shower", "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": "太厉害啦！你准确用“love(s) + 喜爱的事物”的结构表达出了大象的喜好，完全符合表达要求~"}}, {"option": "The elephant loves beds and apples!", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，这个句子说大象喜欢床和苹果，和我们今天记录的大象喜欢洗澡、香蕉的事实不符，而且也没有用到今天学的相关词汇，再试试吧。"}}, {"option": "The elephant is eating bananas.", "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）Elephant [正确]\n  Brainy: 答对啦！elephant就是“大象”的意思，准确填出了本次护理的动物种类~\n（选项 B）Banana\n  Brainy: 不对哦，banana是“香蕉”，是大象吃的食物，不是动物种类，再想想吧。\n（选项 C）Shower\n  Brainy: 不对哦，shower是“洗澡、淋浴”，是今天给大象做的护理项目，不是动物种类，再试试呀。\n\n# 问题2：\nBrainy: 接下来要填写大象今天吃的食物，你记得今天喂了它香蕉，应该怎么填在“Food”的横线上呢？\n用户选项:\n（选项 A）elephants\n  Brainy: 不对哦，elephants是“大象”的复数形式，不是食物，再想想我们喂给大象吃的是什么~\n（选项 B）bananas [正确]\n  Brainy: 太棒了！banana是“香蕉”，这里用复数形式准确表示大象吃了若干根香蕉，填得很对！\n（选项 C）a shower\n  Brainy: 不对哦，a shower是“一次淋浴”，是清洁项目，不是食物哦，再想想吧。\n\n# 问题3：\nBrainy: 现在要填写清洁护理部分的内容，今天你给大象洗了澡，应该怎么填在“Cleaning”的横线上呢？\n用户选项:\n（选项 A）a shower [正确]\n  Brainy: 完全正确！have a shower就是“洗澡”的意思，准确记录了今天给大象做的清洁护理~\n（选项 B）bananas\n  Brainy: 不对哦，bananas是香蕉，属于食物部分的内容，不是清洁项目，再试试呀。\n（选项 C）elephant\n  Brainy: 不对哦，elephant是大象，是我们护理的对象，不是清洁项目哦，再想想吧。\n\n# 问题4：\nBrainy: 最后要总结大象的喜好，你知道大象喜欢洗澡和吃香蕉，要表达“大象喜爱洗澡和吃香蕉”，下面哪个句子是对的？\n用户选项:\n（选项 A）The elephant loves showers and bananas! [正确]\n  Brainy: 太厉害啦！你准确用“love(s) + 喜爱的事物”的结构表达出了大象的喜好，完全符合表达要求~\n（选项 B）The elephant loves beds and apples!\n  Brainy: 不对哦，这个句子说大象喜欢床和苹果，和我们今天记录的大象喜欢洗澡、香蕉的事实不符，而且也没有用到今天学的相关词汇，再试试吧。\n（选项 C）The elephant is eating bananas.\n  Brainy: 不对哦，这句话是说“大象正在吃香蕉”，是描述正在进行的动作，不是表达大象的喜好，不符合总结的要求哦。\n```", "互动描述": "Animal Keeper's Record Animal type: Elephant Food: She ate bananas. Cleaning: She had a shower today. What does she love? The elephant loves showers and bananas!（动物饲养员记录\n动物种类：大象\n食物：她吃了香蕉。\n清洁：她今天洗了个澡。\n她喜欢什么呢？\n这头大象喜欢洗澡和香蕉！）"}

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

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


script_id: JIjndhxT7obcUdxLQK7cd5HvnLe
script_title: L1-S2-U14-L1 到你上学啦 (组件录入测试-全量)
category: 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-08 17:02:23
updated_at: 2026-05-08 17:02:23
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-08 17:02:31
updated_at: 2026-05-08 17:02:31
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: 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-08 17:02:34
updated_at: 2026-05-08 17:02:34
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": "太棒啦！\"The job is important for us\" 准确表达了“这份工作对我们很重要”的意思，完全符合邮件里说明留在这里的原因的语境哦。"}}, {"option": "jobs", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，句子里的be动词是\"is\"，说明主语是单数，\"jobs\"是复数形式，和\"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 we have to stay\" 正好对应你要表达的“这就是为什么我们必须留下来”的含义，完美承接了前面说明的原因哦。"}}, {"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，现在想要进一步询问她到达的时间，你应该怎么说呢？"}, "optionList": [{"option": "When will you arrive?", "feedback": {"type": "npc", "npcName": "Brainy", "content": "答对啦！这句话准确询问了Rebecca什么时候会到达，完全符合你在邮件末尾询问她行程时间的需求哦。"}}, {"option": "When is you arrive?", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，\"arrive\"是实义动词，在疑问句里需要和助动词搭配，不能用be动词\"is\"，这个句子有语法错误，再试一下吧。"}}, {"option": "How is you arrive?", "feedback": {"type": "npc", "npcName": "Brainy", "content": "不对哦，首先这个句子存在语法错误，实义动词\"arrive\"不能和be动词\"is\"搭配使用，而且\"how\"是询问方式，你现在要询问的是到达的时间，不符合语义哦。"}}], "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: 你在邮件里想要说明这份探索工作对你们很重要，现在需要完成这个句子的表达：The ____ is important for us. 你应该选择哪个词填入横线？\n用户选项:\n（选项 A）job [正确]\n  Brainy: 太棒啦！\"The job is important for us\" 准确表达了“这份工作对我们很重要”的意思，完全符合邮件里说明留在这里的原因的语境哦。\n（选项 B）jobs\n  Brainy: 不对哦，句子里的be动词是\"is\"，说明主语是单数，\"jobs\"是复数形式，和\"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 we have to stay\" 正好对应你要表达的“这就是为什么我们必须留下来”的含义，完美承接了前面说明的原因哦。\n（选项 B）how\n  Brainy: 不对哦，\"how\"是用来表达方式的，填入的话句子会变成“这就是我们得怎么留下”，不符合你要说明留下来的原因的语境，再想想呀。\n（选项 C）which\n  Brainy: 不对哦，\"which\"是“哪一个”的意思，填入后句子语义不通顺，不能表达你要说明留在这里的原因的意图，再试一次吧。\n\n# 问题3：\nBrainy: 你已经在邮件里问了Rebecca会不会来Wander Port，现在想要进一步询问她到达的时间，你应该怎么说呢？\n用户选项:\n（选项 A）When will you arrive? [正确]\n  Brainy: 答对啦！这句话准确询问了Rebecca什么时候会到达，完全符合你在邮件末尾询问她行程时间的需求哦。\n（选项 B）When is you arrive?\n  Brainy: 不对哦，\"arrive\"是实义动词，在疑问句里需要和助动词搭配，不能用be动词\"is\"，这个句子有语法错误，再试一下吧。\n（选项 C）How is you arrive?\n  Brainy: 不对哦，首先这个句子存在语法错误，实义动词\"arrive\"不能和be动词\"is\"搭配使用，而且\"how\"是询问方式，你现在要询问的是到达的时间，不符合语义哦。\n```", "互动描述": "Dear Rebecca, I know you are worried. But this is our best chance to explore Wander Port. The job is important for us. That's why we have to stay. Will you come to Wander Port some day? When will you arrive?（亲爱的丽贝卡：我知道你很担心。但这是我们探索漫游港的最佳机会。这项任务对我们很重要。这就是我们必须留下来的原因。你将来会来漫游港吗？你什么时候会到呀？）"}

text_info_json:
[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_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-08 17:02:40
updated_at: 2026-05-08 17:02:40
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?\".（你完成了“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-08 17:02:40
updated_at: 2026-05-08 17:02:40
final_config_json:
  {"cType": "mid_message_fillin", "cId": "0000800", "title": "填写信息表", "resourceMapping": {"Vicky": 658}, "cDesc": "You finished 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: 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-08 17:02:40
updated_at: 2026-05-08 17:02:40
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": "The job is important for us.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "太对啦！你准确表达了“这份工作（探索任务）对我们很重要”的含义，符合邮件里说明任务价值的语境。"}}, {"option": "The jobs are important for us.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这里你用了复数形式jobs，但我们现在说的是留在Wander Port探索这一项任务，是单数概念，所以不合适哦，再试一下吧。"}}, {"option": "The projects are important for us.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "projects表示“项目”，是复数形式，这里我们要表达的是单数的探索任务，不符合语境，再试试呀。"}}], "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": "你需要在邮件里说明，正是因为这份任务很重要，所以你们必须留下来，你会怎么表达这个逻辑？"}, "optionList": [{"option": "That's how we have to stay.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "how是用来询问或说明方式的，这里你是要解释留下来的原因，不是留下来的方式，所以不符合哦，再想想吧。"}}, {"option": "That's why we have to stay.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "太棒了！你用“That's why...”准确引出了你们必须留下来的原因，完美契合邮件里解释决定的语境。"}}, {"option": "That's which we have to stay.", "feedback": {"type": "npc", "npcName": "Brainy", "content": "which通常用来引导定语从句指代事物，不能用来引导原因状语哦，这个表达不符合语法，再试一次吧。"}}], "answer": [1], "write": {"desc": "That's why we have to stay.", "trans": "这就是为什么我们必须留下来。"}, "feedback": {"type": "npc", "npcName": "Brainy", "content": "你写的很好！"}}]}, {"leadIn": {"desc": "Ask her when she will arrive."}, "learning": [{"question": {"type": "npc", "npcName": "Brainy", "content": "你在邮件末尾想要询问Rebecca如果来Wander Port的话，什么时候会抵达，你会怎么问？"}, "optionList": [{"option": "when is you arrive?", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这个表达有语法错误哦，arrive是实义动词，提问时需要用助动词do/does/will，不能用is，再调整一下吧。"}}, {"option": "how is you arrive?", "feedback": {"type": "npc", "npcName": "Brainy", "content": "这个表达既有语法错误，意思也不对哦，how是询问方式的，我们这里要询问的是抵达的时间，不符合需求，再试试呀。"}}, {"option": "when will you arrive?", "feedback": {"type": "npc", "npcName": "Brainy", "content": "完全正确！你准确询问了对方到达的时间，和邮件里询问Rebecca行程的语境刚好匹配。"}}], "answer": [2], "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解释，这份探索任务对你们来说很重要，你会怎么说？\n用户选项:\n（选项 A）The job is important for us. [正确]\n  Brainy: 太对啦！你准确表达了“这份工作（探索任务）对我们很重要”的含义，符合邮件里说明任务价值的语境。\n（选项 B）The jobs are important for us.\n  Brainy: 这里你用了复数形式jobs，但我们现在说的是留在Wander Port探索这一项任务，是单数概念，所以不合适哦，再试一下吧。\n（选项 C）The projects are important for us.\n  Brainy: projects表示“项目”，是复数形式，这里我们要表达的是单数的探索任务，不符合语境，再试试呀。\n\n# 问题2：\nBrainy: 你需要在邮件里说明，正是因为这份任务很重要，所以你们必须留下来，你会怎么表达这个逻辑？\n用户选项:\n（选项 A）That's how we have to stay.\n  Brainy: how是用来询问或说明方式的，这里你是要解释留下来的原因，不是留下来的方式，所以不符合哦，再想想吧。\n（选项 B）That's why we have to stay. [正确]\n  Brainy: 太棒了！你用“That's why...”准确引出了你们必须留下来的原因，完美契合邮件里解释决定的语境。\n（选项 C）That's which we have to stay.\n  Brainy: which通常用来引导定语从句指代事物，不能用来引导原因状语哦，这个表达不符合语法，再试一次吧。\n\n# 问题3：\nBrainy: 你在邮件末尾想要询问Rebecca如果来Wander Port的话，什么时候会抵达，你会怎么问？\n用户选项:\n（选项 A）when is you arrive?\n  Brainy: 这个表达有语法错误哦，arrive是实义动词，提问时需要用助动词do/does/will，不能用is，再调整一下吧。\n（选项 B）how is you arrive?\n  Brainy: 这个表达既有语法错误，意思也不对哦，how是询问方式的，我们这里要询问的是抵达的时间，不符合需求，再试试呀。\n（选项 C）when will you arrive? [正确]\n  Brainy: 完全正确！你准确询问了对方到达的时间，和邮件里询问Rebecca行程的语境刚好匹配。\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,", "hint": ""}, {"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.", "hint": ""}, {"mode": "fillingInput", "desc": "The ____ is important for us.", "answerText": "job", "hint": "这份工作（job）对我们来说很重要。"}, {"mode": "fillingInput", "desc": "That's ____ we have to stay.", "answerText": "why", "hint": "这就是为什么（why）我们必须留下。"}, {"mode": "preset", "desc": "Will you come to Wander Port some day?", "answerText": "Will you come to Wander Port some day?", "hint": ""}, {"mode": "fillingInput", "desc": "If so, _________ you arrive?", "answerText": "when will", "hint": "如果是这样的话，你什么时候会（when will）到达？"}]}

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


