现在继续添加其他核心互动。

一. 合作听力
https://makee-interactive.feishu.cn/wiki/FrxtwNRQDizqiikPkATcBzTCnYe?table=tblBuFU6wVKdBh8B&view=vewADOHb4Y

输入: 教研配置-任务 + 教研配置-材料

补充:专有名词对照 部分  暂时预留。 后面单独处理。



# 中间字段

## 学习过程配置
```
你是一个少儿英语学习的出题专家。请根据以下任务信息，生成一个结构化的听力学习引导框架，帮助孩子逐步完成一篇听力中重点句子的学习。

# 你的任务
根据{听力材料}理解当前上下文， 针对{学习流程}中的句子生成一个 markdown 格式的教学流程。
这个任务的目标是引导孩子 1). 准确匹配耳中听到的句子和眼前看到的文本（完整匹配或仅匹配词汇/短语/句型），2). 准确匹配英文文本和中文意思，从而准确理解一个听力句子的意思。学习流程中，Brainy 将逐轮引导孩子仔细听音频句子、选择正确匹配的句子英文文本、选择正确的中文意思。

每一轮重点句子的学习包含以下内容：
1.一段对重点句子结尾【xxx】标记的重点内容(如未标记，则自行选择一段重点内容)的讲解文本。注意，重点内容要以 原型 单词/短语 来讲解， 不要增加 单复数、时态等变化。

2. 听音选句
   - Brainy引导出题: 描述题干
   - 选择题包含 2 个英文选项（1个正确选项，内容为当前重点句子，在其后标识出"[正确]" ， 1个干扰项。正确选项与干扰项的差异，需要围绕重点句子末尾用【xxx】标识的重点内容来设计；选项顺序随机）。
   - 每个选项配有 Brainy 的中文反馈：
     - 正确选项：语气积极的正反馈。
     - 错误选项：自然指出错误原因，避免批评，并鼓励再尝试。
  
3. 听音选意
   - Brainy 播放重点句子的音频（显示对应文本），提出一个选择题。
   - 选择题包含2个选项（1个正确选项，内容为当前重点句子的中文含义，在其后标识出"[正确]" + 1个干扰项。正确选项与干扰项的差异，围绕重点句子末尾用【xxx】标识的重点内容来设计；选项顺序随机）。
   - 每个选项配有 Brainy 的中文反馈：
     - 正确选项：再进一步解析一下正确答案中的重点词汇/短语/句型（非必须），夸奖用户掌握了句子意思。
     - 错误选项：简单说明混淆项哪里不对（避免出现正确选项里的信息），并鼓励再尝试。
 
 注意: 错误选项中的语义要与正确选项有明显区分。
 例如:
 1)
 正确选项: 无论违法者藏得多深，太空法庭都会找到并惩罚他们！（正确）
 好的错误选项设置: 无论侵入者藏得多深，太空法庭都会找到并惩罚他们！
 不好的错误选项设置(语义区分度差): 无论罪犯藏得多深，太空法庭都会找到并惩罚他们！
 2)
 正确选项: 加入我们，你将有一次激动人心的经历。（正确）
 好的错误选项设置: 加入我们，你将有一次愉快的沟通。
 不好的错误选项设置(语义区分度差): 加入我们，你将有一次愉快的旅行。 
     
     
     
全部重点句子都学完后，请附上一个任务完成反馈，用自然语言总结：用户已经完成全部题目，掌握了这篇听力中的所有重点句子。
注意，整个配置为一套线性的学习流程。已经考察过的题目及干扰项，后面需要变换，不要重复出现。

# 输出格式（请严格遵循）
```
# 重点句子 1
音频文本：{重点句子文本内容}
讲解文本：{对重点句子的重点内容的讲解文本}
1. 听音选句
Brainy：{题干，询问那个选项与播放的重点句子音频相对应} 
- {选项 A} 
  - Brainy：{选项 A 的反馈}  
- {选项 B}  
  - Brainy：{选项 B 的反馈}  
  
2. 听音选意
Brainy：{题干，询问该句英文对应的正确中文意思}  
- {选项 A}  
  - Brainy：{选项 A 的反馈}  
- {选项 B}  
  - Brainy：{选项 B 的反馈}  
---
# 重点句子 2
（同上结构）
---
# 重点句子 N
（同上结构）
---
# 完成反馈
Brainy：很好！你已经回答完了全部问题，相信你已经听懂了这个任务中所有的重点句子。现在让我们来查看结果吧!
```

# 注意事项
- 所有英文选项应为 CEFR A1/A2 水平，句子简短自然。英文使用英式拼写。
- Brainy 的反馈语气要亲切、鼓励、富有引导感。
- 正确选项位置随机，不总放第一个。
- 输出格式严格使用 markdown，无需附加其他解释或输入信息。
- 在输出的文本中，如果涉及英文专有词汇的中文翻译，当该英文词汇在 {专有词汇} 表中时， 请使用  {专有词汇}  表中的中文翻译。


# 输出样例
以下是一些完整的输出样例。

样例1
```
# 重点句子 1
音频文本： We have entered a storm
讲解文本：刚刚听到的音频中，包含了一个关键单词 storm，意思为暴风雨。正确的发音是 storm。
1. 听音选句
Brainy：接下来，我们来试试，你能不能听出以下哪一句话中，包含了关键词 storm。
- We have entered a storm. [正确]
  Brainy：太棒了！你准确听出了句子中的重点单词 storm！
- We have entered a forest.
  Brainy：Oops，这句话说到了 forest，并没有 storm 哦。再仔细听一听正确的选项吧！
2. 听音选意
Brainy：那这句话是什么意思呢？我们来试试吧！
- 我们进入了一个森林。  
  Brainy：这句话中，storm 是 “风暴”的意思，再仔细看看句子内容吧。
- 我们进入了一场风暴。[正确]  
  Brainy：没错！你不仅听懂了这句话，还掌握了 enter a storm 这个短语！
# 重点句子 2
音频文本： The ship is broken.
讲解文本：刚刚听到的音频中，包含了一个关键单词 broken，意思为破损的、坏的。正确的发音是 broken。
1. 听音选句
Brainy：接下来，我们来试试，你能不能听出以下哪一句话中，包含了关键词 broken。
- The ship is repaired.
  Brainy：这句话里没有出现 broken，出现了 repaired。再仔细听听正确答案里的音频内容吧！
- The ship is broken. [正确]
  Brainy：没错！你准确听出了句子里包含的关键词 broken。
 
2. 听音选意
Brainy：那这句话是什么意思呢？
- 船修好了。
  Brainy：句子里说的是 broken（坏了），而不是  repaired（修好了）哦，再选一次试试看～
- 船坏了。[正确]
  Brainy：Bingo！你不仅理解了句子意思，还掌握了  broken 这个词汇！
# 完成反馈
Brainy：很好！你已经回答完了全部问题，相信你已经听懂了这个任务中所有的重点句子。现在让我们来查看结果吧!
```



# 输入
{听力材料}:
   
{学习流程}:
   
{专有词汇}:
  
 
# 输出
如果{听力材料}和{学习流程句子}包含有效文本，则按上述要求输出配置内容。
如果{听力材料}或者{学习流程句子}内容为空，则直接输出"无"。
```

## 互动描述
```
# 任务目标
你是一个儿童英语学习内容生成助手。现在有一个听力理解互动配置，需要将其转写为对话记录中的叙事化描述，用于回顾剧情。

# 背景知识
- 听力理解是剧情中的核心互动，要求孩子聆听一份或多份音频材料（如录音、语音留言、对话片段等），并回答多个问题才能通过。
- 如果有多份听力材料（材料 1、材料 2…），则每份材料生成一条独立描述。
- 互动内容（即孩子听完材料并作答的过程）需要转写为自然的叙事描述。

# 输入信息
- 任务名称： 
- 听力材料： 
- 互动题目： 

# 输出要求
1. 每份听力材料生成一条自然叙事描述。
2. 多条描述之间用**换行分隔**，不要插入空白行。
3. 每条描述以英文为主，中文放在括号中，必须在同一行里。
4. 每条描述长度约 40–60 英文词，适合总结该材料的关键信息。
5. 每条描述必须包含对应材料中的核心信息，并结合正确答案来组织内容。
6. 描述要自然，像剧情推进，而不是答题总结。
7. 避免教学感，不能出现“问题”“选项”“正确答案”等字眼。
8. 输出时只返回最终的描述文本，不要解释，不要使用额外的样式。

# 输出示例
输入：
- 任务名称：紧急通知：避开风暴区域的危险
- 听力材料：
  材料 1: Edward: There is a danger! We have entered a storm. The storm is very strong. The ship is broken.
  材料 2: Pilot: We'll fall into the forest and maybe I'll die. Anyone who finds this black box must tell other animal arks: They must stay away from the storm!
- 互动题目： 4 个问题，略...

输出：
You listened to Edward’s recording and learned that the storm was very strong and the ship was broken. (你听了 Edward 的录音，得知风暴非常猛烈，飞船已经损坏。)  
You then heard the pilot’s last words: they would fall into the forest, and anyone who found the black box must warn the animal arks to stay away from the storm. (你随后听到飞行员的遗言：他们会坠入森林，找到黑匣子的人必须提醒动物方舟远离风暴。)
```

# 最终字段

## taskData
```
# 字段内容要求
{
    "cType": "core_listening_order", //固定
    "cId": {ID},
    "title": {用户任务配置}中的任务名称,
    "sceneDesc": {用户任务配置}中的任务背景,
    "img": "", //固定
    "key"(基于{用户任务知识}抽取): [
        {
            "desc": 类型名称定义,
            "keyList": [
                {
                    "type": "default", //固定
                    "content": 知识点内容,
                    "desc": 知识点解释
                },
                 ... ...
            ]
        },
        ...
    ],
    "cDesc": "" // {互动描述} 中的内容，保持内容不变，注意内容换行在 json 的转译,
}

# 输出格式
单行json输出。

样例:
{"cType":"core_listening_order","cId":"","title":"通过语音备忘录找到神秘人的线索。","sceneDesc":"在尘封的旧世界电脑中找到了神秘人留下的语音备忘录！看起来好像是说给自己的记录日志？不知道有没有留下关于去向的线索，和同行的伙伴们一起来听听看叭！","img":"","key":[{"desc":"物品类","keyList":[{"type":"default","content":"Journey","desc":"n. 旅行"},{"type":"default","content":"Adventure","desc":"n. 冒险"}]}],"cDesc":"You listened to the first black box recording, in which Edward warned about the strong storm and mentioned that the ship was broken. (你听了第一段黑匣子录音，Edward 警告说风暴很强，并提到飞船已经损坏。)\nYou then played the second recording where the pilot feared they might fall into the forest and urged anyone who found the black box to tell all animal arks to stay away from the storm. (你随后播放了第二段录音，飞行员担心他们会坠入森林，并恳请发现黑匣子的人告知所有动物方舟远离风暴。)"}

# 输入
{ID}:
 
{用户任务配置}:
 
{用户任务知识}:
 
{互动描述}：
 

# 输出
现在基于输入字段和格式要求，生成***可以直接解析的单行json文本***，***注意前后不要输出任何额外符号！！！***
如果{任务配置}中没有有效文本，则输出"无"。
```

## textData
```
# 要求
将给定的配置数据抽取 为以下格式:
{
        "audio"({听力材料} 中的每个# 材料  为1个item): [{
                "audioType": "xxx", //  在以下取值中选择:File(代表音频文件)，Message(代表语音消息)
                "audioTitle": "xxx", // 材料标题
                "audioSource": "xxx", // 音频文件名
                "audioText": "xxx" // ##材料内容 的  文本 部分
        }],
        "question"( 基于{题目配置} 抽取，每个题目为1个item): [{
                        "type": "npc",
                        "npcName": "xxx",
                        "content": "xxx", 
                        "optionList": [{
                                        "option": "xxx",
                                        "feedback": {
                                                "type": "npc",
                                                "npcName": "xxx",
                                                "content": "xxx"
                                        }
                                },
                                ... ...
                        ],
                        "answer": [int], // 正确选项对应的数组索引
                        "meaning": "xxx" // 学习意义
                },
                ... ...
        ]
}

补充规则:
1. 关于*npcName*字段的特殊规定： 
a.文本本身要严格与输入文本中一致，包括大小写。
b. 如果 {角色配置}非空，且其中提供了npcName名字对应的id，则npcName字段的取值都要追加id，用#连接。如未提供该npcName对应的id，则不需追加。
c.以上规则仅限于npcName字段。不适用于其他字段的文本(content、desc 等)。
例如:
---
角色配置: Tom: 45
则: npcName: Tom#45
      content: I will tell Tom.
---
角色配置: Jerry: 45
则: npcName: Tom
      content: Jerry is my sister.
---

2. content 、 desc 字段取值应与原始输入保持一致，不做改动。



# 输出格式
单行json输出。
样例:
{"audio": [{"audioType": "File", "audioTitle": "Recording Journal - Jul. 1st, AD 2025", "audioSource": "0000001_音频材料1", "audioText": "A: Do you mind if I close the curtains? I can’t see the television. The sun is too bright.\nB: I’d rather you didn’t. I’m writing a letter so I need some light. Come and sit on the sofa with me. You can see the screen from here and there is lots of room.\nA: But I like this armchair!\nB: Well, move it into the middle of the room then."}], "question": [{"type": "npc", "npcName": "Sarah", "content": "First off, we need to make sure robots aren't too big. Do you know how big the robots can be in the competition?", "optionList": [{"option": "Robots must be built no larger than 50 cm", "feedback": {"type": "npc", "npcName": "Sarah", "content": "Opps! You need to read carefully and do it again!"}}, {"option": "Robots must be built no larger than 10 cm", "feedback": {"type": "npc", "npcName": "Sarah", "content": "Nice! You are good at finding information!"}}], "answer": [1], "meaning": "能理解文章的整体结构与主旨信息"}, {"type": "npc", "npcName": "Otis", "content": "Do you know how big the robots can be in the competition?", "optionList": [{"option": "Robots must be built no larger than 80 cm", "feedback": {"type": "npc", "npcName": "Otis", "content": "Nice! You are good at finding information!"}}, {"option": "Robots must be built no larger than 100 cm", "feedback": {"type": "npc", "npcName": "Otis", "content": "Opps! You need to read carefully and do it again!"}}], "answer": [0], "meaning": "能提取与分析细节内容、时间顺序和人物行为"}]}


# 输入
{ID}:
 
{听力材料}:
 
{题目配置}:
 
{角色配置}:
 

# 输出
现在基于输入字段和格式要求，生成***可以直接解析的单行json文本***，***注意前后不要输出任何额外符号！！！***，直接以"{"开始输出。
如果{材料内容}中没有有效文本，则输出"无"。
```

## sequenceData
```
# 字段内容要求
基于 {流程编排}， 整理成sequence序列。

保持 {流程编排}中的顺序，根据不同类型分别处理:
{
  "sequence": [
    { "dialog": { "type": "npc", "npcName": "xxx", "content": "xxx" } }, // npc对话类型, 按格式抽取
   { "dialog": { "type": "user", "content": "..." } }, // user对话类型
    { "audio": [int] },   // 材料类型：被标记为:[材料x]，注意要转换成数字索引 x-1
    { "question": [int, ...] }, //问题类型list，被标记为:[题目x]，注意要转换成数字索引 x -1 
    ... ...
}

补充规则:
1. 关于*npcName*字段的特殊规定： 
a.文本本身要严格与输入文本中一致，包括大小写。
b. 如果 {角色配置}非空，且其中提供了npcName名字对应的id，则npcName字段的取值都要追加id，用#连接。如未提供该npcName对应的id，则不需追加。
c.以上规则仅限于npcName字段。不适用于其他字段的文本(content、desc 等)。
例如:
---
角色配置: Tom: 45
则: npcName: Tom#45
      content: I will tell Tom.
---
角色配置: Jerry: 45
则: npcName: Tom
      content: Jerry is my sister.
---

2. content 、 desc 字段取值应与原始输入保持一致，不做改动。

# 输出格式
单行json输出。
样例:
{"sequence": [{"dialog": {"type": "npc", "npcName": "Sarah", "content": "..."}}, {"dialog": {"type": "npc", "npcName": "Otis", "content": "..."}}, {"dialog": {"type": "user", "content": "..."}}, {"audio": [0]}, {"dialog": {"type": "npc", "npcName": "Otis", "content": "..."}}, {"question": [0, 1]}, {"dialog": {"type": "npc", "npcName": "Otis", "content": "..."}}, {"dialog": {"type": "user", "content": "..."}}, {"question": [2]}]}

# 输入
{ID}:
 
{流程编排}:
 
{角色配置}:
 

# 输出
现在基于输入字段和格式要求，生成***可以直接解析的单行json文本***，***注意前后不要输出任何额外符号！！！***
（如果{材料配置}中没有有效文本，则直接输出"无"。）
```

## learningData
```
# 字段内容要求
基于{学习配置}内容整理成以下结构：
{
"learningPart"(每个重点句子对应的内容为一个item): 
        [    {
          "leadIn": { 
                "type": "npc", // 固定内容，必须包含
                "content": "xxx", //音频文本
                "npcName": "Brainy" //默认 除非配置中单独提供了其他角色
            },
          "content": "xxx",  // 讲解文本
          "type": "npc", // 固定内容，必须包含
          "npcName": "Brainy" //默认 除非配置中单独提供了其他角色
          "learning"(题目内容，每个题目为1个item): [{
               "question": { 
                    "type": "npc", // 固定内容，必须包含
                    "content": "xxx", //题干
                    "npcName": "xxx" //一般为Brainy
            },
                "optionList": [{
                     "option": "xxx", // 选项内容
                     "feedback": { 
                            "type": "npc", // 固定内容，必须包含
                            "content": "xxx", //反馈
                            "npcName": "xxx" //一般为Brainy
            },
                       }, 
                       ... ...
                ],
                 "answer": [int],  // 正确选项对应的数组索引
                 "meaning": "xxx" // 题目类型
                },
                ... ... (其他题目的解析内容) ]
            },
                ... ... （句子2、句子3 ... 的解析内容）
       ],
"closing": { 
                "type": "npc", // 固定内容，必须包含
                "content": "xxx", //总结
                "npcName": "xxx" //一般为Brainy
            },
}
注意:  双引号字符串文本中如果出现英文双引号，需要使用转义符  确保最终输出是合法的json。
# 输出格式
单行json输出。
样例:
{"closing":{"type":"npc","content":"很好！你已经回答完了全部问题，相信你已经听懂了这个任务中所有的重点句子。现在让我们来查看结果吧!","npcName":"Brainy"},"learningPart":[{"leadIn":{"type":"npc","content":"We have entered a storm.","npcName":"Brainy"},"type":"npc","content":"刚刚听到的音频中，包含了一个关键单词 \"storm\"，意思为暴风雨。正确的发音是","npcName":"Brainy","learning":[{"answer":[0],"meaning":"听音选句","optionList":[{"feedback":{"type":"npc","content":"太棒了！你准确听出了句子中的重点单词 storm！","npcName":"Brainy"},"option":"We have entered a storm"},{"feedback":{"type":"npc","content":"Oops，这句话说到了 forest，并没有 storm 哦。再仔细听一听正确的选项吧！","npcName":"Brainy"},"option":"We have entered a forest"}],"question":{"type":"npc","npcName":"Brainy","content":"接下来，我们来试试，你能不能听出以下那一句话中，包含了关键词 storm。"}},{"answer":[1],"meaning":"听音选意","optionList":[{"feedback":{"type":"npc","content":"这句话中，「storm」是「风暴」的意思，再仔细看看句子内容吧～","npcName":"Brainy"},"option":"我们进入了一个森林。"},{"feedback":{"type":"npc","content":"没错！你不仅听懂了这句话，还掌握了「enter a storm」这个短语！","npcName":"Brainy"},"option":"我们进入了一场风暴"}],"question":{"type":"npc","npcName":"Brainy","content":"那这句话是什么意思呢？我们来试试吧！"}}]},{"leadIn":{"type":"npc","content":"The ship is broken.","npcName":"Brainy"},"content":"刚刚听到的音频中，包含了一个关键单词 broken，意思为破损的、坏的。正确的发音是","npcName":"Brainy","learning":[{"answer":[0],"meaning":"听音选句","optionList":[{"feedback":{"type":"npc","content":"没错！你准确听出了句子里包含的关键词 broken!","npcName":"Brainy"},"option":"The ship is broken"},{"feedback":{"type":"npc","content":"这句话里没有出现 broken，出现了 repaired。再仔细听听正确答案里的音频内容吧！","npcName":"Brainy"},"option":"The ship is repaired"}],"question":{"type":"npc","npcName":"Brainy","content":"接下来，我们来试试，你能不能听出以下那一句话中，包含了关键词 broken。"}},{"answer":[1],"meaning":"听音选意","optionList":[{"feedback":{"type":"npc","content":"句子里说的是「broken」（坏了），而不是「repaired」（修好了）哦，再选一次试试看～","npcName":"Brainy"},"option":"船修好了"},{"feedback":{"type":"npc","content":"Bingo！你不仅理解了句子意思，还掌握了「broken」这个词汇！","npcName":"Brainy"},"option":"船坏了。"}],"question":{"type":"npc","npcName":"Brainy","content":"那这句话是什么意思呢?"}}]}]}

# 输入
{学习配置}:
   

# 输出
现在基于输入字段和格式要求，生成***可以直接解析的单行json文本***，***注意前后不要输出任何额外符号！！！*** 以"{"开始输出。
（如果{学习配置}中没有有效文本，则直接输出"无"。）
```

二. 听力拖拽
https://makee-interactive.feishu.cn/wiki/K3QrwQnWqiPBm1krhnNcWDTqnhe?table=tblOOAsgYoZWsTGJ&view=vewADOHb4Y

输入: 教研配置-导览配置 + 教研配置-互动配置

# 中间字段
## 学习过程配置
```
你是一个少儿英语学习的出题专家。请根据以下任务信息，生成一个结构化的听力学习引导框架，帮助孩子逐步完成一篇听力中重点句子的学习。

# 你的任务
根据{听力材料}理解当前上下文，结合{关联知识}中的内容， 针对{学习流程}中的句子生成一个 markdown 格式的教学流程。
这个任务的目标是引导孩子 1). 准确匹配耳中听到的句子和眼前看到的文本（完整匹配或仅匹配词汇/短语/句型），2). 准确匹配英文文本和中文意思，从而准确理解一个听力句子的意思。学习流程中，Brainy 将逐轮引导孩子仔细听音频句子、选择正确匹配的句子英文文本、选择正确的中文意思。

每一轮重点句子的学习包含以下内容：
1.一段对重点句子结尾【xxx】标记的重点内容(如未标记，则自行选择一段重点内容)的讲解文本。注意，重点内容要以 原型 单词/短语 来讲解， 不要增加 单复数、时态等变化。

2. 听音选句
   - Brainy引导出题: 描述题干
   - 选择题包含 2 个英文选项（1个正确选项，内容为当前重点句子，在其后标识出"[正确]" ， 1个干扰项。正确选项与干扰项的差异，需要围绕重点句子末尾用【xxx】标识的重点内容来设计；选项顺序随机）。
   - 每个选项配有 Brainy 的中文反馈：
     - 正确选项：语气积极的正反馈。
     - 错误选项：自然指出错误原因，避免批评，并鼓励再尝试。
  
3. 听音选意
   - Brainy 播放重点句子的音频（显示对应文本），提出一个选择题。
   - 选择题题目设置为 「这句话的中文意思」，然后使用自然流畅的过渡词问用户说的这个意思对不对。
   - 选择题包含2个选项：对 / Yes   错 / No
   - 每个选项配有 Brainy 的中文反馈：
     - 正确选项：再进一步解析一下正确答案中的重点词汇/短语/句型（非必须），夸奖用户掌握了句子意思。
     - 错误选项：简单说明哪里不对（避免出现正确选项里的信息），并鼓励再尝试。     
   - 正确选项不要都集中在“对 / Yes”上面，需要有对应的正确选项为“错 / No”。
     
全部重点句子都学完后，请附上一个任务完成反馈，用自然语言总结：用户已经完成全部题目，掌握了这篇听力中的所有重点句子。
注意，整个配置为一套线性的学习流程。已经考察过的题目及干扰项，后面需要变换，不要重复出现。

# 输出格式（请严格遵循）
```
# 重点句子 1
音频文本：{重点句子文本内容}
讲解文本：{对重点句子的重点内容的讲解文本}
1. 听音选句
Brainy：{题干，询问那个选项与播放的重点句子音频相对应} 
- {选项 A} 
  - Brainy：{选项 A 的反馈}  
- {选项 B}  
  - Brainy：{选项 B 的反馈}  
  
2. 听音选意
Brainy：{题干，询问该句英文对应的正确中文意思}  
- {选项 A}  
  - Brainy：{选项 A 的反馈}  
- {选项 B}  
  - Brainy：{选项 B 的反馈}  
---
# 重点句子 2
（同上结构）
---
# 重点句子 N
（同上结构）
---
# 完成反馈
Brainy：很好！你已经回答完了全部问题，相信你已经听懂了这个任务中所有的重点句子。现在让我们来查看结果吧!
```

# 注意事项
- 所有英文选项应为 CEFR A1/A2 水平，句子简短自然。英文使用英式拼写。
- Brainy 的反馈语气要亲切、鼓励、富有引导感。
- 正确选项位置随机，不总放第一个。
- 输出格式严格使用 markdown，无需附加其他解释或输入信息。
- 在输出的文本中，如果涉及英文专有词汇的中文翻译，当该英文词汇在 {专有词汇} 表中时， 请使用  {专有词汇}  表中的中文翻译。


# 输出样例
以下是一些完整的输出样例。

样例1
```
# 重点句子 1
音频文本： We have entered a storm
讲解文本：刚刚听到的音频中，包含了一个关键单词 storm，意思为暴风雨。正确的发音是 storm。
1. 听音选句
Brainy：接下来，我们来试试，你能不能听出以下哪一句话中，包含了关键词 storm。
- We have entered a storm. [正确]
  Brainy：太棒了！你准确听出了句子中的重点单词 storm！
- We have entered a forest.
  Brainy：Oops，这句话说到了 forest，并没有 storm 哦。再仔细听一听正确的选项吧！
2. 听音选意
Brainy：“我们进入了一个森林”这句话的意思是这个吗？
- 对 / Yes  
  Brainy：这句话中，storm 是 “风暴”的意思，再仔细看看句子内容吧。
- 错 / No [正确]  
  Brainy：没错！你不仅听懂了这句话，还掌握了 enter a storm 这个短语！
# 重点句子 2
音频文本： The ship is broken.
讲解文本：刚刚听到的音频中，包含了一个关键单词 broken，意思为破损的、坏的。正确的发音是 broken。
1. 听音选句
Brainy：接下来，我们来试试，你能不能听出以下哪一句话中，包含了关键词 broken。
- The ship is repaired.
  Brainy：这句话里没有出现 broken，出现了 repaired。再仔细听听正确答案里的音频内容吧！
- The ship is broken. [正确]
  Brainy：没错！你准确听出了句子里包含的关键词 broken。
 
2. 听音选意
Brainy：“这艘船坏了”这句话的意思是这个吗？
- 对 / Yes [正确]
  Brainy：Bingo！你不仅理解了句子意思，还掌握了  broken 这个词汇！
- 错 / No
  Brainy：句子里说的是 broken（坏了），而不是  repaired（修好了）哦，再选一次试试看～

# 完成反馈
Brainy：很好！你已经回答完了全部问题，相信你已经听懂了这个任务中所有的重点句子。现在让我们来查看结果吧!
```



# 输入
{听力材料}:
   
{学习流程}:
   
{专有词汇}:
  
{关联知识}：
 
 
# 输出
如果{听力材料}和{学习流程句子}包含有效文本，则按上述要求输出配置内容。
如果{听力材料}或者{学习流程句子}内容为空，则直接输出"无"。
```

## 互动描述
```
# 任务目标
你是一个儿童英语学习内容生成助手。现在有一个听力理解互动配置，需要将其转写为对话记录中的叙事化描述，用于回顾剧情。

# 背景知识
- 听力理解是剧情中的核心互动，要求孩子聆听一份或多份音频材料（如录音、语音留言、对话片段等），并回答多个问题才能通过。
- 互动内容（即孩子听完材料并作答的过程）需要转写为自然的叙事描述。

# 输入信息
- 任务名称： 
- 题目材料： 

# 输出要求
1. 生成一条自然叙事描述。
2. 描述以英文为主，中文放在括号中，必须在同一行里。
3. 描述长度约 40–60 英文词，适合总结该材料的关键信息。
4. 描述必须包含对应材料中的核心信息，并结合正确答案来组织内容。
5. 描述要自然，像剧情推进，而不是答题总结。
6. 避免教学感，不能出现“问题”“选项”“正确答案”等字眼。
7. 输出时只返回最终的描述文本，不要解释，不要使用额外的样式。

# 输出示例
输出：
You listened to Barry's energetic rap and heard him boast about Speedy Monkey's harbour being the world's top with the fastest icebreaker. (你听了 Barry 充满活力的说唱，听到他夸耀 Speedy Monkey 的码头是世界顶尖的，拥有最快的破冰船。)  
```

# 最终字段

## taskData
```
# 字段内容要求
{
    "cType": "core_listening_drag", //固定
    "cId": {ID},
    "title": {用户任务配置}中的【任务标题】,
    "sceneDesc": {用户任务配置}中的【任务背景】,
    "key"(基于{用户任务知识}抽取): [
        {
            "desc": "", // 固定为空字符串
            "keyList": [
                {
                    "type": "default", //固定
                    "content": 知识点内容,
                    "desc": 知识点解释
                },
                 ... ...
            ]
        },
        ...
    ],
    "resourceMapping"(抽取出{角色配置}中的全部 name:id映射 可为空。id必须为int类型):
    {
    样例:
    "Tom":43,
    "Jerry":10
    },
    "cDesc": "" // {互动描述} 中的内容，保持内容不变，注意内容换行在 json 的转译
}

# 输出格式
单行json输出。
样例:
{"cType":"core_listening_drag","cId":"0000009","title":"通过语音备忘录找到神秘人的线索。","sceneDesc":"在尘封的旧世界电脑中找到了神秘人留下的语音备忘录！看起来好像是说给自己的记录日志？不知道有没有留下关于去向的线索，和同行的伙伴们一起来听听看叭！","key":[{"desc":"","keyList":[{"type":"default","content":"Journey","desc":"n. 旅行"},{"type":"default","content":"Adventure","desc":"n. 冒险"}]}],"resourceMapping":{},"cDesc":"You listened to Barry's energetic rap and heard him boast about Speedy Monkey's harbour being the world's top with the fastest icebreaker. (你听了 Barry 充满活力的说唱，听到他夸耀 Speedy Monkey 的码头是世界顶尖的，拥有最快的破冰船。)  "}

# 输入
{ID}:
 
{用户任务配置}:
 
{用户任务知识}:
 
{角色配置}:
 
{互动描述}:
 

# 输出
现在基于输入字段和格式要求，生成***可以直接解析的单行json文本***，***注意前后不要输出任何额外符号！！！***
如果{任务配置}中没有有效文本，则输出"无"。
```

## preDialog
```
# 要求
将给定的{开场语}抽取为以下格式，注意如果{开场语}为无则为空，即[]:
[{
        "type": "npc",  // npc 或 user
        "npcName": "Brainy", // 如果type位user则没有该字段
        "content": "xxxxxx.",
}
......
]

# 输出格式
单行json输出。
样例1:
[{"type":"npc","npcName":"Brainy","content":"OK,let's try to the scene the scene together."}, {"type":"user","content":"OK,let's try to the scene the scene together."}]

样例2:
[{"type":"user","content":"OK,let's try to the scene the scene together."}]

样例3:
[]

# 输入
{开场语}:
 

# 输出
现在基于输入字段和格式要求，生成***可以直接解析的单行json文本***，***注意前后不要输出任何额外符号！！！***，直接以"["开始输出。
如果{材料内容}中没有有效文本，则输出"无"。
```

## dialogList
```
# 要求
将给定的配置数据抽取 为以下格式:
[
        [ // 每个文本对应一个，根据对话内容抽取
            {
                "type": "npc",
                "npcName": "Brainy",
                "content": "What's the color of the pliers?",
                "trans":"", // 结合整段文本内容给出这句话的翻译
                "isPoint": false // 如果这句话后面有（重点句）表示则为true，否则为false
            },
            {
                "type": "user", // 如果为user则没有npcName
                "content": "What's the color of the pliers?",
                "trans":"",
                "isPoint": true
            },
            {
                "type": "npc",
                "npcName": "Brainy",
                "content": "What's the color of the pliers?",
                "trans":"",
                "isPoint": true
            }
        ],
        ......
]

# 输出格式
单行json输出。
样例:
[[{"type":"npc","npcName":"Alex","content":"Do you mind if I turn up the volume?","trans":"你介意我把音量调大一点吗？","isPoint":false},{"type":"npc","npcName":"Alex","content":"I can’t hear the dialogue clearly.","trans":"我听不清对白。","isPoint":false},{"type":"npc","npcName":"Alex","content":"The neighbors are making too much noise outside.","trans":"邻居在外面太吵了。","isPoint":true},{"type":"npc","npcName":"User","content":"I’d rather you didn’t.","trans":"我宁愿你别这么做。","isPoint":false},{"type":"npc","npcName":"User","content":"I’m trying to concentrate on my work.","trans":"我正想专心工作呢。","isPoint":false},{"type":"npc","npcName":"User","content":"Put on some headphones instead—they’re right there on the table.","trans":"不如戴上耳机吧——就在桌子上。","isPoint":false},{"type":"npc","npcName":"Alex","content":"But I don’t like wearing headphones!","trans":"可我不喜欢戴耳机！","isPoint":true},{"type":"npc","npcName":"User","content":"Well, then maybe watch something without talking later.","trans":"那好吧，待会儿看个没对白的节目好了。","isPoint":false}],[{"type":"npc","npcName":"Alex","content":"Do you mind if I open the window?","trans":"你介意我开窗吗？","isPoint":false},{"type":"npc","npcName":"Alex","content":"It’s really stuffy in here.","trans":"这里实在太闷了。","isPoint":false},{"type":"npc","npcName":"Alex","content":"The air feels heavy after cooking.","trans":"做完饭后空气感觉很沉闷。","isPoint":true},{"type":"npc","npcName":"User","content":"I’d rather you didn’t.","trans":"我宁愿你别开。","isPoint":false},{"type":"npc","npcName":"User","content":"I just lit a candle and I don’t want the scent to blow away.","trans":"我刚点了一支香薰蜡烛，不想让香味散掉。","isPoint":false},{"type":"npc","npcName":"User","content":"You could use the fan—it’s quieter and won’t mess with the smell.","trans":"你可以用风扇——它更安静，也不会影响香味。","isPoint":false},{"type":"npc","npcName":"Alex","content":"But I prefer fresh air!","trans":"但我更喜欢新鲜空气！","isPoint":true},{"type":"npc","npcName":"User","content":"Fine, just open it a little—just for ten minutes.","trans":"好吧，那就开一点点——就十分钟。","isPoint":false}]]

# 输入
{听力材料}:
 

# 输出
现在基于输入字段和格式要求，生成***可以直接解析的单行json文本***，***注意前后不要输出任何额外符号！！！***，直接以"{"开始输出。
如果{材料内容}中没有有效文本，则输出"无"。
```

## questionList
```
# 要求
将给定的配置数据抽取 为以下格式:
[{
        "imageInfo": {
                "questionImg": "{ID}_question.png",
                "answerImg": "{ID}_answer.png"
        },
        "optionList": [{ // 根据{题目}中的选项图片编号抽取
                        "option": "{ID}_option_00.png"
                },
                {
                        "option": "{ID}_option_01.png"
                },
                {
                        "option": "{ID}_option_02.png"
                },
                {
                        "option": "{ID}_option_03.png"
                }
                ......
        ],
        "answer": [2, 4, 1], // 根据{题目}中的答案图片编号抽取
        "answerType": "" // {题目}如果为#单空选择则内容为"all"，否则为空，即""
}]

# 输出格式
单行json输出。
样例:
[{"imageInfo":{"questionImg":"012310_question.png","answerImg":"012310_answer.png"},"optionList":[{"option":"012310_option_00.png"},{"option":"012310_option_01.png"},{"option":"012310_option_02.png"},{"option":"012310_option_03.png"}],"answer":[2,1],"answerType":""}]

# 输入
{ID}:
 
{题目}:
 

# 输出
现在基于输入字段和格式要求，生成***可以直接解析的单行json文本***，***注意前后不要输出任何额外符号！！！***
（如果{材料配置}中没有有效文本，则直接输出"无"。）
```

## learningData
```
# 字段内容要求
基于{学习配置}内容整理成以下结构：
{
"learningPart"(每个重点句子对应的内容为一个item): [    {
        "type": "npc", // 固定内容，必须包含
        "npcName": "Brainy" //默认 除非配置中单独提供了其他角色
        "content": "xxx", //音频文本
        "learning":[{
                "question":{
                    "content": "xxx",  // 讲解文本
                    "type": "npc", // 固定内容，必须包含
                    "npcName": "Brainy" //默认 除非配置中单独提供了其他角色
                }
                "extendQuestion":{ // 从听音选句中Brainy说的话抽取
                    "content": "xxx",  // Brainy说的内容
                    "type": "npc", // 固定内容，必须包含
                    "npcName": "Brainy" //默认 除非配置中单独提供了其他角色
               },
                "optionList": [{ // 从听音选句中抽取
                     "option": "xxx", // 选项内容
                     "feedback": { 
                            "type": "npc", // 固定内容，必须包含
                            "content": "xxx", //反馈
                            "npcName": "xxx" //一般为Brainy
            },
                       }, 
                       ... ...
                ],
                 "answer": [int]  // 正确选项对应的数组索引
                },
            {
                "question":{
                    "content": "xxx",  // 音频文本
                    "type": "npc", // 固定内容，必须包含
                    "npcName": "Brainy" //默认 除非配置中单独提供了其他角色
                }
                "extendQuestion":{ // 从听音选意中Brainy说的话抽取
                    "content": "xxx",  // Brainy说的内容
                    "type": "npc", // 固定内容，必须包含
                    "npcName": "Brainy" //默认 除非配置中单独提供了其他角色
               },
               "optionList": [{// 从听音选意中抽取
                     "option": "xxx", // 选项内容
                     "feedback": { 
                            "type": "npc", // 固定内容，必须包含
                            "content": "xxx", //反馈
                            "npcName": "xxx" //一般为Brainy
                    },
                       }, 
                       ... ...
             ]
            }
]
            },
                ... ... （句子2、句子3 ... 的解析内容）
       ],
"closing": { 
                "type": "npc", // 固定内容，必须包含
                "content": "xxx", //总结
                "npcName": "xxx" //一般为Brainy
            },
}
注意:  双引号字符串文本中如果出现英文双引号，需要使用转义符  确保最终输出是合法的json。
# 输出格式
单行json输出。
样例:
{"learningPart":[{"type":"npc","npcName":"Brainy","content":"需要生产音频的，引用的句子文本","learning":[{"question":{"type":"npc","npcName":"Brainy","content":"你刚刚听到的音频当中，包含了tallest单词，意思为最高的。正确的发音时tallest."},"extendQuestion":{"type":"npc","npcName":"Brainy","content":"接下来我要问你一个问题，请你如实作答。"},"optionList":[{"option":"I'm sorry, Mia.","feedback":{"type":"npc","npcName":"Brainy","content":"太棒了！你正确地使用了 “I'm sorry.” 这个句型表达，真诚地向 Mia 表达了歉意。请大声朗读这句话吧！"}},{"option":"I'm happy to tell you.","feedback":{"type":"npc","npcName":"Brainy","content":"虽然冒险也是旅程的一部分，但原文更强调的是旅程（journey）而不是冒险（adventure）。再确认下正确答案吧。"}}],"answer":[0]},{"question":{"type":"npc","npcName":"Brainy","content":"How about there? Between the two tallest trees?"},"extendQuestion":{"type":"npc","npcName":"Brainy","content":"「那儿怎么样?在两棵最高的树之间?」这句话是这个意思吗?我说的是对还是错呢?"},"optionList":[{"option":"对","feedback":{"type":"npc","npcName":"Brainy","content":"太棒了！你正确地使用了 “I'm sorry.” 这个句型表达，真诚地向 Mia 表达了歉意。请大声朗读这句话吧！"}},{"option":"错","feedback":{"type":"npc","npcName":"Brainy","content":"虽然冒险也是旅程的一部分，但原文更强调的是旅程（journey）而不是冒险（adventure）。再确认下正确答案吧。"}}],"answer":[0]}]},{"type":"npc","npcName":"Brainy","content":"需要生产音频的，引用的句子文本","learning":[{"question":{"type":"npc","npcName":"Brainy","content":"你刚刚听到的音频当中，包含了beauty单词，意思为最高的。正确的发音时beauty."},"extendQuestion":{"type":"npc","npcName":"Brainy","content":"接下来我要问你一个问题，请你如实作答。"},"optionList":[{"option":"I'm sorry, Mia.","feedback":{"type":"npc","npcName":"Brainy","content":"太棒了！你正确地使用了 “I'm sorry.” 这个句型表达，真诚地向 Mia 表达了歉意。请大声朗读这句话吧！"}},{"option":"I'm happy to tell you.","feedback":{"type":"npc","npcName":"Brainy","content":"虽然冒险也是旅程的一部分，但原文更强调的是旅程（journey）而不是冒险（adventure）。再确认下正确答案吧。"}}],"answer":[0]},{"question":{"type":"npc","npcName":"Brainy","content":"How about there? Between the two beauty trees?"},"extendQuestion":{"type":"npc","npcName":"Brainy","content":"「那儿怎么样?是最美丽的树之间?」这句话是这个意思吗?我说的是对还是错呢?"},"optionList":[{"option":"对","feedback":{"type":"npc","npcName":"Brainy","content":"太棒了！你正确地使用了 “I'm sorry.” 这个句型表达，真诚地向 Mia 表达了歉意。请大声朗读这句话吧！"}},{"option":"错","feedback":{"type":"npc","npcName":"Brainy","content":"虽然冒险也是旅程的一部分，但原文更强调的是旅程（journey）而不是冒险（adventure）。再确认下正确答案吧。"}}],"answer":[1]}]}],"closing":{"type":"npc","npcName":"Brainy","content":"喜你！你已经成功地完成了这个口语独白任务。你的道歉听起来非常真诚和清晰。希望 Mia 能够原谅你。你可以再把整个独白完整地说一遍，感受一下自己的进步。你真的很棒！"}}

# 输入
{学习配置}:
   

# 输出
现在基于输入字段和格式要求，生成***可以直接解析的单行json文本***，***注意前后不要输出任何额外符号！！！*** 以"{"开始输出。
（如果{学习配置}中没有有效文本，则直接输出"无"。）
```

三. 听力选择
https://makee-interactive.feishu.cn/wiki/Kwrcw6A4jip2sxkdLn4czd1knvf?table=tblH4xNpAmKJ7gEq&view=vewADOHb4Y

输入: 教研配置-导览配置 + 教研配置-互动配置

# 中间字段
## 学习过程配置
```
你是一个少儿英语学习的出题专家。请根据以下任务信息，生成一个结构化的听力学习引导框架，帮助孩子逐步完成一篇听力中重点句子的学习。

# 你的任务
根据{听力材料}理解当前上下文， 针对{学习流程}中的句子生成一个 markdown 格式的教学流程。
这个任务的目标是引导孩子 1). 准确匹配耳中听到的句子和眼前看到的文本（完整匹配或仅匹配词汇/短语/句型），2). 准确匹配英文文本和中文意思，从而准确理解一个听力句子的意思。学习流程中，Brainy 将逐轮引导孩子仔细听音频句子、选择正确匹配的句子英文文本、选择正确的中文意思。

每一轮重点句子的学习包含以下内容：
1.一段对重点句子结尾【xxx】标记的重点内容(如未标记，则自行选择一段重点内容)的讲解文本。注意，重点内容要以 原型 单词/短语 来讲解， 不要增加 单复数、时态等变化。

2. 听音选句
   - Brainy引导出题: 描述题干
   - 选择题包含 2 个英文选项（1个正确选项，内容为当前重点句子，在其后标识出"[正确]" ， 1个干扰项。正确选项与干扰项要有明显的差异，需要围绕重点句子末尾用【xxx】标识的重点内容来设计；选项顺序随机）。
   - 每个选项配有 Brainy 的中文反馈：
     - 正确选项：语气积极的正反馈。
     - 错误选项：自然指出错误原因，避免批评，并鼓励再尝试。
  
3. 听音选意
   - Brainy 播放重点句子的音频（显示对应文本），提出一个选择题。
   - 选择题题目设置为 「这句话的中文意思」，然后使用自然流畅的过渡词问用户说的这个意思对不对。
   - 选择题包含2个选项：对 / Yes   错 / No
   - 每个选项配有 Brainy 的中文反馈：
     - 正确选项：再进一步解析一下正确答案中的重点词汇/短语/句型（非必须），夸奖用户掌握了句子意思。
     - 错误选项：简单说明哪里不对（避免出现正确选项里的信息），并鼓励再尝试。    
   - 正确选项不要都集中在“对 / Yes”上面，需要有对应的正确选项为“错 / No” 
     
全部重点句子都学完后，请附上一个任务完成反馈，用自然语言总结：用户已经完成全部题目，掌握了这篇听力中的所有重点句子。
注意，整个配置为一套线性的学习流程。已经考察过的题目及干扰项，后面需要变换，不要重复出现。

# 输出格式（请严格遵循）
```
# 重点句子 1
音频文本：{重点句子文本内容}
讲解文本：{对重点句子的重点内容的讲解文本}
1. 听音选句
Brainy：{题干，询问那个选项与播放的重点句子音频相对应} 
- {选项 A} 
  - Brainy：{选项 A 的反馈}  
- {选项 B}  
  - Brainy：{选项 B 的反馈}  
  
2. 听音选意
Brainy：{题干，询问该句英文对应的正确中文意思}  
- {选项 A}  
  - Brainy：{选项 A 的反馈}  
- {选项 B}  
  - Brainy：{选项 B 的反馈}  
---
# 重点句子 2
（同上结构）
---
# 重点句子 N
（同上结构）
---
# 完成反馈
Brainy：很好！你已经回答完了全部问题，相信你已经听懂了这个任务中所有的重点句子。现在让我们来查看结果吧!
```

# 注意事项
- 所有英文选项应为 CEFR A1/A2 水平，句子简短自然。英文使用英式拼写。
- Brainy 的反馈语气要亲切、鼓励、富有引导感。
- 正确选项位置随机，不总放第一个。
- 输出格式严格使用 markdown，无需附加其他解释或输入信息。
- 在输出的文本中，如果涉及英文专有词汇的中文翻译，当该英文词汇在 {专有词汇} 表中时， 请使用  {专有词汇}  表中的中文翻译。


# 输出样例
以下是一些完整的输出样例。

样例1
```
# 重点句子 1
音频文本： We have entered a storm
讲解文本：刚刚听到的音频中，包含了一个关键单词 storm，意思为暴风雨。正确的发音是 storm。
1. 听音选句
Brainy：接下来，我们来试试，你能不能听出以下哪一句话中，包含了关键词 storm。
- We have entered a storm. [正确]
  Brainy：太棒了！你准确听出了句子中的重点单词 storm！
- We have entered a forest.
  Brainy：Oops，这句话说到了 forest，并没有 storm 哦。再仔细听一听正确的选项吧！
2. 听音选意
Brainy：“我们进入了一个森林”这句话的意思是这个吗？
- 对 / Yes  
  Brainy：这句话中，storm 是 “风暴”的意思，再仔细看看句子内容吧。
- 错 / No [正确]  
  Brainy：没错！你不仅听懂了这句话，还掌握了 enter a storm 这个短语！
# 重点句子 2
音频文本： The ship is broken.
讲解文本：刚刚听到的音频中，包含了一个关键单词 broken，意思为破损的、坏的。正确的发音是 broken。
1. 听音选句
Brainy：接下来，我们来试试，你能不能听出以下哪一句话中，包含了关键词 broken。
- The ship is repaired.
  Brainy：这句话里没有出现 broken，出现了 repaired。再仔细听听正确答案里的音频内容吧！
- The ship is broken. [正确]
  Brainy：没错！你准确听出了句子里包含的关键词 broken。
 
2. 听音选意
Brainy：“这艘船坏了”这句话的意思是这个吗？
- 错 / No
  Brainy：句子里说的是 broken（坏了），而不是  repaired（修好了）哦，再选一次试试看～
- 对 / Yes [正确]
  Brainy：Bingo！你不仅理解了句子意思，还掌握了  broken 这个词汇！
# 完成反馈
Brainy：很好！你已经回答完了全部问题，相信你已经听懂了这个任务中所有的重点句子。现在让我们来查看结果吧!
```



# 输入
{听力材料}:
   
{学习流程}:
   
{专有词汇}:
  
 
# 输出
如果{听力材料}和{学习流程句子}包含有效文本，则按上述要求输出配置内容。
如果{听力材料}或者{学习流程句子}内容为空，则直接输出"无"。
```

## 互动描述
```
# 任务目标
你是一个儿童英语学习内容生成助手。现在有一个听力理解互动配置，需要将其转写为对话记录中的叙事化描述，用于回顾剧情。

# 背景知识
- 听力理解是剧情中的核心互动，要求孩子聆听一份或多份音频材料（如录音、语音留言、对话片段等），并回答多个问题才能通过。
- 如果有多个题目材料（题目组1、题目组2…），则每个题目组生成一条独立描述。
- 互动内容（即孩子听完材料并作答的过程）需要转写为自然的叙事描述。

# 输入信息
- 任务名称： 
- 题目材料： 

# 输出要求
1. 每个题目材料生成一条自然叙事描述。
2. 多条描述之间用**换行分隔**，不要插入空白行。
3. 每条描述以英文为主，中文放在括号中，必须在同一行里。
4. 每条描述长度约 40–60 英文词，适合总结该材料的关键信息。
5. 每条描述必须包含对应材料中的核心信息，并结合正确答案来组织内容。
6. 描述要自然，像剧情推进，而不是答题总结。
7. 避免教学感，不能出现“问题”“选项”“正确答案”等字眼。
8. 输出时只返回最终的描述文本，不要解释，不要使用额外的样式。

# 输出示例
输出：
You listened to Edward’s recording and learned that the storm was very strong and the ship was broken. (你听了 Edward 的录音，得知风暴非常猛烈，飞船已经损坏。)  
You then heard the pilot’s last words: they would fall into the forest, and anyone who found the black box must warn the animal arks to stay away from the storm. (你随后听到飞行员的遗言：他们会坠入森林，找到黑匣子的人必须提醒动物方舟远离风暴。)
```

# 最终字段
## taskData
```
# 字段内容要求
{
    "cType": "core_listening_choose", //固定
    "cId": {ID},
    "title": {用户任务配置}中的【任务标题】,
    "sceneDesc": {用户任务配置}中的【任务背景】,
    "key"(基于{用户任务知识}抽取): [
        {
            "desc": "", // 固定
            "keyList": [
                {
                    "type": "default", //固定
                    "content": 知识点内容,
                    "desc": 知识点解释
                },
                 ... ...
            ]
        },
        ...
    ],
    "resourceMapping"(抽取出{角色配置}中的全部 name:id映射 可为空。id必须为int类型):
    {
    样例:
    "Tom":43,
    "Jerry":10
    },
    "cDesc": "" // {互动描述} 中的内容，保持内容不变，注意内容换行在 json 的转译
}

# 输出格式
单行json输出。
样例:
{"cType":"core_listening_choose","cId":"0000009","title":"通过语音备忘录找到神秘人的线索。","sceneDesc":"在尘封的旧世界电脑中找到了神秘人留下的语音备忘录！看起来好像是说给自己的记录日志？不知道有没有留下关于去向的线索，和同行的伙伴们一起来听听看叭！","key":[{"desc":"物品类","keyList":[{"type":"default","content":"Journey","desc":"n. 旅行"},{"type":"default","content":"Adventure","desc":"n. 冒险"}]}],"resourceMapping":{},"cDesc":"You listened to Bam’s first clue and heard him say the juice tasted sweet, just like the mango in his favorite mango cake. (你听了 Bam 的第一条线索，他说果汁尝起来甜甜的，就像他喜欢的芒果蛋糕里的芒果。)   Bam shared another hint, saying the sweet flavor reminded him of grape juice he’d tasted before. (Bam 又分享了一条线索，说这种甜味让他想起以前尝过的葡萄汁。)  "}

# 输入
{ID}:
 
{用户任务配置}:
 
{用户任务知识}:
 
{角色配置}:
 
{互动描述}:
 

# 输出
现在基于输入字段和格式要求，生成***可以直接解析的单行json文本***，***注意前后不要输出任何额外符号！！！***
如果{任务配置}中没有有效文本，则输出"无"。
```

## questionGroup
```
# 要求
将给定的配置数据抽取 为以下格式:
[
    { // 每个题目组为一个对象
        "preDialog": [ // 从{题目}中每个题目组的开场语部分提取，如果没有则为空，即[]
            {
                "type": "npc",
                "npcName": "xxx",
                "content": "xxxxxxxxxxx."
            },
            {
                "type": "npc",
                "npcName": "xxx",
                "content": "xxxxxxxxxxx."
            }
            ...
        ],
        "dialogList": [ // 从{题目}中每个题目组的听力文本部分提取
            {
                "type": "npc",
                "npcName": "Brainy",
                "content": "What's the color of the pliers?",
                "trans":"", // 结合整段文本内容给出这句话的翻译
                "isPoint": false // 如果这句话后面有（重点句）表示则为true，否则为false
            },
            {
                "type": "user", // 如果为user则没有npcName
                "content": "What's the color of the pliers?",
                "trans":"",
                "isPoint": true
            },
            ...
        ],
        "questionList": [ // 从{题目}中每个题目组的题目内容部分提取
        {
            "type": "npc",
            "npcName": "Brainy",
            "content": "xxxxxxxxxxxx",
            "optionList": [  // 如果题目类型为图片则按照ID_option_xx.png的格式提取，如果题目类型为文本则直接提取文本内容
                {
                        "option": "{ID}_option_00.png",
                        "feedback": 
                        {
                            "type": "npc",
                            "npcName": "xxx",
                            "content": "xxxxxx"
                        }
                },
                {
                        "option": "{ID}_option_01.png",
                        "feedback": 
                        {
                            "type": "npc",
                            "npcName": "xxx",
                            "content": "xxxxxx"
                        }
                },
                {
                        "option": "{ID}_option_02.png"
                        "feedback": 
                        {
                            "type": "npc",
                            "npcName": "xxx",
                            "content": "xxxxxx"
                        }
                },
                {
                        "option": "{ID}_option_03.png"
                        "feedback": 
                        {
                            "type": "npc",
                            "npcName": "xxx",
                            "content": "xxxxxx"
                        }
                }
                ......
            ],
            "answer": [1], // 根据选项下有正确标记的索引抽取，索引从0开始
        },
        ...
        ],
        "postDialog": [ // 从{题目}中每个题目组的结束语部分提取，如果没有则为空，即[]
            {
                "type": "npc",
                "npcName": "xxx",
                "content": "xxxxxxxxxxx."
            },
            {
                "type": "npc",
                "npcName": "xxx",
                "content": "xxxxxxxxxxx."
            }
            ...
        ],
    },
    ...
]

# 输出格式
单行json输出。

# 输入
{ID}:
 
{题目}:
 

# 输出
现在基于输入字段和格式要求，生成***可以直接解析的单行json文本***，***注意前后不要输出任何额外符号！！！***
（如果{材料配置}中没有有效文本，则直接输出"无"。）
```

## learningData
```
# 字段内容要求
基于{学习配置}内容整理成以下结构：
{
"learningPart"(每个重点句子对应的内容为一个item): [    {
        "type": "npc", // 固定内容，必须包含
        "npcName": "Brainy" //默认 除非配置中单独提供了其他角色
        "content": "xxx", //音频文本
        "learning":[{
                "question":{
                    "content": "xxx",  // 讲解文本
                    "type": "npc", // 固定内容，必须包含
                    "npcName": "Brainy" //默认 除非配置中单独提供了其他角色
                }
                "extendQuestion":{ // 从听音选句中Brainy说的话抽取
                    "content": "xxx",  // Brainy说的内容
                    "type": "npc", // 固定内容，必须包含
                    "npcName": "Brainy" //默认 除非配置中单独提供了其他角色
               },
                "optionList": [{ // 从听音选句中抽取
                     "option": "xxx", // 选项内容
                     "feedback": { 
                            "type": "npc", // 固定内容，必须包含
                            "content": "xxx", //反馈
                            "npcName": "xxx" //一般为Brainy
            },
                       }, 
                       ... ...
                ],
                 "answer": [int]  // 正确选项对应的数组索引
                },
            {
                "question":{
                    "content": "xxx",  // 音频文本
                    "type": "npc", // 固定内容，必须包含
                    "npcName": "Brainy" //默认 除非配置中单独提供了其他角色
                }
                "extendQuestion":{ // 从听音选意中Brainy说的话抽取
                    "content": "xxx",  // Brainy说的内容
                    "type": "npc", // 固定内容，必须包含
                    "npcName": "Brainy" //默认 除非配置中单独提供了其他角色
               },
               "optionList": [{// 从听音选意中抽取
                     "option": "xxx", // 选项内容
                     "feedback": { 
                            "type": "npc", // 固定内容，必须包含
                            "content": "xxx", //反馈
                            "npcName": "xxx" //一般为Brainy
                    },
                       }, 
                       ... ...
             ]
            }
]
            },
                ... ... （句子2、句子3 ... 的解析内容）
       ],
"closing": { 
                "type": "npc", // 固定内容，必须包含
                "content": "xxx", //总结
                "npcName": "xxx" //一般为Brainy
            },
}
注意:  双引号字符串文本中如果出现英文双引号，需要使用转义符  确保最终输出是合法的json。
# 输出格式
单行json输出。
样例:
{"learningPart":[{"type":"npc","npcName":"Brainy","content":"需要生产音频的，引用的句子文本","learning":[{"question":{"type":"npc","npcName":"Brainy","content":"你刚刚听到的音频当中，包含了tallest单词，意思为最高的。正确的发音时tallest."},"extendQuestion":{"type":"npc","npcName":"Brainy","content":"接下来我要问你一个问题，请你如实作答。"},"optionList":[{"option":"I'm sorry, Mia.","feedback":{"type":"npc","npcName":"Brainy","content":"太棒了！你正确地使用了 “I'm sorry.” 这个句型表达，真诚地向 Mia 表达了歉意。请大声朗读这句话吧！"}},{"option":"I'm happy to tell you.","feedback":{"type":"npc","npcName":"Brainy","content":"虽然冒险也是旅程的一部分，但原文更强调的是旅程（journey）而不是冒险（adventure）。再确认下正确答案吧。"}}],"answer":[0]},{"question":{"type":"npc","npcName":"Brainy","content":"How about there? Between the two tallest trees?"},"extendQuestion":{"type":"npc","npcName":"Brainy","content":"「那儿怎么样?在两棵最高的树之间?」这句话是这个意思吗?我说的是对还是错呢?"},"optionList":[{"option":"对","feedback":{"type":"npc","npcName":"Brainy","content":"太棒了！你正确地使用了 “I'm sorry.” 这个句型表达，真诚地向 Mia 表达了歉意。请大声朗读这句话吧！"}},{"option":"错","feedback":{"type":"npc","npcName":"Brainy","content":"虽然冒险也是旅程的一部分，但原文更强调的是旅程（journey）而不是冒险（adventure）。再确认下正确答案吧。"}}],"answer":[0]}]},{"type":"npc","npcName":"Brainy","content":"需要生产音频的，引用的句子文本","learning":[{"question":{"type":"npc","npcName":"Brainy","content":"你刚刚听到的音频当中，包含了beauty单词，意思为最高的。正确的发音时beauty."},"extendQuestion":{"type":"npc","npcName":"Brainy","content":"接下来我要问你一个问题，请你如实作答。"},"optionList":[{"option":"I'm sorry, Mia.","feedback":{"type":"npc","npcName":"Brainy","content":"太棒了！你正确地使用了 “I'm sorry.” 这个句型表达，真诚地向 Mia 表达了歉意。请大声朗读这句话吧！"}},{"option":"I'm happy to tell you.","feedback":{"type":"npc","npcName":"Brainy","content":"虽然冒险也是旅程的一部分，但原文更强调的是旅程（journey）而不是冒险（adventure）。再确认下正确答案吧。"}}],"answer":[0]},{"question":{"type":"npc","npcName":"Brainy","content":"How about there? Between the two beauty trees?"},"extendQuestion":{"type":"npc","npcName":"Brainy","content":"「那儿怎么样?是最美丽的树之间?」这句话是这个意思吗?我说的是对还是错呢?"},"optionList":[{"option":"对","feedback":{"type":"npc","npcName":"Brainy","content":"太棒了！你正确地使用了 “I'm sorry.” 这个句型表达，真诚地向 Mia 表达了歉意。请大声朗读这句话吧！"}},{"option":"错","feedback":{"type":"npc","npcName":"Brainy","content":"虽然冒险也是旅程的一部分，但原文更强调的是旅程（journey）而不是冒险（adventure）。再确认下正确答案吧。"}}],"answer":[1]}]}],"closing":{"type":"npc","npcName":"Brainy","content":"喜你！你已经成功地完成了这个口语独白任务。你的道歉听起来非常真诚和清晰。希望 Mia 能够原谅你。你可以再把整个独白完整地说一遍，感受一下自己的进步。你真的很棒！"}}

# 输入
{学习配置}:
   

# 输出
现在基于输入字段和格式要求，生成***可以直接解析的单行json文本***，***注意前后不要输出任何额外符号！！！*** 以"{"开始输出。
（如果{学习配置}中没有有效文本，则直接输出"无"。）
```


