auto-sync: unit_challenge 2026-04-10_15:54

This commit is contained in:
xiaoyan-bot 2026-04-10 15:54:52 +08:00
commit 21e7f295dd
27 changed files with 2063 additions and 0 deletions

View File

@ -0,0 +1,30 @@
---
name: unit_challenge_core
description: 单元挑战核心层永久固定无重大升级不改动存储所有题型共用的全局规则、通用资源、通用能力所有题型Skill统一引用无重复资源存储。
---
# Unit Challenge Core 单元挑战核心层(永久固定)
## 核心定位
所有单元挑战题型的公共依赖层,统一存储所有共用资源和能力,避免重复开发、重复存储,改动一次全题型生效。
## 通用资源(统一存储,全局唯一)
| 资源类型 | 内容 | 存储路径 | 复用说明 |
|---------|------|----------|----------|
| 全局规则 | 全题型阶段归属规则、能力标签分级规则、输出格式规范、解析标准模板、校验规则 | `/root/.openclaw/workspace-xiaoyan/MEMORY.md` | 所有题型统一引用,规则更新仅需修改此处 |
| 词库资源 | L1共享词库980词、L2共享词库1470词、超纲词黑名单 | `/root/.openclaw/workspace-xiaoyan/business_knowledge/` | 所有题型统一引用,词库更新仅需修改此处 |
| 通用模板 | 各题型输出模板、解析模板、评分标准模板 | `/root/.openclaw/workspace-xiaoyan/business_knowledge/templates/` | 所有题型统一引用,模板更新仅需修改此处 |
| 版本配置 | 各题型Skill版本号、规则迭代记录 | `/root/.openclaw/workspace-xiaoyan/business_knowledge/version/` | 统一管理版本,可回溯历史版本 |
## 通用能力(统一实现,全局调用)
所有能力已封装为通用接口各题型Skill直接调用无需单独开发
1. **超纲校验接口**:输入单词列表,返回是否超纲、超纲词列表
2. **格式校验接口**:输入题目内容+题型,返回是否符合格式规范、错误位置
3. **难度校验接口**:输入题目内容+难度等级,返回是否符合难度要求、问题点
4. **去重校验接口**:输入题包知识点列表,返回是否有重复知识点、重复位置
5. **质量评分接口**:输入题目内容+题型返回0-100分质量评分、扣分点
6. **多维表入库接口**:输入题目内容+题型,自动入库到互动知识库对应表格
## 对接规则(当前配置)
- ✅ 暂不对接其他外部系统CMS/教研系统等)
- ✅ 所有输出仅支持本地文件、飞书多维表两种形式
- ✅ 所有数据存储在当前工作区内,不对外传输
## 改动规则
- 非重大规则升级/词库全量更新,禁止修改本层内容
- 单个题型调优仅修改对应题型Skill不得改动核心层
- 核心层修改前必须经过业务负责人审批

View File

@ -0,0 +1,71 @@
---
name: unit_challenge_master
description: 单元挑战总控调度大脑,统一接收所有单元挑战生产需求,自动调度对应阶段、对应题型的技能执行生产,支持自定义题包组合、批量生产、质量校验、版本管理。触发关键词:单元挑战、出题、生成题包、听力题、阅读题、口语题、写作题、题包组合
---
# Unit Challenge Master 单元挑战总控Skill
## 核心功能
作为所有单元挑战题型的唯一对外入口,统一处理用户出题需求,自动完成「需求解析→阶段校验→题型调度→质量校验→结果输出」全流程,支持单题型生产和多题型自定义组合题包生产。
## 输入参数
| 参数 | 必填 | 格式示例 | 说明 |
|------|------|----------|------|
| 题型要求 | ✅ | `听力拖拽题5道+阅读完形填空3道``L1单元测试题包1套` | 支持两种格式:(1) 明确指定题型+题量;(2) 预制题包模板L1单元测试/L2单元测试/专项练习等) |
| 难度等级 | ✅ | `A级`/`L1第2阶段`/`Starters 2` | 难度等级或对应阶段 |
| 场景要求 | 🟢 | `场景为校园生活` | 指定题目整体场景,不指定则自动匹配知识点 |
| 知识点范围 | 🟢 | `限定S0-U0-L1单元知识点` | 指定知识点范围,不指定则自动匹配难度对应知识点 |
| 输出格式 | 🟢 | `多维表入库格式`/`教研文档格式` | 输出格式,默认教研文档格式 |
## 调度逻辑(自动执行,无需人工干预)
### 步骤1需求解析
自动识别用户需求中的阶段归属L1/L2、题型列表、题量、难度、场景要求
### 步骤2合法性校验
- 校验阶段与题型匹配比如L1阶段需求不能生产L2专属题型
- 校验难度与阶段匹配比如L1阶段难度不能超过Starters 3
- 校验知识点范围合规:知识点必须属于对应阶段词库
### 步骤3任务分发
- L1阶段需求→分发到L1执行器调用对应L1专属/共用题型技能
- L2阶段需求→分发到L2执行器调用对应L2专属/共用题型技能
- 多题型组合需求→按题型分别分发,并行生产
### 步骤4质量校验自动执行
所有生成的题目自动经过三层质量校验:
1. 超纲校验:所有词汇必须属于对应阶段词库
2. 格式校验:符合对应题型输出规范
3. 难度校验:听力文本长度/选项复杂度等符合难度要求
4. 去重校验:同一题包内知识点不重复考察
### 步骤5结果输出
按照要求格式输出,支持:
- 教研文档格式:带解析、能力项、评分标准
- 多维表入库格式:直接对接互动知识库多维表自动入库
- 批量导出格式导出为JSON/Excel格式
## 内置模块(全部启用)
### 1. 自定义题包组合模块
支持任意题型组合,示例需求:
- `生成一套L1单元测试题听力拖拽题3道+听力选图题3道+口语看图回答2道+口语日常回答2道`
- `生成一套L2专项练习题阅读完形填空5道+写作邮件回复2道+听力长对话3道`
### 2. 版本管理模块
- 所有题型Skill带版本号生产题目时自动标注使用的规则版本
- 支持回溯历史版本生产题目,规则迭代不影响历史题目回溯
### 3. 批量生产模块
- 支持一次性生成最多100道题的题包
- 自动知识点去重同一知识点在同一题包中最多出现2次
### 4. 质量评分模块
- 每道题自动评分0-100分低于80分的题目自动拦截重生成
- 评分维度:词汇难度匹配度、干扰项合理性、格式合规性、逻辑通顺度
## 输出规范
统一输出格式:
```
📦 题包基本信息
- 阶段:[L1/L2]
- 难度:[难度等级]
- 总题量:[X]道
- 题型分布:[题型1:X道, 题型2:X道...]
- 生产时间:[YYYY-MM-DD HH:MM]
- 规则版本:[vX.X]
---
【题目内容】
[各题型题目按顺序排列]
---
✅ 质量校验结果
- 超纲校验:通过/未通过
- 格式校验:通过/未通过
- 去重校验:通过/未通过
- 平均分:[X]分
```

View File

@ -0,0 +1,111 @@
---
name: listening-drag
description: K12英语听力拖拽题Listening Drag & Drop标准化设计、生产、审校工具。别名听力Part1图片连线、听力Part1人物匹配三者为同一题型。使用场景(1) 根据给定知识点、难度等级、人名列表生成符合教研规范的听力拖拽题;(2) 校验听力拖拽题的格式、难度匹配、内容合规性;(3) 批量生产听力拖拽题内容。触发关键词听力拖拽题、listening drag、拖拽题生产、听力Part1图片连线、听力Part1人物匹配、人物匹配题生产、图片连线题设计
---
# Listening Drag 听力拖拽题生产技能
## 核心功能
标准化生成符合L1 6个阶段要求的听力拖拽题【阶段归属L1专属】自动绑定对应能力标签支持批量生产与合规校验。
## 难度对应关系(已适配新的阶段划分)
| 原难度等级 | 对应L1阶段 | 对应剑桥考试等级 | 难度描述 |
|------------|------------|------------------|----------|
| A级 | L1 第1-2阶段 | Starters 1-2 | 强视觉特征,简单句,低干扰 |
| B级 | L1 第3-4阶段 | Starters 3 | 细节特征,复合句,中干扰 |
| C级 | L1 第5-6阶段 | Movers 1 | 状态动作,描述性语言,高干扰 |
| D级 | L2 第1-2阶段 | Movers 2-3 | 情境推断,隐含逻辑,极高干扰 |
## 题型别名说明
听力拖拽题 = 听力Part1图片连线 = 听力Part1人物匹配三者为同一题型规则完全通用。
## 能力标签绑定规则
1. 题型固定绑定通用能力标签:基础语境理解(场景/物品/动作识别)、多模态信息匹配、注意力分配
2. 每道小题对应专属能力标签与教研部统一定义的45个能力tag一一对应
- Q1显性事实理解关键词识别
- Q2显性事实理解关键词识别
- Q3多信息整合
- Q4干扰抑制 / 语用推断(否定与纠错)
3. 生产时自动根据题目类型填充对应能力标签,无需手动配置
## 生产流程
1. 接收输入参数:{knowledge_module}(知识点列表)、{difficulty}难度等级A/B/C/D、{name_list}(人名列表)、{name_list_shuffle}(打乱后的人名列表)
2. 读取共享L1词库路径`business_knowledge/L1_word_list.json`),优先使用库中词汇,超纲词汇自动拦截提示
3. 按难度对应关系校验阶段匹配性,超纲内容自动提示
4. 生成符合难度要求的听力文本、图片描述、任务描述、答案、能力项
5. 自动执行4层校验词汇超纲校验、格式合规性校验、难度匹配校验、内容逻辑校验
6. 输出标准格式的题目内容
## 脚本使用说明
执行`scripts/generate_listening_drag.py`即可完成自动化生产:
```bash
python scripts/generate_listening_drag.py \
--knowledge "blue adj. 蓝色的;red adj. 红色的;green adj. 绿色的" \
--difficulty "A" \
--names "Peter,Sue,Julia,Dan,May" \
--shuffled_names "Julia,Sue,May,Peter,Dan"
```
> 🔘 词汇校验规则脚本会自动校验所有知识点是否在共享L1词库中禁止使用超纲词汇无需单独传入或保存词表文件。
## 输出格式规范
严格按照以下格式输出,禁止添加额外解释内容:
```
【听力文本】
(对话要求自然日常,避免统一使用祈使句,可使用陈述句、疑问句等多种形式,示例参考:)
One -
Girl: Look! The girl with the red shirt is happy.
Boy: Yes. Thats Julia.
Two -
Girl: Who is the girl in the yellow skirt?
Boy: Thats Sue.
Three -
Girl: The girl with the blue watch is pretty.
Boy: Thats May.
Four -
Girl: Is the boy in the white shirt Dan?
Boy: No, sorry. Thats Peter.
通用规则Q4必须包含纠错/否定逻辑如No, sorry/I mean等表述
【图片描述】
风格: 卡通,简单线条
场景:[场景名称]
[人物描述] - [动作/特征]
[人物描述] - [动作/特征]
[人物描述] - [动作/特征]
[人物描述] - [动作/特征]
[人物描述] - [动作/特征] 。
【人物顺序】
[按图片P1-P5顺序排列的人名列表例如['Kim', 'Bill', 'Sue', 'Nick', 'Mary']]
【选项排序】
[打乱后的选项人名列表与输入的shuffled_names一致例如['Bill', 'Mary', 'Nick', 'Kim', 'Sue']]
【任务描述】
You will hear [角色1] and [角色2] talking about xxx. Drag the names to the correct people.
【选项数量】
5
【答案】
[4个答案索引逗号分隔例如03,01,00,04]
【能力项】
题目1 - 显性事实理解(关键词识别)- [该题考察的核心知识点关键词例如blue T-shirt]
题目2 - 显性事实理解(关键词识别)- [该题考察的核心知识点关键词例如red dress]
题目3 - 多信息整合 - [该题考察的组合知识点例如pink hairband + white skirt]
题目4 - 干扰抑制 / 语用推断(否定与纠错)- [该题考察的核心知识点例如green cap]
```
## 校验规则
自动校验不通过时直接返回错误原因:
1. 难度匹配错误:知识点超出对应阶段大纲范围
2. 格式错误:缺少必填字段或格式不符合规范
3. 逻辑错误:听力文本与图片描述不对应、答案错误
## 题目解析规则(标准化输出)
### 通用规范
1. 结构固定:能力点说明 + 做题技巧 + 正向鼓励
2. 长度控制80-100字中文为主核心关键词可标注英文
3. 语气正向:避免负面表述,突出技巧可复制性
### 结构模板
> ✅ 本题考察【对应能力标签】能力。听的时候抓住人物的关键特征「核心关键词」,对应到正确人名即可。记住这个小技巧,下次碰到这类题就能快速做对哦😉
### 题型示例
```
【题目1】
【听力文本】
Daisy: Look! The boy in the blue shirt is eating cake.
Jim: Yes. Thats Peter.
【能力项】
题目1 - 显性事实理解(关键词识别)- blue shirt
【解析】
✅ 本题考察【显性事实理解(关键词识别)】能力。听的时候抓住关键特征`blue shirt`对应穿蓝色衬衫的男孩就是Peter直接匹配即可。记住抓关键特征就能快速做对哦😉
```

View File

@ -0,0 +1,33 @@
# 听力拖拽题能力标签对应表
## 题型所属分类
听力拖拽题 = 听力Part1图片连线 = 听力Part1人物匹配 = L1 - Movers - 听力 Part1 人物匹配,三者为完全等价的同一题型,规则通用。
## 题型固定绑定核心能力标签与45个能力tag一一对应
| 能力标签ID预留 | 能力标签名称 | 能力描述 |
|--------------------|--------------|----------|
| TAG_LISTEN_001 | 基础语境理解 | 场景/物品/动作识别,结合听觉和视觉信息完成人物匹配 |
| TAG_LISTEN_002 | 多模态信息匹配 | 同步处理音频输入与图片视觉信息 |
| TAG_LISTEN_003 | 注意力分配 | 同时处理多组人物特征信息,排除无关干扰 |
## 小题专属能力标签(与教研统一定义对齐)
| 题号 | 能力标签ID预留 | 能力标签名称 | 能力描述 |
|------|--------------------|--------------|----------|
| Q1 | TAG_LISTEN_004 | 显性事实理解 | 关键词识别,直接抓取听力中的核心名词/形容词 |
| Q2 | TAG_LISTEN_004 | 显性事实理解 | 关键词识别,直接抓取听力中的核心名词/形容词 |
| Q3 | TAG_LISTEN_005 | 多信息整合 | 结合2条及以上特征信息从干扰组中筛选正确答案 |
| Q4 | TAG_LISTEN_006 / TAG_LISTEN_007 | 干扰抑制 / 语用推断 | 多信息筛选排除干扰项/理解对话中的否定、纠错逻辑 |
---
## 全题型能力标签映射参考表(官方统一)
| 题型分类 | 能力标签 |
|----------|----------|
| L1 - Starters - 听力 Part1 图片连线 | 显性事实理解(关键词识别);基础语境理解(场景/物品/动作识别) |
| L1 - Starters - 听力 Part2 信息填写 | 显性细节理解(数字/时间/地点) |
| L1 - Starters - 听力 Part3 三选一图片选择 | 显性事实理解(单句信息点抓取) |
| L1 - Starters - 听力 Part4 涂色+位置 | 显性事实理解(关键词识别) |
| L1 - Movers - 听力 Part1 人物匹配(本技能对应题型) | 基础语境理解(场景/物品/动作识别) |
| L1 - Movers - 听力 Part2 表格填写 | 显性细节理解(数字/时间/地点);干扰抑制(多信息筛选) |
| L1 - Movers - 听力 Part3 星期活动匹配 | 目的/偏好识别显性to/for/like |
| L1 - Movers - 听力 Part4 三选一 | 同义替换识别(词/短语级);目的/偏好识别显性to/for/like |
| L1 - Movers高阶 - 听力 Flyers Part2 表格填写 | 干扰抑制(多信息筛选) |
| L1 - Movers高阶 - 听力 Flyers Part3 长对话选择 | 多句保持(信息整合) |
| L1 - Movers高阶 - 听力 Flyers Part4 三选一 | 语用推断(否定与纠错) |
| L1 - Movers高阶 - 听力 Flyers Part5 信息匹配 | 目的/偏好识别显性to/for/like |
| L1 - Movers高阶 - 听力 KET Part3 长对话选择 | 情绪/态度理解 |

View File

@ -0,0 +1,15 @@
# 听力拖拽题难度对应表
## ABCD等级与L1阶段、剑桥考试对应关系
| 难度等级 | 对应L1阶段 | 对应剑桥考试等级 | 适用学生水平 |
|----------|------------|------------------|--------------|
| A级 | L1 第1-2阶段 | Starters 1-2 | 入门级接触英语1-2个月 |
| B级 | L1 第3-4阶段 | Starters 3 | 入门级接触英语3-4个月 |
| C级 | L1 第5-6阶段 | Movers 1 | 进阶级接触英语5-6个月 |
| D级 | L2 第1-2阶段 | Movers 2-3 | 进阶级接触英语7-8个月 |
## 各难度生产约束规则
| 难度等级 | 单句最大单词数 | 词汇范围限制 | 干扰项差异要求 |
|----------|----------------|--------------|----------------|
| A级 | ≤5个单词 | 仅允许L1第1-2单元大纲词汇 | 差异非常明显(颜色/大类别区分) |
| B级 | ≤8个单词 | 仅允许L1第3-4单元大纲词汇 | 差异为细节(花纹/方位区分) |
| C级 | ≤12个单词 | 允许L1全阶段大纲词汇 | 差异为动作/状态(表情/动作区分) |
| D级 | ≤15个单词 | 允许L1+L2前2单元大纲词汇 | 差异为逻辑推断(因果/情境区分) |

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,240 @@
#!/usr/bin/env python3
import argparse
import json
import re
import sys
import os
from typing import List, Dict
# 角色名称库
CHARACTERS = ["Otis", "Ben", "Skylar", "Brainy", "Daisy", "Jim", "Paul", "Fred"]
# 单词库路径
WORD_LIST_PATH = os.path.join(os.path.dirname(__file__), "../references/l1_word_list.json")
# 难度对应规则
DIFFICULTY_RULES = {
"A": {
"visual": "强视觉特征,依赖大色块、明显大物品区分",
"audio": "简单句语速慢SVO结构关键词后置",
"interference": "低,干扰组差异非常明显,仅需识别基础名词或颜色形容词"
},
"B": {
"visual": "细节特征,依赖花纹、衣着款式、具体方位",
"audio": "复合句包含介词短语、连词and/but",
"interference": "中,干扰组差异在于细节,需分辨修饰性短语"
},
"C": {
"visual": "状态与动作,依赖面部表情、身体姿态、动作细节",
"audio": "描述性语言,使用丰富的形容词、副词,语速正常",
"interference": "高,干扰组动作极其相似,需分辨程度副词或具体形容词"
},
"D": {
"visual": "情境推断,依赖抽象线索或因果状态",
"audio": "隐含逻辑,包含推测、因果关系,语速较快",
"interference": "极高,干扰组无法直接通过视觉匹配,需结合上下文逻辑推理排除"
}
}
# 能力标签对应(与官方统一定义对齐)
ABILITY_TAGS = [
"显性事实理解(关键词识别)",
"显性事实理解(关键词识别)",
"多信息整合",
"干扰抑制 / 语用推断(否定与纠错)"
]
def parse_args():
parser = argparse.ArgumentParser(description="Generate Listening Drag & Drop questions")
parser.add_argument("--knowledge", required=True, help="知识点列表,分号分隔")
parser.add_argument("--difficulty", required=True, choices=["A", "B", "C", "D"], help="难度等级")
parser.add_argument("--names", required=True, help="人名列表,逗号分隔")
parser.add_argument("--shuffled_names", required=True, help="打乱后的人名列表,逗号分隔")
return parser.parse_args()
def load_word_list() -> List[str]:
"""加载L1单词库"""
try:
with open(WORD_LIST_PATH, "r", encoding="utf-8") as f:
data = json.load(f)
return [word["word"].lower() for word in data["words"]]
except Exception as e:
print(f"警告:加载单词库失败,跳过超纲校验:{str(e)}", file=sys.stderr)
return []
def validate_knowledge_with_wordlist(knowledge: str, word_list: List[str]) -> bool:
"""校验知识点是否在单词库中"""
if not word_list:
return True
knowledge_words = [item.split()[0].lower() for item in knowledge.split(";") if item.strip()]
out_of_range = []
for word in knowledge_words:
if word not in word_list:
out_of_range.append(word)
if out_of_range:
print(f"错误以下知识点超纲不在L1单词库中{','.join(out_of_range)}", file=sys.stderr)
return False
return True
def validate_input(args) -> bool:
"""校验输入参数合法性"""
names = args.names.split(",")
shuffled_names = args.shuffled_names.split(",")
if len(names) != 5 or len(shuffled_names) !=5:
print("错误人名列表必须包含5个名字", file=sys.stderr)
return False
if set(names) != set(shuffled_names):
print("错误:打乱后的人名列表与原列表不一致", file=sys.stderr)
return False
if not args.knowledge.strip():
print("错误:知识点不能为空", file=sys.stderr)
return False
# 超纲校验
word_list = load_word_list()
if not validate_knowledge_with_wordlist(args.knowledge, word_list):
return False
return True
def generate_prompt(args) -> str:
"""生成生产prompt"""
difficulty_rule = DIFFICULTY_RULES[args.difficulty]
return f"""
你是资深K12英语教研专家严格按照以下要求生成听力拖拽题
## 难度要求
{difficulty_rule}
## 输入参数
知识点{args.knowledge}
人名列表{args.names}
打乱后人名列表{args.shuffled_names}
## 题目要求
1. 共4道小题对应P1-P4P5为干扰项
2. P3-P5为干扰组共享一个核心特征仅通过细节区分
3. Q4必须包含纠错逻辑如No, sorry/I mean或否定逻辑
4. 角色从{CHARACTERS}中选择2个不同的角色
5. 对话要求自然日常避免统一使用祈使句可使用陈述句疑问句等多种形式参考示例
One -
Girl: Look! The girl with the red shirt is happy.
Boy: Yes. Thats Julia.
Two -
Girl: Who is the girl in the yellow skirt?
Boy: Thats Sue.
Three -
Girl: The girl with the blue watch is pretty.
Boy: Thats May.
Four -
Girl: Is the boy in the white shirt Dan?
Boy: No, sorry. Thats Peter.
## 输出格式
严格按照以下格式输出不要添加任何额外内容
听力文本
One -
[角色1]: [对话指向P1]
[角色2]: Yes. Thats [Name1].
Two -
[角色1]: [对话指向P2]
[角色2]: Thats [Name2].
Three -
[角色1]: [对话指向P3从干扰组筛选]
[角色2]: Thats [Name3].
Four -
[角色1]: [对话指向P4包含纠错逻辑]
[角色2]: Oh! Thats [Name4].
图片描述
风格: 卡通简单线条
场景[符合知识点的场景]
[人物1描述] - [动作/特征]
[人物2描述] - [动作/特征]
[人物3描述] - [动作/特征]
[人物4描述] - [动作/特征]
[人物5描述] - [动作/特征]
人物顺序
[{args.names.split(',')}]
选项排序
[{args.shuffled_names.split(',')}]
任务描述
You will hear [角色1] and [角色2] talking about [场景相关内容]. Drag the names to the correct people.
选项数量
5
答案
[Name1在打乱列表中的索引,Name2索引,Name3索引,Name4索引]例如03,01,00,04
能力项
题目1 - 显性事实理解关键词识别- [Q1考察的核心知识点关键词例如blue T-shirt]
题目2 - 显性事实理解关键词识别- [Q2考察的核心知识点关键词例如red dress]
题目3 - 多信息整合 - [Q3考察的组合知识点关键词例如pink hairband + white skirt]
题目4 - 干扰抑制 / 语用推断否定与纠错- [Q4考察的核心知识点关键词例如green cap]
"""
def call_llm(prompt: str) -> str:
"""调用大模型生成内容(此处留空,实际使用时替换为对应模型调用逻辑)"""
# 实际生产环境替换为模型API调用
print("请输入模型生成的内容:")
return sys.stdin.read()
def validate_output(output: str, original_names: List[str], shuffled_names: List[str]) -> bool:
"""校验输出格式合法性"""
# 检查必填字段是否存在
required_sections = ["【听力文本】", "【图片描述】", "【人物顺序】", "【选项排序】", "【任务描述】", "【选项数量】", "【答案】", "【能力项】"]
for section in required_sections:
if section not in output:
print(f"错误:缺少必填字段{section}", file=sys.stderr)
return False
# 校验人物顺序格式
person_order_match = re.search(r"【人物顺序】\s*\[(.*)\]", output)
if not person_order_match:
print("错误:人物顺序格式不正确", file=sys.stderr)
return False
person_order = [name.strip().strip("'\"") for name in person_order_match.group(1).split(",")]
if person_order != original_names:
print(f"错误:人物顺序与输入人名列表不一致,预期:{original_names},实际:{person_order}", file=sys.stderr)
return False
# 校验选项排序格式
option_order_match = re.search(r"【选项排序】\s*\[(.*)\]", output)
if not option_order_match:
print("错误:选项排序格式不正确", file=sys.stderr)
return False
option_order = [name.strip().strip("'\"") for name in option_order_match.group(1).split(",")]
if option_order != shuffled_names:
print(f"错误:选项排序与输入打乱后的人名列表不一致,预期:{shuffled_names},实际:{option_order}", file=sys.stderr)
return False
# 校验答案格式
answer_match = re.search(r"【答案】\s*([\d,]+)", output)
if not answer_match:
print("错误:答案格式不正确", file=sys.stderr)
return False
answers = answer_match.group(1).split(",")
if len(answers) !=4:
print("错误答案必须包含4个索引", file=sys.stderr)
return False
for ans in answers:
if not ans.isdigit() or int(ans) <0 or int(ans)>=5:
print(f"错误:答案索引{ans}不合法", file=sys.stderr)
return False
# 校验答案对应的人名是否在列表中
for ans in answers:
idx = int(ans)
if idx >= len(shuffled_names):
print(f"错误:答案索引{idx}超出范围", file=sys.stderr)
return False
# 校验能力项格式
ability_pattern = r"【能力项】\s*题目1 - .* - .*\s*题目2 - .* - .*\s*题目3 - .* - .*\s*题目4 - .* - .*"
if not re.search(ability_pattern, output, re.DOTALL):
print("错误能力项格式不正确必须按以下格式分行列出题目N - 能力标签 - 考察知识点", file=sys.stderr)
return False
return True
def main():
args = parse_args()
if not validate_input(args):
sys.exit(1)
prompt = generate_prompt(args)
output = call_llm(prompt)
original_names = args.names.split(",")
shuffled_names = args.shuffled_names.split(",")
if validate_output(output, original_names, shuffled_names):
print(output)
sys.exit(0)
else:
sys.exit(1)
if __name__ == "__main__":
main()

View File

@ -0,0 +1,80 @@
---
name: listening_picture_selection
description: K12英语听力选图题标准化设计、生产、审校工具。对应题型L1 - Starters - 听力 Part6 听力选图,考察核心能力:图片信息识别、听力信息匹配、快速反应。使用场景:(1) 根据给定知识点、难度等级生成符合教研规范的听力选图题;(2) 校验题目格式、难度匹配、内容合规性;(3) 批量生产听力选图题。触发关键词听力选图、选图题、listening picture selection、听力Part6选图、图片匹配题
---
# Listening Picture Selection 听力选图题生产技能
## 题型说明
本技能对应官方题型:**L1 - Starters - 听力 Part6 听力选图【阶段归属L1专属】**,考察核心能力为**图片信息识别(听力信息匹配)**学生听5-6个单句/短对话,每个对应一组图片,选出与听力内容匹配的图片,考察对图片信息和听力信息的快速匹配能力。
## 难度对应关系(与教研标准对齐)
| 难度等级 | 对应L1阶段 | 对应剑桥考试等级 | 难度描述 |
|----------|------------|------------------|----------|
| A级 | L1 第1-2阶段 | Starters 1-2 | 每组图片3张类别完全不同听力为3-5词简单句 |
| B级 | L1 第3-4阶段 | Starters 3 | 每组图片3张为同类物品不同属性听力为5-8词句子 |
| C级 | L1 第5-6阶段 | Movers 1 | 每组图片3张为同一场景不同动作听力为8-10词句子 |
| D级 | L2 第1-2阶段 | Movers 2-3 | 每组图片3张为同一场景不同逻辑听力为10-12词句子 |
## 能力标签绑定规则
1. 题型固定绑定通用能力标签:听力理解、图片识别、信息匹配
2. 能力标签分级规则:
- 1级标签统一使用**听力理解**
- 2级标签根据考察点动态匹配物品匹配/属性匹配/动作匹配/场景匹配
3. 生产时自动标注每道题考察的核心知识点
## 生产规则
1. 每道题包含5-6个听力单句/短对话、每组对应3张图片描述、正确答案列表
2. 难度匹配规则:
- A级图片差异极大听力关键词直接对应正确图片
- B级图片为同类物品不同颜色/大小,听力包含属性描述
- C级图片为同一人物不同动作听力包含动作描述
- D级图片为同一场景不同逻辑听力包含逻辑描述
3. 听力文本要求:简短清晰,符合对应难度
4. 图片描述要求:清晰标注每张图片的核心差异点
## 输入参数
| 参数 | 必填 | 格式示例 | 说明 |
|------|------|----------|------|
| 知识点 | ✅ | `apple n.苹果;red adj.红色;eat v.吃` | 考察的核心知识点列表 |
| 难度等级 | ✅ | `A级` / `L1第2阶段` / `Starters 2` | 难度等级或对应阶段 |
| 题量 | 🟢 | `5` | 生成题目数量默认1套6小题 |
| 场景要求 | 🟢 | `场景为户外玩耍` | 指定题目场景,不指定则自动匹配知识点 |
## 输出格式规范
严格按照以下格式输出,禁止额外内容:
```
【题目组描述】
[整体场景说明,例如:听句子,选出与你听到的内容相符的图片]
---
【题目1】
【听力文本】
1. [句子1内容]
【图片描述】
A: [图片A核心特征]
B: [图片B核心特征]
C: [图片C核心特征]
2. [句子2内容]
【图片描述】
A: [图片A核心特征]
B: [图片B核心特征]
C: [图片C核心特征]
【正确答案】
1. [正确选项字母]
2. [正确选项字母]
【能力项】
题目1 - 听力理解([2级标签]- [考察核心知识点]
题目2 - 听力理解([2级标签]- [考察核心知识点]
---
【题目2】
...(多套题重复上述结构)
```
## 校验规则
自动校验不通过直接返回错误:
1. 词汇校验所有知识点必须在L1单词库中禁止超纲
2. 格式校验:缺少必填字段或格式不符合规范
3. 难度校验:听力句子长度、图片差异度不符合对应等级要求
4. 逻辑校验:答案与听力内容不匹配
## 脚本使用说明
执行`scripts/generate_listening_picture_selection.py`完成自动化生产:
```bash
python scripts/generate_listening_picture_selection.py \
--knowledge "apple n.苹果;red adj.红色;eat v.吃" \
--difficulty "A" \
--count 3 \
--scene "户外场景"
```
> 🔘 词汇校验规则脚本会自动校验所有知识点是否在共享L1词库路径`business_knowledge/L1_word_list.json`)中,禁止使用超纲词汇,无需单独传入词表文件。

View File

@ -0,0 +1,112 @@
---
name: listening-choicePic
description: K12英语听力三选一图片选择题标准化设计、生产、审校工具。对应题型L1 - Starters - 听力 Part3 三选一图片选择,考察核心能力:显性事实理解(单句信息点抓取)。使用场景:(1) 根据给定知识点、难度等级生成符合教研规范的听力三选一题目;(2) 校验题目格式、难度匹配、内容合规性;(3) 批量生产听力三选一题目。触发关键词听力三选一、图片选择题、listening choice pic、听力Part3三选一、单句信息点抓取题
---
# Listening ChoicePic 听力三选一图片选择题生产技能
## 题型说明
本技能对应官方题型:**L2 - Movers - 听力 Part3 三选一图片选择【阶段归属L2专属】**,考察核心能力为**显性事实理解(单句信息点抓取)**学生听单句听力内容从3张图片选项中选出与听力内容匹配的正确答案。
## 难度对应关系(与教研标准对齐)
| 难度等级 | 对应L1阶段 | 对应剑桥考试等级 | 难度描述 |
|----------|------------|------------------|----------|
| A级 | L1 第1-2阶段 | Starters 1-2 | 选项差异极大类别完全不同听力为3-5词简单句关键词后置 |
| B级 | L1 第3-4阶段 | Starters 3 | 选项为同类物品差异(颜色/大小不同听力为5-8词简单句 |
| C级 | L1 第5-6阶段 | Movers 1 | 选项为动作/状态差异听力为8-12词带介词短语的句子 |
| D级 | L2 第1-2阶段 | Movers 2-3 | 选项为场景/逻辑差异听力为12-15词带简单从句的句子 |
## 能力标签绑定规则
1. 题型固定绑定通用能力标签:听力理解、图片信息识别、单句信息抓取
2. 每道题专属能力标签与官方45个能力tag对齐
- 所有题目统一绑定:**显性事实理解(单句信息点抓取)**
3. 生产时自动标注每道题考察的核心知识点
## 生产规则
1. 每道题包含1段听力文本单句符合难度要求、3张图片选项1个正确2个干扰
2. 干扰项设置规则:
- A级干扰项与正确选项类别完全不同猫vs书vs苹果
- B级干扰项与正确选项为同类别不同属性红苹果vs绿苹果vs黄苹果
- C级干扰项与正确选项为同物品不同动作/状态吃苹果vs洗苹果vs切苹果
- D级干扰项与正确选项为同场景不同逻辑男孩拿苹果vs女孩拿苹果vs男孩拿橘子
3. 听力文本要求:自然日常,可使用陈述句、疑问句、祈使句等多种句式,避免生硬表达
4. 图片描述要求清晰标注3张图片的核心差异点便于图片生产
## 输入参数
| 参数 | 必填 | 格式示例 | 说明 |
|------|------|----------|------|
| 知识点 | ✅ | `apple n.苹果;red adj.红色;eat v.吃` | 考察的核心知识点列表 |
| 难度等级 | ✅ | `A级` / `L1第2阶段` / `Starters 2` | 难度等级或对应阶段 |
| 题量 | 🟢 | `5` | 生成题目数量默认1道 |
| 场景要求 | 🟢 | `场景为家庭厨房` | 指定题目场景,不指定则自动匹配知识点 |
## 输出格式规范
严格按照以下格式输出,禁止额外内容:
```
【题目组描述】
[整体场景说明,例如:听句子,选出与你听到的内容相符的图片]
---
【题目1】
【听力文本】
[角色]: [符合难度的单句听力内容]
【图片描述】
A: [图片A核心特征描述]
B: [图片B核心特征描述]
C: [图片C核心特征描述]
【正确答案】
[正确选项字母例如A]
【能力项】
题目1 - 显性事实理解(单句信息点抓取)- [考察核心知识点例如red apple]
---
【题目2】
...(多题重复上述结构)
```
## 校验规则
自动校验不通过直接返回错误:
1. 词汇校验所有知识点必须在L1单词库中禁止超纲
2. 格式校验:缺少必填字段或格式不符合规范
3. 难度校验:听力句子长度、词汇难度不符合对应等级要求
4. 逻辑校验:干扰项设置不符合对应难度的差异要求
## 题目解析规则(标准化输出)
### 通用规范
1. 结构固定:能力点说明 + 做题技巧 + 正向鼓励
2. 长度控制80-100字中文为主核心关键词可标注英文
3. 语气正向:避免负面表述,突出技巧可复制性
### 结构模板
> ✅ 本题考察【对应能力标签】能力。听的时候抓住关键信息「核心关键词」A/B选项是干扰项不符合描述直接选C。记住这个小技巧下次碰到这类题就能快速做对哦😉
### 题型示例
#### 格式变体1完整格式含解析教研审校用
```
【题目3】
【听力文本】
Daisy: The pink flower is beautiful.
【图片描述】
A: 棕色的木门
B: 白色的运动鞋
C: 粉色的花朵
【正确答案】
C
【能力项】
题目3 - 显性事实理解(关键词识别)- flower
【解析】
✅ 本题考察【显性事实理解(关键词识别)】能力。听的时候抓住关键信息`pink flower`A木门、B运动鞋都是干扰项直接选C。记住听到物品名词直接对应图片这类题就能快速做对哦😉
```
#### 格式变体2简化格式批量生产导入用
```
1.
【听力文本】
Amy: This is a bag.
【图片描述】
选项A: 一个蓝色双肩背包。卡通风格。
选项B: 一个红色圆形苹果。卡通风格。
选项C: 一支黄色木质铅笔。卡通风格。
【能力项】
显性事实理解(关键词识别)- bag
【题目】
What is Amy talking about?
【答案】
A
```
## 脚本使用说明
执行`scripts/generate_listening_choicePic.py`完成自动化生产:
```bash
python scripts/generate_listening_choicePic.py \
--knowledge "apple n.苹果;red adj.红色;eat v.吃" \
--difficulty "A" \
--count 3 \
--scene "家庭场景"
```
> 🔘 词汇校验规则脚本会自动校验所有知识点是否在共享L1词库路径`business_knowledge/L1_word_list.json`)中,禁止使用超纲词汇,无需单独传入词表文件。

View File

@ -0,0 +1,28 @@
# 听力三选一图片选择题能力标签对应表
## 题型所属分类
听力三选一图片选择题 = L1 - Starters - 听力 Part3 三选一图片选择
## 题型固定绑定核心能力标签与45个能力tag一一对应
| 能力标签ID预留 | 能力标签名称 | 能力描述 |
|--------------------|--------------|----------|
| TAG_LISTEN_008 | 显性事实理解 | 单句信息点抓取,直接从听力中提取核心信息 |
| TAG_LISTEN_009 | 图片信息识别 | 识别图片中的核心特征、物品、动作 |
| TAG_LISTEN_010 | 信息匹配能力 | 匹配听觉信息与视觉图片信息 |
## 题目专属能力标签
每道题统一绑定:**显性事实理解(单句信息点抓取)**,自动标注对应考察的核心知识点。
---
## 全题型能力标签映射参考表(官方统一)
| 题型分类 | 能力标签 |
|----------|----------|
| L1 - Starters - 听力 Part1 图片连线 | 显性事实理解(关键词识别);基础语境理解(场景/物品/动作识别) |
| L1 - Starters - 听力 Part2 信息填写 | 显性细节理解(数字/时间/地点) |
| L1 - Starters - 听力 Part3 三选一图片选择(本技能对应题型) | 显性事实理解(单句信息点抓取) |
| L1 - Starters - 听力 Part4 涂色+位置 | 显性事实理解(关键词识别) |
| L1 - Movers - 听力 Part1 人物匹配 | 基础语境理解(场景/物品/动作识别) |
| L1 - Movers - 听力 Part2 表格填写 | 显性细节理解(数字/时间/地点);干扰抑制(多信息筛选) |
| L1 - Movers - 听力 Part3 星期活动匹配 | 目的/偏好识别显性to/for/like |
| L1 - Movers - 听力 Part4 三选一 | 同义替换识别(词/短语级);目的/偏好识别显性to/for/like |
| L1 - Movers高阶 - 听力 Flyers Part2 表格填写 | 干扰抑制(多信息筛选) |
| L1 - Movers高阶 - 听力 Flyers Part3 长对话选择 | 多句保持(信息整合) |
| L1 - Movers高阶 - 听力 Flyers Part4 三选一 | 语用推断(否定与纠错) |
| L1 - Movers高阶 - 听力 Flyers Part5 信息匹配 | 目的/偏好识别显性to/for/like |
| L1 - Movers高阶 - 听力 KET Part3 长对话选择 | 情绪/态度理解 |

View File

@ -0,0 +1,15 @@
# 听力三选一图片选择题难度对应表
## 难度等级与L1阶段、剑桥考试对应关系
| 难度等级 | 对应L1阶段 | 对应剑桥考试等级 | 适用学生水平 |
|----------|------------|------------------|--------------|
| A级 | L1 第1-2阶段 | Starters 1-2 | 入门级接触英语1-2个月 |
| B级 | L1 第3-4阶段 | Starters 3 | 入门级接触英语3-4个月 |
| C级 | L1 第5-6阶段 | Movers 1 | 进阶级接触英语5-6个月 |
| D级 | L2 第1-2阶段 | Movers 2-3 | 进阶级接触英语7-8个月 |
## 各难度生产约束规则
| 难度等级 | 单句最大单词数 | 词汇范围限制 | 干扰项差异要求 |
|----------|----------------|--------------|----------------|
| A级 | ≤5个单词 | 仅允许L1第1-2单元大纲词汇 | 选项类别完全不同动物vs食物vs文具 |
| B级 | ≤8个单词 | 仅允许L1第3-4单元大纲词汇 | 同类别不同属性红苹果vs绿苹果vs黄苹果 |
| C级 | ≤12个单词 | 允许L1全阶段大纲词汇 | 同物品不同动作/状态吃苹果vs洗苹果vs切苹果 |
| D级 | ≤15个单词 | 允许L1+L2前2单元大纲词汇 | 同场景不同逻辑男孩拿苹果vs女孩拿苹果vs男孩拿橘子 |

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,178 @@
#!/usr/bin/env python3
import argparse
import json
import re
import sys
import os
from typing import List, Dict
# 角色名称库
CHARACTERS = ["Otis", "Ben", "Skylar", "Brainy", "Daisy", "Jim", "Paul", "Fred"]
# 共用L1单词库路径
WORD_LIST_PATH = os.path.join(os.path.dirname(__file__), "../../listening-drag/references/l1_word_list.json")
# 难度对应规则
DIFFICULTY_RULES = {
"A": {
"sentence_length": "≤5词",
"interference": "选项类别完全不同,差异极大",
"description": "简单句,关键词后置,无修饰成分"
},
"B": {
"sentence_length": "≤8词",
"interference": "同类别不同属性(颜色/大小)",
"description": "简单句可带1个形容词修饰"
},
"C": {
"sentence_length": "≤12词",
"interference": "同物品不同动作/状态",
"description": "简单句,可带介词短语修饰"
},
"D": {
"sentence_length": "≤15词",
"interference": "同场景不同逻辑",
"description": "带简单从句,可包含逻辑连接词"
}
}
def parse_args():
parser = argparse.ArgumentParser(description="Generate Listening Picture Choice questions")
parser.add_argument("--knowledge", required=True, help="知识点列表,分号分隔")
parser.add_argument("--difficulty", required=True, choices=["A", "B", "C", "D"], help="难度等级")
parser.add_argument("--count", type=int, default=1, help="生成题目数量默认1道")
parser.add_argument("--scene", default="", help="题目场景要求,可选")
return parser.parse_args()
def load_word_list() -> List[str]:
"""加载L1单词库"""
try:
with open(WORD_LIST_PATH, "r", encoding="utf-8") as f:
data = json.load(f)
return [word["word"].lower() for word in data["words"]]
except Exception as e:
print(f"警告:加载单词库失败,跳过超纲校验:{str(e)}", file=sys.stderr)
return []
def validate_knowledge_with_wordlist(knowledge: str, word_list: List[str]) -> bool:
"""校验知识点是否在单词库中"""
if not word_list:
return True
knowledge_words = [item.split()[0].lower() for item in knowledge.split(";") if item.strip()]
out_of_range = []
for word in knowledge_words:
if word not in word_list:
out_of_range.append(word)
if out_of_range:
print(f"错误以下知识点超纲不在L1单词库中{','.join(out_of_range)}", file=sys.stderr)
return False
return True
def validate_input(args) -> bool:
"""校验输入参数合法性"""
if not args.knowledge.strip():
print("错误:知识点不能为空", file=sys.stderr)
return False
if args.count < 1 or args.count > 10:
print("错误题量范围1-10道", file=sys.stderr)
return False
# 超纲校验
word_list = load_word_list()
if not validate_knowledge_with_wordlist(args.knowledge, word_list):
return False
return True
def generate_prompt(args) -> str:
"""生成生产prompt"""
difficulty_rule = DIFFICULTY_RULES[args.difficulty]
scene_desc = f"场景要求:{args.scene}" if args.scene else "场景自动匹配知识点"
return f"""
你是资深K12英语教研专家严格按照以下要求生成{args.count}道听力三选一图片选择题
## 难度要求({args.difficulty}级)
- 句子长度{difficulty_rule['sentence_length']}
- 干扰项要求{difficulty_rule['interference']}
- 听力要求{difficulty_rule['description']}
## 输入参数
- 知识点{args.knowledge}
- {scene_desc}
## 生产规则
1. 每道题包含1段单句听力文本3张图片选项A/B/C1个正确答案
2. 听力文本自然日常可使用陈述句疑问句祈使句等多种句式避免生硬
3. 干扰项设置符合难度要求正确答案唯一
4. 角色从{CHARACTERS}中选择
## 输出格式
严格按照以下格式输出不要添加任何额外内容
题目组描述
听句子选出与你听到的内容相符的图片
---
题目1
听力文本
[角色]: [符合难度的单句听力内容]
图片描述
A: [图片A核心特征描述与知识点相关]
B: [图片B核心特征描述干扰项]
C: [图片C核心特征描述干扰项]
正确答案
[正确选项字母A/B/C]
能力项
题目1 - 显性事实理解单句信息点抓取- [考察核心知识点关键词]
---
题目2
...重复上述结构生成{args.count}道题
"""
def call_llm(prompt: str) -> str:
"""调用大模型生成内容实际使用时替换为模型API调用"""
print("请输入模型生成的内容:")
return sys.stdin.read()
def validate_output(output: str, question_count: int) -> bool:
"""校验输出格式合法性"""
# 检查必填字段
if "【题目组描述】" not in output:
print("错误:缺少题目组描述", file=sys.stderr)
return False
# 检查题目数量
question_pattern = r"【题目\d+】"
questions = re.findall(question_pattern, output)
if len(questions) != question_count:
print(f"错误:题目数量不符,预期{question_count}道,实际{len(questions)}", file=sys.stderr)
return False
# 检查每道题的必填字段
for i in range(1, question_count + 1):
question_section = re.search(rf"【题目{i}】.*?(?=【题目{i+1}】|---|\Z)", output, re.DOTALL)
if not question_section:
print(f"错误:题目{i}格式不完整", file=sys.stderr)
return False
section_content = question_section.group(0)
required_fields = ["【听力文本】", "【图片描述】", "【正确答案】", "【能力项】"]
for field in required_fields:
if field not in section_content:
print(f"错误:题目{i}缺少必填字段{field}", file=sys.stderr)
return False
# 校验能力项格式
ability_match = re.search(r"【能力项】\s*题目\d+ - 显性事实理解(单句信息点抓取)- .*", section_content)
if not ability_match:
print(f"错误:题目{i}能力项格式不正确", file=sys.stderr)
return False
# 校验答案格式
answer_match = re.search(r"【正确答案】\s*[ABC]", section_content)
if not answer_match:
print(f"错误:题目{i}答案格式不正确必须为A/B/C", file=sys.stderr)
return False
return True
def main():
args = parse_args()
if not validate_input(args):
sys.exit(1)
prompt = generate_prompt(args)
output = call_llm(prompt)
if validate_output(output, args.count):
print(output)
sys.exit(0)
else:
sys.exit(1)
if __name__ == "__main__":
main()

View File

@ -0,0 +1,79 @@
---
name: listening_form_fill
description: K12英语听力表格填空题标准化设计、生产、审校工具。对应题型L1 - Starters - 听力 Part2 表格填空,考察核心能力:信息抓取、拼写准确性、短时记忆。使用场景:(1) 根据给定知识点、难度等级生成符合教研规范的听力表格填空题;(2) 校验题目格式、难度匹配、内容合规性;(3) 批量生产听力表格填空题。触发关键词听力表格填空、表格填空题、listening form fill、听力Part2表格填空、信息抓取填空题
---
# Listening Form Fill 听力表格填空题生产技能
## 题型说明
本技能对应官方题型:**L2 - Movers - 听力 Part2 表格填空【阶段归属L2专属】**,考察核心能力为**信息抓取(关键词识别+拼写准确性)**学生听1-2段短对话/独白,提取关键信息填写表格中空缺的内容,考察词汇拼写、数字识别、信息匹配能力。
## 难度对应关系(与教研标准对齐)
| 难度等级 | 对应L1阶段 | 对应剑桥考试等级 | 难度描述 |
|----------|------------|------------------|----------|
| A级 | L1 第1-2阶段 | Starters 1-2 | 表格仅2-3个空缺答案为1-2个字母/数字,听力直接念出答案 |
| B级 | L1 第3-4阶段 | Starters 3 | 表格3-4个空缺答案为3-5个字母的单词听力直接念出答案 |
| C级 | L1 第5-6阶段 | Movers 1 | 表格4-5个空缺答案为单词/短语,听力包含简单干扰信息 |
| D级 | L2 第1-2阶段 | Movers 2-3 | 表格5-6个空缺答案为短语/短句,听力包含较多干扰信息 |
## 能力标签绑定规则
1. 题型固定绑定通用能力标签:听力理解、信息抓取、拼写准确性
2. 能力标签分级规则:
- 1级标签统一使用**听力理解**
- 2级标签根据考察点动态匹配数字识别/词汇拼写/信息匹配/干扰抑制
3. 生产时自动标注每道题考察的核心知识点
## 生产规则
1. 每道题包含1份听力文本对话/独白、1份表格模板含空缺位、答案列表、评分标准
2. 难度匹配规则:
- A级空缺内容为数字/单个字母,听力语速慢,无干扰
- B级空缺内容为大纲内核心名词听力语速适中无干扰
- C级空缺内容为名词+属性组合听力包含1个干扰信息
- D级空缺内容为短语/短句听力包含2-3个干扰信息
3. 听力文本要求:自然日常,符合对应难度词汇要求
4. 表格模板要求:结构清晰,空缺位标注明确,表头信息完整
## 输入参数
| 参数 | 必填 | 格式示例 | 说明 |
|------|------|----------|------|
| 知识点 | ✅ | `apple n.苹果;red adj.红色;eat v.吃` | 考察的核心知识点列表 |
| 难度等级 | ✅ | `A级` / `L1第2阶段` / `Starters 2` | 难度等级或对应阶段 |
| 题量 | 🟢 | `5` | 生成题目数量默认1道 |
| 场景要求 | 🟢 | `场景为学校报名` | 指定题目场景,不指定则自动匹配知识点 |
## 输出格式规范
严格按照以下格式输出,禁止额外内容:
```
【题目组描述】
[整体场景说明,例如:听对话,填写表格中缺失的信息]
---
【题目1】
【听力文本】
[符合难度的听力内容,对话或独白]
【表格模板】
| 表头1 | 表头2 | 表头3 |
|-------|-------|-------|
| 已知内容 | ___ | 已知内容 |
| 已知内容 | 已知内容 | ___ |
【正确答案】
1. [第一空答案]
2. [第二空答案]
【评分标准】
优秀:拼写完全正确,大小写符合要求
合格拼写错误不超过1个字母可识别核心词汇
不合格:拼写完全错误,或未抓住核心信息
【能力项】
题目1 - 听力理解([2级标签]- [考察核心知识点]
---
【题目2】
...(多题重复上述结构)
```
## 校验规则
自动校验不通过直接返回错误:
1. 词汇校验所有知识点必须在L1单词库中禁止超纲
2. 格式校验:缺少必填字段或格式不符合规范
3. 难度校验:听力句子长度、答案复杂度不符合对应等级要求
4. 逻辑校验:答案在听力文本中未明确提及
## 脚本使用说明
执行`scripts/generate_listening_form_fill.py`完成自动化生产:
```bash
python scripts/generate_listening_form_fill.py \
--knowledge "apple n.苹果;red adj.红色;eat v.吃" \
--difficulty "A" \
--count 3 \
--scene "学校场景"
```
> 🔘 词汇校验规则脚本会自动校验所有知识点是否在共享L1词库路径`business_knowledge/L1_word_list.json`)中,禁止使用超纲词汇,无需单独传入词表文件。

View File

@ -0,0 +1,82 @@
---
name: listening_info_match
description: K12英语听力信息匹配题标准化设计、生产、审校工具。对应题型L2 - Movers - 听力 Part5 信息匹配,考察核心能力:信息关联、多任务处理、干扰抑制。使用场景:(1) 根据给定知识点、难度等级生成符合教研规范的听力信息匹配题;(2) 校验题目格式、难度匹配、内容合规性;(3) 批量生产听力信息匹配题。触发关键词听力信息匹配、信息匹配题、listening info match、听力Part5信息匹配、多信息关联题
---
# Listening Info Match 听力信息匹配题生产技能
## 题型说明
本技能对应官方题型:**L2 - Movers - 听力 Part5 信息匹配【阶段归属L2专属】**,考察核心能力为**信息关联(多任务处理+干扰抑制)**学生听1段长对话/独白,将左右两栏的相关信息进行匹配,考察对多个信息点的关联、记忆和区分能力。
## 难度对应关系(与教研标准对齐)
| 难度等级 | 对应L1/L2阶段 | 对应剑桥考试等级 | 难度描述 |
|----------|------------|------------------|----------|
| A级 | L1 第5-6阶段 | Movers 1 | 匹配项5组信息直接对应无干扰 |
| B级 | L2 第1-2阶段 | Movers 2 | 匹配项5-6组信息需要简单关联1个干扰项 |
| C级 | L2 第3-4阶段 | Movers 3 | 匹配项6组信息需要整合关联2个干扰项 |
| D级 | L2 第5-6阶段 | Flyers 1 | 匹配项6-7组信息需要推断关联3个干扰项 |
## 能力标签绑定规则
1. 题型固定绑定通用能力标签:听力理解、信息关联、干扰抑制
2. 能力标签分级规则:
- 1级标签统一使用**听力理解**
- 2级标签根据考察点动态匹配直接关联/简单关联/整合关联/推断关联
3. 生产时自动标注每道题考察的核心知识点
## 生产规则
1. 每道题包含1段听力文本、左右两栏匹配项、正确匹配关系
2. 难度匹配规则:
- A级左栏为人物右栏为物品直接对应
- B级左栏为人物右栏为动作/物品属性,简单关联
- C级左栏为时间/地点,右栏为事件/人物,整合关联
- D级左栏为人物右栏为未来计划/感受,推断关联
3. 听力文本要求:信息点清晰,顺序与左栏对应
4. 匹配项要求:干扰项为对话中出现的无关信息,避免过于明显
## 输入参数
| 参数 | 必填 | 格式示例 | 说明 |
|------|------|----------|------|
| 知识点 | ✅ | `apple n.苹果;red adj.红色;eat v.吃` | 考察的核心知识点列表 |
| 难度等级 | ✅ | `A级` / `L2第2阶段` / `Movers 2` | 难度等级或对应阶段 |
| 题量 | 🟢 | `5` | 生成题目数量默认1道 |
| 场景要求 | 🟢 | `场景为生日派对` | 指定题目场景,不指定则自动匹配知识点 |
## 输出格式规范
严格按照以下格式输出,禁止额外内容:
```
【题目组描述】
[整体场景说明,例如:听对话,将人物和对应的礼物进行匹配]
---
【题目1】
【听力文本】
A: [对话内容]
B: [对话内容]
...
【匹配项】
左栏:
1. [左栏项1]
2. [左栏项2]
3. [左栏项3]
右栏:
A. [右栏项A]
B. [右栏项B]
C. [右栏项C]
【正确答案】
1. [匹配字母]
2. [匹配字母]
3. [匹配字母]
【能力项】
题目1 - 听力理解([2级标签]- [考察核心知识点]
---
【题目2】
...(多题重复上述结构)
```
## 校验规则
自动校验不通过直接返回错误:
1. 词汇校验:所有知识点必须在对应级别单词库中,禁止超纲
2. 格式校验:缺少必填字段或格式不符合规范
3. 难度校验:匹配项数量、信息复杂度不符合对应等级要求
4. 逻辑校验:匹配关系无对应依据,或干扰项设置不合理
## 脚本使用说明
执行`scripts/generate_listening_info_match.py`完成自动化生产:
```bash
python scripts/generate_listening_info_match.py \
--knowledge "apple n.苹果;red adj.红色;eat v.吃" \
--difficulty "A" \
--count 3 \
--scene "派对场景"
```
> 🔘 词汇校验规则脚本会自动校验所有知识点是否在共享L1/L2词库中禁止使用超纲词汇无需单独传入词表文件。

View File

@ -0,0 +1,83 @@
---
name: listening_long_conversation
description: K12英语听力长对话选择题标准化设计、生产、审校工具。对应题型L2 - Movers - 听力 Part3 长对话选择,考察核心能力:逻辑理解、信息整合、干扰抑制。使用场景:(1) 根据给定知识点、难度等级生成符合教研规范的听力长对话选择题;(2) 校验题目格式、难度匹配、内容合规性;(3) 批量生产听力长对话选择题。触发关键词听力长对话选择、长对话选择题、listening long conversation、听力Part3长对话、逻辑理解题
---
# Listening Long Conversation 听力长对话选择题生产技能
## 题型说明
本技能对应官方题型:**L2 - Movers - 听力 Part3 长对话选择【阶段归属L2专属】**,考察核心能力为**逻辑理解(信息整合+干扰抑制)**学生听1段3-5轮的长对话回答3-4道选择题考察对对话整体逻辑、隐含信息、因果关系的理解能力。
## 难度对应关系(与教研标准对齐)
| 难度等级 | 对应L1/L2阶段 | 对应剑桥考试等级 | 难度描述 |
|----------|------------|------------------|----------|
| A级 | L1 第5-6阶段 | Movers 1 | 对话3轮3道题答案直接对应对话内容无干扰 |
| B级 | L2 第1-2阶段 | Movers 2 | 对话4轮3道题答案需要简单推理1个干扰项 |
| C级 | L2 第3-4阶段 | Movers 3 | 对话5轮4道题答案需要逻辑整合2个干扰项 |
| D级 | L2 第5-6阶段 | Flyers 1 | 对话6轮4道题答案需要隐含信息推断3个干扰项 |
## 能力标签绑定规则
1. 题型固定绑定通用能力标签:听力理解、逻辑推理、信息整合
2. 能力标签分级规则:
- 1级标签统一使用**听力理解**
- 2级标签根据考察点动态匹配直接信息提取/简单推理/逻辑整合/隐含信息推断
3. 生产时自动标注每道题考察的核心知识点
## 生产规则
1. 每道题包含1段长对话文本、3-4道选择题每道3个选项、正确答案列表
2. 难度匹配规则:
- A级对话主题明确问题直接指向对话内容答案原句出现
- B级对话包含简单转折问题需要简单推理干扰项为对话中出现的无关信息
- C级对话包含多个信息点问题需要整合多处信息干扰项为部分正确信息
- D级对话包含隐含观点/因果关系,问题需要推断,干扰项为完全错误但看似合理的信息
3. 听力文本要求:对话自然流畅,符合日常交流逻辑,角色明确
4. 选项要求:干扰项设置合理,避免过于明显的错误
## 输入参数
| 参数 | 必填 | 格式示例 | 说明 |
|------|------|----------|------|
| 知识点 | ✅ | `apple n.苹果;red adj.红色;eat v.吃` | 考察的核心知识点列表 |
| 难度等级 | ✅ | `A级` / `L2第2阶段` / `Movers 2` | 难度等级或对应阶段 |
| 题量 | 🟢 | `5` | 生成题目数量默认1道 |
| 场景要求 | 🟢 | `场景为周末购物` | 指定题目场景,不指定则自动匹配知识点 |
## 输出格式规范
严格按照以下格式输出,禁止额外内容:
```
【题目组描述】
[整体场景说明,例如:听对话,选择正确的答案]
---
【题目1】
【听力文本】
A: [对话内容]
B: [对话内容]
A: [对话内容]
B: [对话内容]
【问题列表】
1. [问题1内容]
A. [选项A内容]
B. [选项B内容]
C. [选项C内容]
2. [问题2内容]
A. [选项A内容]
B. [选项B内容]
C. [选项C内容]
【正确答案】
1. [正确选项字母]
2. [正确选项字母]
【能力项】
题目1 - 听力理解([2级标签]- [考察核心知识点]
题目2 - 听力理解([2级标签]- [考察核心知识点]
---
【题目2】
...(多题重复上述结构)
```
## 校验规则
自动校验不通过直接返回错误:
1. 词汇校验:所有知识点必须在对应级别单词库中,禁止超纲
2. 格式校验:缺少必填字段或格式不符合规范
3. 难度校验:对话长度、问题复杂度不符合对应等级要求
4. 逻辑校验:答案在对话中无对应依据,或干扰项设置不合理
## 脚本使用说明
执行`scripts/generate_listening_long_conversation.py`完成自动化生产:
```bash
python scripts/generate_listening_long_conversation.py \
--knowledge "apple n.苹果;red adj.红色;eat v.吃" \
--difficulty "A" \
--count 3 \
--scene "购物场景"
```
> 🔘 词汇校验规则脚本会自动校验所有知识点是否在共享L1/L2词库中禁止使用超纲词汇无需单独传入词表文件。

View File

@ -0,0 +1,84 @@
---
name: listening_short_conversation
description: K12英语听力短对话选择题标准化设计、生产、审校工具。对应题型L1 - Starters - 听力 Part4 短对话选择,考察核心能力:信息抓取、快速反应、场景理解。使用场景:(1) 根据给定知识点、难度等级生成符合教研规范的听力短对话选择题;(2) 校验题目格式、难度匹配、内容合规性;(3) 批量生产听力短对话选择题。触发关键词听力短对话选择、短对话选择题、listening short conversation、听力Part4短对话、场景理解题
---
# Listening Short Conversation 听力短对话选择题生产技能
## 题型说明
本技能对应官方题型:**L2 - Movers - 听力 Part4 短对话选择【阶段归属L2专属】**,考察核心能力为**场景理解(快速信息抓取+反应)**学生听多段1-2轮的短对话每段对话对应1道选择题考察对常见场景、日常用语的理解能力。
## 难度对应关系(与教研标准对齐)
| 难度等级 | 对应L1阶段 | 对应剑桥考试等级 | 难度描述 |
|----------|------------|------------------|----------|
| A级 | L1 第1-2阶段 | Starters 1-2 | 每段对话1轮问题直接问物品/场景,答案直接明确 |
| B级 | L1 第3-4阶段 | Starters 3 | 每段对话1-2轮问题问物品属性/人物动作,答案简单明确 |
| C级 | L1 第5-6阶段 | Movers 1 | 每段对话2轮问题问人物意图/事件结果,需要简单推理 |
| D级 | L2 第1-2阶段 | Movers 2-3 | 每段对话2轮问题问隐含观点/未来计划,需要推理 |
## 能力标签绑定规则
1. 题型固定绑定通用能力标签:听力理解、场景识别、快速反应
2. 能力标签分级规则:
- 1级标签统一使用**听力理解**
- 2级标签根据考察点动态匹配物品识别/属性判断/动作识别/意图推断
3. 生产时自动标注每道题考察的核心知识点
## 生产规则
1. 每道题包含4-5段短对话、每段对应1道选择题3个选项、正确答案列表
2. 难度匹配规则:
- A级对话为简单问候/物品问答,选项差异明显
- B级对话为物品属性/动作问答,选项为同类差异
- C级对话为事件/计划讨论,选项为相似事件
- D级对话为观点/感受表达,选项为相似感受
3. 听力文本要求:对话简短自然,符合日常交流场景
4. 选项要求:干扰项为常见易混淆的场景内容
## 输入参数
| 参数 | 必填 | 格式示例 | 说明 |
|------|------|----------|------|
| 知识点 | ✅ | `apple n.苹果;red adj.红色;eat v.吃` | 考察的核心知识点列表 |
| 难度等级 | ✅ | `A级` / `L1第2阶段` / `Starters 2` | 难度等级或对应阶段 |
| 题量 | 🟢 | `5` | 生成题目数量默认1套5段对话 |
| 场景要求 | 🟢 | `场景为家庭日常` | 指定题目场景,不指定则自动匹配知识点 |
## 输出格式规范
严格按照以下格式输出,禁止额外内容:
```
【题目组描述】
[整体场景说明,例如:听每段短对话,选择正确的答案]
---
【题目1】
【听力文本】
1.
A: [对话内容]
B: [对话内容]
Q: [问题1内容]
A. [选项A内容]
B. [选项B内容]
C. [选项C内容]
2.
A: [对话内容]
B: [对话内容]
Q: [问题2内容]
A. [选项A内容]
B. [选项B内容]
C. [选项C内容]
【正确答案】
1. [正确选项字母]
2. [正确选项字母]
【能力项】
题目1 - 听力理解([2级标签]- [考察核心知识点]
题目2 - 听力理解([2级标签]- [考察核心知识点]
---
【题目2】
...(多套题重复上述结构)
```
## 校验规则
自动校验不通过直接返回错误:
1. 词汇校验所有知识点必须在L1单词库中禁止超纲
2. 格式校验:缺少必填字段或格式不符合规范
3. 难度校验:对话长度、问题复杂度不符合对应等级要求
4. 逻辑校验:答案在对话中无对应依据,或干扰项设置不合理
## 脚本使用说明
执行`scripts/generate_listening_short_conversation.py`完成自动化生产:
```bash
python scripts/generate_listening_short_conversation.py \
--knowledge "apple n.苹果;red adj.红色;eat v.吃" \
--difficulty "A" \
--count 3 \
--scene "家庭场景"
```
> 🔘 词汇校验规则脚本会自动校验所有知识点是否在共享L1词库路径`business_knowledge/L1_word_list.json`)中,禁止使用超纲词汇,无需单独传入词表文件。

View File

@ -0,0 +1,81 @@
---
name: reading_cloze
description: K12英语阅读完形填空题标准化设计、生产、审校工具。对应题型L2 - Movers - 阅读 Part4 完形填空,考察核心能力:词汇运用、语法判断、上下文逻辑理解。使用场景:(1) 根据给定知识点、难度等级生成符合教研规范的阅读完形填空题;(2) 校验题目格式、难度匹配、内容合规性;(3) 批量生产阅读完形填空题。触发关键词阅读完形填空、完形填空题、reading cloze、阅读Part4完形填空、词汇运用题
---
# Reading Cloze 阅读完形填空题生产技能
## 题型说明
本技能对应官方题型:**L2 - Movers - 阅读 Part4 完形填空【阶段归属L2专属】**,考察核心能力为**词汇运用(语法判断+上下文逻辑理解)**学生阅读1篇80-150词的短文文中有3-5个空缺每个空缺从3个选项中选择正确的单词填入考察词汇、语法和上下文理解能力。
## 难度对应关系(与教研标准对齐)
| 难度等级 | 对应L1/L2阶段 | 对应剑桥考试等级 | 难度描述 |
|----------|------------|------------------|----------|
| A级 | L1 第5-6阶段 | Movers 1 | 短文80词左右3个空考察名词/形容词等实词,上下文提示明显 |
| B级 | L2 第1-2阶段 | Movers 2 | 短文100词左右4个空考察实词+简单介词/动词,上下文有提示 |
| C级 | L2 第3-4阶段 | Movers 3 | 短文120词左右5个空考察实词+虚词,需要简单逻辑判断 |
| D级 | L2 第5-6阶段 | Flyers 1 | 短文150词左右5个空考察词汇+语法+逻辑,需要上下文推断 |
## 能力标签绑定规则
1. 题型固定绑定通用能力标签:阅读理解、词汇运用、逻辑推理
2. 能力标签分级规则:
- 1级标签统一使用**阅读理解**
- 2级标签根据考察点动态匹配词汇运用、语法判断、逻辑推理
3. 生产时自动标注每道题考察的核心知识点
## 生产规则
1. 每道题包含1篇带空缺的短文、每个空缺的3个选项、正确答案列表
2. 难度匹配规则:
- A级空缺为核心名词/形容词,选项差异明显,上下文直接提示答案
- B级空缺为动词/介词,选项为同类易混淆词汇,上下文有间接提示
- C级空缺需要结合前后句逻辑判断选项为相似词汇
- D级空缺需要结合全文主旨判断选项为易混淆的词汇/语法形式
3. 短文要求:内容连贯,情节完整,符合对应难度词汇要求
4. 选项要求:干扰项为常见易混淆词汇、语法形式错误的选项、不符合上下文逻辑的选项
## 输入参数
| 参数 | 必填 | 格式示例 | 说明 |
|------|------|----------|------|
| 知识点 | ✅ | `apple n.苹果;red adj.红色;eat v.吃` | 考察的核心知识点列表 |
| 难度等级 | ✅ | `A级` / `L2第2阶段` / `Movers 2` | 难度等级或对应阶段 |
| 题量 | 🟢 | `5` | 生成题目数量默认1道 |
| 场景要求 | 🟢 | `场景为生日派对` | 指定题目场景,不指定则自动匹配知识点 |
## 输出格式规范
严格按照以下格式输出,禁止额外内容:
```
【题目组描述】
[整体场景说明,例如:阅读短文,选择正确的单词填入空缺处]
---
【题目1】
【短文内容】
Today is my birthday. I have a ___1___ party at home. My friends give me many ___2___.
1.
A. birthday
B. school
C. park
2.
A. books
B. gifts
C. pens
【正确答案】
1. A
2. B
【能力项】
题目1 - 阅读理解([2级标签]- [考察核心知识点]
题目2 - 阅读理解([2级标签]- [考察核心知识点]
【解析】
✅ 本题考察【阅读理解(对应能力标签)】能力。结合上下文逻辑和词汇含义,就能选出正确答案。记住空缺的单词要符合句子意思和语法,这类题就能轻松做对哦😉
---
【题目2】
...(多套题重复上述结构)
```
## 校验规则
自动校验不通过直接返回错误:
1. 词汇校验:所有知识点必须在对应级别单词库中,禁止超纲
2. 格式校验:缺少必填字段或格式不符合规范
3. 难度校验:短文长度、空缺复杂度不符合对应等级要求
4. 逻辑校验:答案不符合上下文逻辑,或干扰项设置不合理
## 脚本使用说明
执行`scripts/generate_reading_cloze.py`完成自动化生产:
```bash
python scripts/generate_reading_cloze.py \
--knowledge "apple n.苹果;red adj.红色;eat v.吃" \
--difficulty "A" \
--count 3 \
--scene "派对场景"
```
> 🔘 词汇校验规则脚本会自动校验所有知识点是否在共享L1/L2词库中禁止使用超纲词汇无需单独传入词表文件。

View File

@ -0,0 +1,80 @@
---
name: reading_info_match
description: K12英语阅读信息匹配题标准化设计、生产、审校工具。对应题型L1 - Starters - 阅读 Part1 信息匹配,考察核心能力:信息抓取、快速阅读、图文匹配。使用场景:(1) 根据给定知识点、难度等级生成符合教研规范的阅读信息匹配题;(2) 校验题目格式、难度匹配、内容合规性;(3) 批量生产阅读信息匹配题。触发关键词阅读信息匹配、信息匹配题、reading info match、阅读Part1信息匹配、图文匹配题
---
# Reading Info Match 阅读信息匹配题生产技能
## 题型说明
本技能对应官方题型:**L2 - Movers - 阅读 Part1 信息匹配【阶段归属L2专属】**,考察核心能力为**信息抓取(快速阅读+图文匹配)**学生阅读5-6个简短文本标识/告示/短句),与对应的图片/标题进行匹配,考察快速抓取关键信息和图文匹配能力。
## 难度对应关系(与教研标准对齐)
| 难度等级 | 对应L1阶段 | 对应剑桥考试等级 | 难度描述 |
|----------|------------|------------------|----------|
| A级 | L1 第1-2阶段 | Starters 1-2 | 文本为1-2个单词图片差异极大直接对应 |
| B级 | L1 第3-4阶段 | Starters 3 | 文本为3-5词短句图片为同类差异简单对应 |
| C级 | L1 第5-6阶段 | Movers 1 | 文本为5-8词短句需要提取关键词匹配 |
| D级 | L2 第1-2阶段 | Movers 2-3 | 文本为8-10词短句包含干扰信息需要筛选匹配 |
## 能力标签绑定规则
1. 题型固定绑定通用能力标签:阅读理解、信息抓取、快速阅读
2. 能力标签分级规则:
- 1级标签统一使用**阅读理解**
- 2级标签根据考察点动态匹配图文匹配/关键词匹配/信息筛选
3. 生产时自动标注每道题考察的核心知识点
## 生产规则
1. 每道题包含5-6个简短文本、对应的匹配项图片/标题)、正确匹配关系
2. 难度匹配规则:
- A级文本为单个名词直接对应图片内容
- B级文本为名词+属性,对应图片属性
- C级文本为简单动作/场景描述,对应场景图片
- D级文本包含多个信息点需要筛选核心关键词匹配
3. 文本要求:简洁清晰,符合对应难度词汇要求
4. 匹配项要求:干扰项为常见易混淆内容,避免过于明显的错误
## 输入参数
| 参数 | 必填 | 格式示例 | 说明 |
|------|------|----------|------|
| 知识点 | ✅ | `apple n.苹果;red adj.红色;eat v.吃` | 考察的核心知识点列表 |
| 难度等级 | ✅ | `A级` / `L1第2阶段` / `Starters 2` | 难度等级或对应阶段 |
| 题量 | 🟢 | `5` | 生成题目数量默认1套6小题 |
| 场景要求 | 🟢 | `场景为公共场所标识` | 指定题目场景,不指定则自动匹配知识点 |
## 输出格式规范
严格按照以下格式输出,禁止额外内容:
```
【题目组描述】
[整体场景说明,例如:阅读短句,与对应的图片进行匹配]
---
【题目1】
【文本列表】
1. [文本1内容]
2. [文本2内容]
3. [文本3内容]
【匹配项】
A. [匹配项A内容/图片描述]
B. [匹配项B内容/图片描述]
C. [匹配项C内容/图片描述]
【正确答案】
1. [匹配字母]
2. [匹配字母]
3. [匹配字母]
【能力项】
题目1 - 阅读理解([2级标签]- [考察核心知识点]
题目2 - 阅读理解([2级标签]- [考察核心知识点]
【解析】
✅ 本题考察【阅读理解(对应能力标签)】能力。阅读时抓住每个文本的关键词,直接对应到匹配项即可。记住快速抓取核心名词/动作,这类题就能快速做对哦😉
---
【题目2】
...(多套题重复上述结构)
```
## 校验规则
自动校验不通过直接返回错误:
1. 词汇校验所有知识点必须在L1单词库中禁止超纲
2. 格式校验:缺少必填字段或格式不符合规范
3. 难度校验:文本长度、匹配复杂度不符合对应等级要求
4. 逻辑校验:匹配关系无对应依据,或干扰项设置不合理
## 脚本使用说明
执行`scripts/generate_reading_info_match.py`完成自动化生产:
```bash
python scripts/generate_reading_info_match.py \
--knowledge "apple n.苹果;red adj.红色;eat v.吃" \
--difficulty "A" \
--count 3 \
--scene "标识场景"
```
> 🔘 词汇校验规则脚本会自动校验所有知识点是否在共享L1词库路径`business_knowledge/L1_word_list.json`)中,禁止使用超纲词汇,无需单独传入词表文件。

View File

@ -0,0 +1,82 @@
---
name: reading_long_passage
description: K12英语阅读长文选择题标准化设计、生产、审校工具。对应题型L2 - Movers - 阅读 Part3 长文选择,考察核心能力:篇章理解、细节定位、推理判断。使用场景:(1) 根据给定知识点、难度等级生成符合教研规范的阅读长文选择题;(2) 校验题目格式、难度匹配、内容合规性;(3) 批量生产阅读长文选择题。触发关键词阅读长文选择、长文选择题、reading long passage、阅读Part3长文选择、篇章理解题
---
# Reading Long Passage 阅读长文选择题生产技能
## 题型说明
本技能对应官方题型:**L2 - Movers - 阅读 Part3 长文选择【阶段归属L2专属】**,考察核心能力为**篇章理解(细节定位+推理判断)**学生阅读1篇100-200词的短文回答3-4道选择题考察对篇章整体内容、细节信息、推理判断的能力。
## 难度对应关系(与教研标准对齐)
| 难度等级 | 对应L1/L2阶段 | 对应剑桥考试等级 | 难度描述 |
|----------|------------|------------------|----------|
| A级 | L1 第5-6阶段 | Movers 1 | 短文100词左右3道题答案直接在原文中出现 |
| B级 | L2 第1-2阶段 | Movers 2 | 短文120-150词3道题答案需要简单定位 |
| C级 | L2 第3-4阶段 | Movers 3 | 短文150-180词4道题答案需要简单推理 |
| D级 | L2 第5-6阶段 | Flyers 1 | 短文180-200词4道题答案需要逻辑推断 |
## 能力标签绑定规则
1. 题型固定绑定通用能力标签:阅读理解、细节定位、推理判断
2. 能力标签分级规则:
- 1级标签统一使用**阅读理解**
- 2级标签根据考察点动态匹配细节理解、主旨大意、推理判断、观点态度
3. 生产时自动标注每道题考察的核心知识点
## 生产规则
1. 每道题包含1篇短文、3-4道选择题每道3个选项、正确答案列表
2. 难度匹配规则:
- A级短文结构简单句子短问题直接对应原文字句
- B级短文结构清晰包含简单复合句问题需要定位到原文某一句
- C级短文包含转折、因果逻辑问题需要整合多处信息
- D级短文包含隐含观点、人物情感问题需要推理判断
3. 短文要求:内容贴近学生生活,词汇符合对应难度,情节积极正向
4. 选项要求:干扰项为原文出现的无关信息、部分正确信息、看似合理的错误信息
## 输入参数
| 参数 | 必填 | 格式示例 | 说明 |
|------|------|----------|------|
| 知识点 | ✅ | `apple n.苹果;red adj.红色;eat v.吃` | 考察的核心知识点列表 |
| 难度等级 | ✅ | `A级` / `L2第2阶段` / `Movers 2` | 难度等级或对应阶段 |
| 题量 | 🟢 | `5` | 生成题目数量默认1道 |
| 场景要求 | 🟢 | `场景为周末活动` | 指定题目场景,不指定则自动匹配知识点 |
## 输出格式规范
严格按照以下格式输出,禁止额外内容:
```
【题目组描述】
[整体场景说明,例如:阅读短文,选择正确的答案]
---
【题目1】
【短文内容】
[短文内容]
【问题列表】
1. [问题1内容]
A. [选项A内容]
B. [选项B内容]
C. [选项C内容]
2. [问题2内容]
A. [选项A内容]
B. [选项B内容]
C. [选项C内容]
【正确答案】
1. [正确选项字母]
2. [正确选项字母]
【能力项】
题目1 - 阅读理解([2级标签]- [考察核心知识点]
题目2 - 阅读理解([2级标签]- [考察核心知识点]
【解析】
✅ 本题考察【阅读理解(对应能力标签)】能力。先读问题定位到原文对应的位置,就能找到答案。不要被干扰信息迷惑,这类题就能轻松做对哦😉
---
【题目2】
...(多套题重复上述结构)
```
## 校验规则
自动校验不通过直接返回错误:
1. 词汇校验:所有知识点必须在对应级别单词库中,禁止超纲
2. 格式校验:缺少必填字段或格式不符合规范
3. 难度校验:短文长度、问题复杂度不符合对应等级要求
4. 逻辑校验:答案在原文中无对应依据,或干扰项设置不合理
## 脚本使用说明
执行`scripts/generate_reading_long_passage.py`完成自动化生产:
```bash
python scripts/generate_reading_long_passage.py \
--knowledge "apple n.苹果;red adj.红色;eat v.吃" \
--difficulty "A" \
--count 3 \
--scene "周末活动场景"
```
> 🔘 词汇校验规则脚本会自动校验所有知识点是否在共享L1/L2词库中禁止使用超纲词汇无需单独传入词表文件。

View File

@ -0,0 +1,80 @@
---
name: reading_open_fill
description: K12英语阅读开放填空题标准化设计、生产、审校工具。对应题型L2 - Movers - 阅读 Part5 开放填空,考察核心能力:信息提取、词汇拼写、语法正确性。使用场景:(1) 根据给定知识点、难度等级生成符合教研规范的阅读开放填空题;(2) 校验题目格式、难度匹配、内容合规性;(3) 批量生产阅读开放填空题。触发关键词阅读开放填空、开放填空题、reading open fill、阅读Part5开放填空、拼写题
---
# Reading Open Fill 阅读开放填空题生产技能
## 题型说明
本技能对应官方题型:**L2 - Movers - 阅读 Part5 开放填空【阶段归属L2专属】**,考察核心能力为**信息提取(词汇拼写+语法正确性)**学生阅读1篇短文/通知/表格根据要求填写3-5个空缺的单词无选项提示考察信息提取、词汇拼写和语法正确性。
## 难度对应关系(与教研标准对齐)
| 难度等级 | 对应L1/L2阶段 | 对应剑桥考试等级 | 难度描述 |
|----------|------------|------------------|----------|
| A级 | L1 第5-6阶段 | Movers 1 | 空缺3个答案为1-4个字母的简单名词原文直接给出 |
| B级 | L2 第1-2阶段 | Movers 2 | 空缺4个答案为名词/形容词,原文直接给出,需要简单变形 |
| C级 | L2 第3-4阶段 | Movers 3 | 空缺5个答案为动词/短语,需要从原文提取后变形 |
| D级 | L2 第5-6阶段 | Flyers 1 | 空缺5个答案需要根据原文信息归纳总结符合语法要求 |
## 能力标签绑定规则
1. 题型固定绑定通用能力标签:阅读理解、信息提取、词汇拼写
2. 能力标签分级规则:
- 1级标签统一使用**阅读理解**
- 2级标签根据考察点动态匹配信息提取、词汇拼写、语法应用
3. 生产时自动标注每道题考察的核心知识点
## 生产规则
1. 每道题包含1篇阅读材料短文/通知/表格、3-5个填空问题、正确答案、评分标准
2. 难度匹配规则:
- A级答案为原文中直接出现的单词无需变形拼写简单
- B级答案为原文中直接出现的单词需要简单大小写/单复数变形
- C级答案需要从原文多个信息点提取进行词性/形式变形
- D级答案需要根据原文内容归纳总结不是原文原词
3. 阅读材料要求:信息点清晰,符合对应难度词汇要求
4. 评分标准要求:明确拼写错误的扣分规则,大小写/单复数错误的处理规则
## 输入参数
| 参数 | 必填 | 格式示例 | 说明 |
|------|------|----------|------|
| 知识点 | ✅ | `apple n.苹果;red adj.红色;eat v.吃` | 考察的核心知识点列表 |
| 难度等级 | ✅ | `A级` / `L2第2阶段` / `Movers 2` | 难度等级或对应阶段 |
| 题量 | 🟢 | `5` | 生成题目数量默认1道 |
| 场景要求 | 🟢 | `场景为活动通知` | 指定题目场景,不指定则自动匹配知识点 |
## 输出格式规范
严格按照以下格式输出,禁止额外内容:
```
【题目组描述】
[整体场景说明,例如:阅读通知,填写空缺的信息]
---
【题目1】
【阅读材料】
[阅读材料内容]
【填空问题】
1. What is the party time? ___
2. Where is the party? ___
【正确答案】
1. 3:00 pm
2. at home
【评分标准】
优秀:拼写完全正确,语法符合要求
合格拼写错误不超过1个字母语法基本正确
不合格:信息错误,或拼写完全无法识别
【能力项】
题目1 - 阅读理解([2级标签]- [考察核心知识点]
题目2 - 阅读理解([2级标签]- [考察核心知识点]
【解析】
✅ 本题考察【阅读理解(对应能力标签)】能力。从原文中找到对应的信息,正确拼写出来即可。注意单词的大小写和单复数形式哦,这类题就能拿满分哦😉
---
【题目2】
...(多套题重复上述结构)
```
## 校验规则
自动校验不通过直接返回错误:
1. 词汇校验:所有知识点必须在对应级别单词库中,禁止超纲
2. 格式校验:缺少必填字段或格式不符合规范
3. 难度校验:答案复杂度、拼写难度不符合对应等级要求
4. 逻辑校验:答案在原文中无对应依据,或要求不合理
## 脚本使用说明
执行`scripts/generate_reading_open_fill.py`完成自动化生产:
```bash
python scripts/generate_reading_open_fill.py \
--knowledge "apple n.苹果;red adj.红色;eat v.吃" \
--difficulty "A" \
--count 3 \
--scene "通知场景"
```
> 🔘 词汇校验规则脚本会自动校验所有知识点是否在共享L1/L2词库中禁止使用超纲词汇无需单独传入词表文件。

View File

@ -0,0 +1,80 @@
---
name: reading_paragraph_match
description: K12英语阅读段落匹配题标准化设计、生产、审校工具。对应题型L2 - Movers - 阅读 Part2 段落匹配,考察核心能力:主旨理解、信息归纳、快速阅读。使用场景:(1) 根据给定知识点、难度等级生成符合教研规范的阅读段落匹配题;(2) 校验题目格式、难度匹配、内容合规性;(3) 批量生产阅读段落匹配题。触发关键词阅读段落匹配、段落匹配题、reading paragraph match、阅读Part2段落匹配、主旨归纳题
---
# Reading Paragraph Match 阅读段落匹配题生产技能
## 题型说明
本技能对应官方题型:**L2 - Movers - 阅读 Part2 段落匹配【阶段归属L2专属】**,考察核心能力为**主旨理解(信息归纳+快速阅读)**学生阅读4-5个简短段落与对应的段落标题/主旨句进行匹配,考察归纳段落主旨和抓取核心信息的能力。
## 难度对应关系(与教研标准对齐)
| 难度等级 | 对应L1/L2阶段 | 对应剑桥考试等级 | 难度描述 |
|----------|------------|------------------|----------|
| A级 | L1 第5-6阶段 | Movers 1 | 段落3-4句话主旨直接明确无干扰 |
| B级 | L2 第1-2阶段 | Movers 2 | 段落4-5句话主旨需要简单归纳1个干扰项 |
| C级 | L2 第3-4阶段 | Movers 3 | 段落5-6句话主旨需要整合信息2个干扰项 |
| D级 | L2 第5-6阶段 | Flyers 1 | 段落6-7句话主旨需要隐含推断3个干扰项 |
## 能力标签绑定规则
1. 题型固定绑定通用能力标签:阅读理解、主旨归纳、快速阅读
2. 能力标签分级规则:
- 1级标签统一使用**阅读理解**
- 2级标签根据考察点动态匹配主旨匹配/细节匹配/信息归纳
3. 生产时自动标注每道题考察的核心知识点
## 生产规则
1. 每道题包含4-5个简短段落、对应的标题选项、正确匹配关系
2. 难度匹配规则:
- A级段落围绕单一核心事物描述标题直接包含核心名词
- B级段落围绕单一事件描述标题概括核心事件
- C级段落包含多个信息点标题整合核心内容
- D级段落包含隐含观点标题推断核心主旨
3. 段落要求:内容贴近学生生活,词汇符合对应难度
4. 标题要求:干扰项为段落中出现的细节信息,避免过于明显的错误
## 输入参数
| 参数 | 必填 | 格式示例 | 说明 |
|------|------|----------|------|
| 知识点 | ✅ | `apple n.苹果;red adj.红色;eat v.吃` | 考察的核心知识点列表 |
| 难度等级 | ✅ | `A级` / `L2第2阶段` / `Movers 2` | 难度等级或对应阶段 |
| 题量 | 🟢 | `5` | 生成题目数量默认1道 |
| 场景要求 | 🟢 | `场景为校园生活` | 指定题目场景,不指定则自动匹配知识点 |
## 输出格式规范
严格按照以下格式输出,禁止额外内容:
```
【题目组描述】
[整体场景说明,例如:阅读段落,与对应的标题进行匹配]
---
【题目1】
【段落列表】
1. [段落1内容]
2. [段落2内容]
3. [段落3内容]
【标题选项】
A. [标题A内容]
B. [标题B内容]
C. [标题C内容]
【正确答案】
1. [匹配字母]
2. [匹配字母]
3. [匹配字母]
【能力项】
题目1 - 阅读理解([2级标签]- [考察核心知识点]
题目2 - 阅读理解([2级标签]- [考察核心知识点]
【解析】
✅ 本题考察【阅读理解(对应能力标签)】能力。阅读时抓住每段的核心内容,不要被细节信息干扰,对应到最合适的标题即可。记住先读标题再读段落,这类题就能快速做对哦😉
---
【题目2】
...(多套题重复上述结构)
```
## 校验规则
自动校验不通过直接返回错误:
1. 词汇校验:所有知识点必须在对应级别单词库中,禁止超纲
2. 格式校验:缺少必填字段或格式不符合规范
3. 难度校验:段落长度、匹配复杂度不符合对应等级要求
4. 逻辑校验:匹配关系无对应依据,或干扰项设置不合理
## 脚本使用说明
执行`scripts/generate_reading_paragraph_match.py`完成自动化生产:
```bash
python scripts/generate_reading_paragraph_match.py \
--knowledge "apple n.苹果;red adj.红色;eat v.吃" \
--difficulty "A" \
--count 3 \
--scene "校园场景"
```
> 🔘 词汇校验规则脚本会自动校验所有知识点是否在共享L1/L2词库中禁止使用超纲词汇无需单独传入词表文件。

View File

@ -0,0 +1,94 @@
---
name: speaking_pic_qa
description: K12英语口语看图说话题标准化设计、生产、审校工具。对应题型L1 - Starters - 口语 Part2 看图问答,考察核心能力:口语表达、图片信息提取、场景词汇运用。使用场景:(1) 根据给定知识点、难度等级生成符合教研规范的口语看图问答题目;(2) 校验题目格式、难度匹配、内容合规性;(3) 批量生产口语看图问答题目。触发关键词口语看图说话、看图问答、speaking pic qa、口语Part2看图题、图片口语输出题
---
# Speaking Pic QA 口语看图说话题生产技能
## 题型说明
本技能对应官方题型:**L1 - Starters - 口语 Part2 看图问答【阶段归属L1专属】**,考察核心能力为**口语表达(图片信息提取+场景词汇运用)**:学生观察指定场景图片,根据问题提示口头输出对应答案,考察词汇储备、发音准确性、表达流畅度。
## 难度对应关系(与教研标准对齐)
| 难度等级 | 对应L1阶段 | 对应剑桥考试等级 | 难度描述 |
|----------|------------|------------------|----------|
| A级 | L1 第1-2阶段 | Starters 1-2 | 问题为"What's this?"类简单提问答案为1-2个核心名词无语法要求 |
| B级 | L1 第3-4阶段 | Starters 3 | 问题为"What color is it?"/ "How many?"类属性提问答案为3-5词短语包含核心名词+属性词 |
| C级 | L1 第5-6阶段 | Movers 1 | 问题为"What is he doing?"类动作提问答案为完整简单句主谓宾结构完整6-10词 |
| D级 | L2 第1-2阶段 | Movers 2-3 | 问题为"What can you see in the picture?"类场景描述提问答案为2-3句连贯表达15-20词 |
## 能力标签绑定规则
1. 题型固定绑定通用能力标签:口语表达、图片信息识别、场景词汇运用
2. 能力标签分级规则:
- 1级标签统一使用**口语表达**
- 2级标签根据考察点动态匹配物品词汇输出/属性描述输出/动作表达输出/场景描述输出
3. 生产时自动标注每道题考察的核心知识点
## 生产规则
1. 每道题包含1张图片描述、1个引导问题、1-3个参考回答、评分标准分3个等级
2. 难度匹配规则:
- A级图片仅包含1个核心物品背景无干扰元素问题直接指向核心物品
- B级图片包含1个核心物品+1个明确属性颜色/数量等),问题指向物品属性
- C级图片包含1个核心人物+1个明确动作问题指向人物动作
- D级图片包含完整场景物品+人物+动作),问题指向整体场景描述
3. 参考回答要求至少提供1个满分回答可提供2个不同表述的合格回答
4. 评分标准要求:明确标注"优秀/合格/不合格"三个等级的判断依据
## 输入参数
| 参数 | 必填 | 格式示例 | 说明 |
|------|------|----------|------|
| 知识点 | ✅ | `apple n.苹果;red adj.红色;eat v.吃` | 考察的核心知识点列表 |
| 难度等级 | ✅ | `A级` / `L1第2阶段` / `Starters 2` | 难度等级或对应阶段 |
| 题量 | 🟢 | `5` | 生成题目数量默认1道 |
| 场景要求 | 🟢 | `场景为家庭厨房` | 指定题目场景,不指定则自动匹配知识点 |
## 输出格式规范
严格按照以下格式输出,禁止额外内容:
```
【题目组描述】
[整体场景说明,例如:看图片,回答问题]
---
【题目1】
【图片描述】
[图片核心特征描述,清晰呈现考察点]
【引导问题】
[符合难度的口语提问]
【参考回答】
满分回答:[满分标准答案]
合格回答:[可接受的合格答案,可选]
【评分标准】
优秀:[优秀回答判断标准]
合格:[合格回答判断标准]
不合格:[不合格回答判断标准]
【能力项】
题目1 - 口语表达([2级标签]- [考察核心知识点例如red apple]
---
【题目2】
...(多题重复上述结构)
```
## 校验规则
自动校验不通过直接返回错误:
1. 词汇校验:所有知识点必须在对应级别单词库中,禁止超纲
2. 格式校验:缺少必填字段或格式不符合规范
3. 难度校验:引导问题复杂度、参考回答长度不符合对应等级要求
4. 逻辑校验:图片描述与考察知识点、问题不匹配
## 题型示例
```
【题目1】
【图片描述】
白色背景下的红色苹果,无其他干扰元素
【引导问题】
What's this?
【参考回答】
满分回答Apple.
合格回答Red apple.
【评分标准】
优秀:准确说出核心词汇"apple",发音清晰
合格:说出"red apple"等包含核心词汇的表述,发音可理解
不合格:未说出核心词汇,或发音完全无法识别
【能力项】
题目1 - 口语表达(物品词汇输出)- apple
```
## 脚本使用说明
执行`scripts/generate_speaking_pic_qa.py`完成自动化生产:
```bash
python scripts/generate_speaking_pic_qa.py \
--knowledge "apple n.苹果;red adj.红色;eat v.吃" \
--difficulty "A" \
--count 3 \
--scene "家庭场景"
```
> 🔘 词汇校验规则脚本会自动校验所有知识点是否在共享L1词库路径`business_knowledge/L1_word_list.json`)中,禁止使用超纲词汇,无需单独传入或保存词表文件。

View File

@ -0,0 +1,76 @@
---
name: speaking_topic_discussion
description: K12英语口语话题讨论题标准化设计、生产、审校工具。对应题型L2 - Movers - 口语 Part2 话题讨论,考察核心能力:口语表达、逻辑组织、观点阐述。使用场景:(1) 根据给定知识点、难度等级生成符合教研规范的口语话题讨论题;(2) 校验题目格式、难度匹配、内容合规性;(3) 批量生产口语话题讨论题。触发关键词口语话题讨论、话题讨论题、speaking topic discussion、口语Part2话题讨论、观点表达题
---
# Speaking Topic Discussion 口语话题讨论题生产技能
## 题型说明
本技能对应官方题型:**L2 - Movers - 口语 Part2 话题讨论【阶段归属L2专属】**,考察核心能力为**口语表达(逻辑组织+观点阐述)**学生根据给定话题进行1-2分钟的口头阐述考察词汇运用、逻辑连贯、观点表达能力。
## 难度对应关系(与教研标准对齐)
| 难度等级 | 对应L1/L2阶段 | 对应剑桥考试等级 | 难度描述 |
|----------|------------|------------------|----------|
| A级 | L1 第5-6阶段 | Movers 1 | 话题为具体物品/活动回答3-4句话即可无需复杂逻辑 |
| B级 | L2 第1-2阶段 | Movers 2 | 话题为喜好/习惯回答4-5句话有简单逻辑顺序 |
| C级 | L2 第3-4阶段 | Movers 3 | 话题为观点/经历回答5-6句话有清晰逻辑层次 |
| D级 | L2 第5-6阶段 | Flyers 1 | 话题为抽象感受/计划回答6-8句话逻辑连贯有支撑 |
## 能力标签绑定规则
1. 题型固定绑定通用能力标签:口语表达、逻辑组织、观点阐述
2. 能力标签分级规则:
- 1级标签统一使用**口语表达**
- 2级标签根据考察点动态匹配物品描述/喜好表达/观点阐述/经历分享
3. 生产时自动标注每道题考察的核心知识点
## 生产规则
1. 每道题包含1个话题、1-2个引导提示、参考回答、评分标准
2. 难度匹配规则:
- A级话题为具体事物如"Describe your favorite toy",回答描述特征即可
- B级话题为日常喜好如"Talk about your favorite food",回答说明原因即可
- C级话题为个人经历如"Talk about your last birthday",回答按时间顺序阐述即可
- D级话题为未来计划如"Talk about your weekend plan",回答有清晰结构和细节
3. 话题要求:贴近学生生活,符合对应年龄段认知
4. 参考回答要求至少提供1个满分参考回答结构清晰
## 输入参数
| 参数 | 必填 | 格式示例 | 说明 |
|------|------|----------|------|
| 知识点 | ✅ | `apple n.苹果;red adj.红色;eat v.吃` | 考察的核心知识点列表 |
| 难度等级 | ✅ | `A级` / `L2第2阶段` / `Movers 2` | 难度等级或对应阶段 |
| 题量 | 🟢 | `5` | 生成题目数量默认1道 |
| 场景要求 | 🟢 | `话题为食物` | 指定话题范围,不指定则自动匹配知识点 |
## 输出格式规范
严格按照以下格式输出,禁止额外内容:
```
【题目组描述】
[整体场景说明例如根据话题进行1分钟的口头阐述]
---
【题目1】
【话题】
[话题内容]
【引导提示】
1. [提示1可选]
2. [提示2可选]
【参考回答】
满分回答:[满分参考回答内容]
【评分标准】
优秀:回答内容完整,逻辑连贯,词汇丰富,发音清晰流畅
合格:回答包含核心内容,逻辑基本连贯,发音可理解
不合格:回答内容不相关,或逻辑混乱无法理解
【能力项】
题目1 - 口语表达([2级标签]- [考察核心知识点]
---
【题目2】
...(多题重复上述结构)
```
## 校验规则
自动校验不通过直接返回错误:
1. 词汇校验:所有知识点必须在对应级别单词库中,禁止超纲
2. 格式校验:缺少必填字段或格式不符合规范
3. 难度校验:话题复杂度、参考回答长度不符合对应等级要求
4. 逻辑校验:话题不符合学生认知范围
## 脚本使用说明
执行`scripts/generate_speaking_topic_discussion.py`完成自动化生产:
```bash
python scripts/generate_speaking_topic_discussion.py \
--knowledge "apple n.苹果;red adj.红色;eat v.吃" \
--difficulty "A" \
--count 3 \
--topic "食物"
```
> 🔘 词汇校验规则脚本会自动校验所有知识点是否在共享L1/L2词库中禁止使用超纲词汇无需单独传入词表文件。

View File

@ -0,0 +1,81 @@
---
name: speaking_daily_qa
description: K12英语口语日常回答题标准化设计、生产、审校工具。对应题型L1 - Starters - 口语 Part1 日常回答,考察核心能力:口语表达、日常用语运用、快速反应。使用场景:(1) 根据给定知识点、难度等级生成符合教研规范的口语日常回答题;(2) 校验题目格式、难度匹配、内容合规性;(3) 批量生产口语日常回答题。触发关键词口语日常回答、日常问答题、speaking daily qa、口语Part1日常回答、日常口语表达题
---
# Speaking Daily QA 口语日常回答题生产技能
## 题型说明
本技能对应官方题型:**口语 Part1 日常回答【阶段归属L1&L2共用通过难度参数区分】**,考察核心能力为**口语表达(日常用语运用+快速反应)**学生回答3-4个日常问题每个问题回答1-3句话考察日常词汇、句式的运用能力和表达流畅度。
## 难度对应关系(与教研标准对齐)
| 难度等级 | 对应L1阶段 | 对应剑桥考试等级 | 难度描述 |
|----------|------------|------------------|----------|
| A级 | L1 第1-2阶段 | Starters 1-2 | 问题为个人基本信息类答案为1-2个单词/短语即可 |
| B级 | L1 第3-4阶段 | Starters 3 | 问题为喜好/日常活动类答案为1个简单句即可 |
| C级 | L1 第5-6阶段 | Movers 1 | 问题为习惯/能力类答案为2个简单句即可 |
| D级 | L2 第1-2阶段 | Movers 2-3 | 问题为经历/计划类答案为2-3个连贯句子即可 |
## 能力标签绑定规则
1. 题型固定绑定通用能力标签:口语表达、日常用语运用、快速反应
2. 能力标签分级规则:
- 1级标签统一使用**口语表达**
- 2级标签根据考察点动态匹配基础信息表达/喜好表达/习惯表达/计划表达
3. 生产时自动标注每道题考察的核心知识点
## 生产规则
1. 每道题包含3-4个问题、每个问题的参考回答、评分标准
2. 难度匹配规则:
- A级问题为What's your name?/How old are you?类基础问题,答案简短
- B级问题为What color do you like?/What food do you like?类喜好问题,答案简单
- C级问题为What do you do every day?/Can you swim?类习惯/能力问题,答案稍长
- D级问题为What did you do yesterday?/What will you do tomorrow?类经历/计划问题,答案连贯
3. 问题要求:符合日常交流场景,贴近学生生活
4. 参考回答要求至少提供1个满分回答1个合格回答
## 输入参数
| 参数 | 必填 | 格式示例 | 说明 |
|------|------|----------|------|
| 知识点 | ✅ | `apple n.苹果;red adj.红色;eat v.吃` | 考察的核心知识点列表 |
| 难度等级 | ✅ | `A级` / `L1第2阶段` / `Starters 2` | 难度等级或对应阶段 |
| 题量 | 🟢 | `5` | 生成题目数量默认1套4个问题 |
| 场景要求 | 🟢 | `场景为个人介绍` | 指定题目场景,不指定则自动匹配知识点 |
## 输出格式规范
严格按照以下格式输出,禁止额外内容:
```
【题目组描述】
[整体场景说明,例如:回答下列日常问题]
---
【题目1】
【问题列表】
1. [问题1内容]
2. [问题2内容]
3. [问题3内容]
【参考回答】
1.
满分回答:[满分答案1]
合格回答:[合格答案1]
2.
满分回答:[满分答案2]
合格回答:[合格答案2]
【评分标准】
优秀:回答完整流畅,发音清晰,语法正确
合格:回答包含核心信息,发音可理解,语法错误不影响理解
不合格:未回答核心信息,或发音完全无法理解
【能力项】
题目1 - 口语表达([2级标签]- [考察核心知识点]
题目2 - 口语表达([2级标签]- [考察核心知识点]
---
【题目2】
...(多套题重复上述结构)
```
## 校验规则
自动校验不通过直接返回错误:
1. 词汇校验所有知识点必须在L1单词库中禁止超纲
2. 格式校验:缺少必填字段或格式不符合规范
3. 难度校验:问题复杂度、参考回答长度不符合对应等级要求
4. 逻辑校验:问题不符合日常交流场景
## 脚本使用说明
执行`scripts/generate_speaking_daily_qa.py`完成自动化生产:
```bash
python scripts/generate_speaking_daily_qa.py \
--knowledge "apple n.苹果;red adj.红色;eat v.吃" \
--difficulty "A" \
--count 3 \
--scene "个人介绍场景"
```
> 🔘 词汇校验规则脚本会自动校验所有知识点是否在共享L1词库路径`business_knowledge/L1_word_list.json`)中,禁止使用超纲词汇,无需单独传入词表文件。

View File

@ -0,0 +1,87 @@
---
name: writing_email_reply
description: K12英语写作邮件回复题标准化设计、生产、审校工具。对应题型L2 - Movers - 写作 Part1 邮件回复,考察核心能力:书面表达、格式规范、信息提取。使用场景:(1) 根据给定知识点、难度等级生成符合教研规范的写作邮件回复题;(2) 校验题目格式、难度匹配、内容合规性;(3) 批量生产写作邮件回复题。触发关键词写作邮件回复、邮件回复题、writing email reply、写作Part1邮件回复、应用文写作题
---
# Writing Email Reply 写作邮件回复题生产技能
## 题型说明
本技能对应官方题型:**L2 - Movers - 写作 Part1 邮件回复【阶段归属L2专属】**,考察核心能力为**书面表达(格式规范+信息提取)**学生阅读一封简短邮件根据要求写20-50词的回复邮件考察邮件格式、信息完整性、语言正确性。
## 难度对应关系(与教研标准对齐)
| 难度等级 | 对应L1/L2阶段 | 对应剑桥考试等级 | 难度描述 |
|----------|------------|------------------|----------|
| A级 | L1 第5-6阶段 | Movers 1 | 回复要求明确只需回答2个简单问题20-30词格式简单 |
| B级 | L2 第1-2阶段 | Movers 2 | 回复要求回答3个问题30-40词包含问候和结尾 |
| C级 | L2 第3-4阶段 | Movers 3 | 回复要求回答3个问题+1个附加要求40-50词格式完整 |
| D级 | L2 第5-6阶段 | Flyers 1 | 回复要求回答3个问题+表达个人观点50-60词语言连贯 |
## 能力标签绑定规则
1. 题型固定绑定通用能力标签:书面表达、格式规范、信息提取
2. 能力标签分级规则:
- 1级标签统一使用**书面表达**
- 2级标签根据考察点动态匹配信息回复、格式应用、语言组织
3. 生产时自动标注每道题考察的核心知识点
## 生产规则
1. 每道题包含1封收到的邮件、回复要求、参考范文、评分标准
2. 难度匹配规则:
- A级收到的邮件是简单问候/邀请,回复只需回答是/否+简单信息
- B级收到的邮件是活动邀请回复需要回答时间/地点/是否参加等信息
- C级收到的邮件是活动询问回复需要回答问题+提供额外信息
- D级收到的邮件是讨论/建议,回复需要回答问题+表达个人观点
3. 邮件要求:内容贴近学生生活,格式规范,符合对应难度词汇要求
4. 参考范文要求:包含完整格式(问候、正文、结尾署名),符合字数要求
## 输入参数
| 参数 | 必填 | 格式示例 | 说明 |
|------|------|----------|------|
| 知识点 | ✅ | `apple n.苹果;red adj.红色;eat v.吃` | 考察的核心知识点列表 |
| 难度等级 | ✅ | `A级` / `L2第2阶段` / `Movers 2` | 难度等级或对应阶段 |
| 题量 | 🟢 | `5` | 生成题目数量默认1道 |
| 场景要求 | 🟢 | `场景为生日派对邀请` | 指定题目场景,不指定则自动匹配知识点 |
## 输出格式规范
严格按照以下格式输出,禁止额外内容:
```
【题目组描述】
[整体场景说明,例如:阅读邮件,写一封回复]
---
【题目1】
【收到的邮件】
From: Lily
To: Tom
Subject: Birthday Party
Hi Tom,
I will have a birthday party this Saturday. Would you like to come?
Please write to me soon.
Lily
【回复要求】
1. 回复Lily是否参加
2. 说明你喜欢的食物
【参考范文】
Hi Lily,
Thank you for your invitation. I'd love to come to your party. I like cake very much.
See you on Saturday!
Tom
【评分标准】
优秀:格式完整,信息完整,语法正确,字数符合要求
合格:格式基本完整,信息完整,语法错误不影响理解
不合格:信息缺失,或语法错误严重无法理解
【能力项】
题目1 - 书面表达([2级标签]- [考察核心知识点]
【解析】
✅ 本题考察【书面表达(对应能力标签)】能力。按照要求回答所有问题,注意邮件的格式:开头问候,结尾署名,内容连贯就可以拿高分哦😉
---
【题目2】
...(多套题重复上述结构)
```
## 校验规则
自动校验不通过直接返回错误:
1. 词汇校验:所有知识点必须在对应级别单词库中,禁止超纲
2. 格式校验:缺少必填字段或格式不符合规范
3. 难度校验:回复要求复杂度、字数要求不符合对应等级要求
4. 逻辑校验:参考范文不符合回复要求,或格式不规范
## 脚本使用说明
执行`scripts/generate_writing_email_reply.py`完成自动化生产:
```bash
python scripts/generate_writing_email_reply.py \
--knowledge "apple n.苹果;red adj.红色;eat v.吃" \
--difficulty "A" \
--count 3 \
--scene "邀请场景"
```
> 🔘 词汇校验规则脚本会自动校验所有知识点是否在共享L1/L2词库中禁止使用超纲词汇无需单独传入词表文件。

View File

@ -0,0 +1,79 @@
---
name: writing_picture_writing
description: K12英语写作看图写作题标准化设计、生产、审校工具。对应题型L2 - Movers - 写作 Part2 看图写作,考察核心能力:书面表达、图片观察、逻辑组织。使用场景:(1) 根据给定知识点、难度等级生成符合教研规范的写作看图写作题;(2) 校验题目格式、难度匹配、内容合规性;(3) 批量生产写作看图写作题。触发关键词写作看图写作、看图写作题、writing picture writing、写作Part2看图写作、看图写话题
---
# Writing Picture Writing 写作看图写作题生产技能
## 题型说明
本技能对应官方题型:**L2 - Movers - 写作 Part2 看图写作【阶段归属L2专属】**,考察核心能力为**书面表达(图片观察+逻辑组织)**学生根据1-3张图片的提示写3-5句话的短文考察图片信息提取、语言组织、逻辑连贯能力。
## 难度对应关系(与教研标准对齐)
| 难度等级 | 对应L1/L2阶段 | 对应剑桥考试等级 | 难度描述 |
|----------|------------|------------------|----------|
| A级 | L1 第5-6阶段 | Movers 1 | 1张简单图片写3句话描述图片内容即可 |
| B级 | L2 第1-2阶段 | Movers 2 | 2张连续图片写4句话描述事件过程 |
| C级 | L2 第3-4阶段 | Movers 3 | 3张连续图片写5句话描述完整事件 |
| D级 | L2 第5-6阶段 | Flyers 1 | 3张连续图片写6句话描述事件+表达感受 |
## 能力标签绑定规则
1. 题型固定绑定通用能力标签:书面表达、图片观察、逻辑组织
2. 能力标签分级规则:
- 1级标签统一使用**书面表达**
- 2级标签根据考察点动态匹配图片描述、事件叙述、情感表达
3. 生产时自动标注每道题考察的核心知识点
## 生产规则
1. 每道题包含:图片描述、写作要求、参考范文、评分标准
2. 难度匹配规则:
- A级图片为单个物品/人物,描述外观/状态即可
- B级图片为两个连续动作描述动作过程即可
- C级图片为完整事件的三个阶段按照顺序描述事件即可
- D级图片为完整事件描述事件+表达个人感受/观点
3. 图片描述要求:清晰说明图片的核心内容、人物、动作、场景
4. 参考范文要求:符合字数要求,逻辑连贯,词汇语法正确
## 输入参数
| 参数 | 必填 | 格式示例 | 说明 |
|------|------|----------|------|
| 知识点 | ✅ | `apple n.苹果;red adj.红色;eat v.吃` | 考察的核心知识点列表 |
| 难度等级 | ✅ | `A级` / `L2第2阶段` / `Movers 2` | 难度等级或对应阶段 |
| 题量 | 🟢 | `5` | 生成题目数量默认1道 |
| 场景要求 | 🟢 | `场景为公园玩耍` | 指定题目场景,不指定则自动匹配知识点 |
## 输出格式规范
严格按照以下格式输出,禁止额外内容:
```
【题目组描述】
[整体场景说明例如根据图片内容写3-5句话]
---
【题目1】
【图片描述】
1. 第一张图:一个男孩在公园里跑步
2. 第二张图:男孩停下来买冰淇淋
3. 第三张图:男孩坐在长椅上吃冰淇淋
【写作要求】
描述图片中的内容不少于3句话
【参考范文】
It is sunny today. Tom is running in the park. He feels hot, so he buys an ice cream. He eats the ice cream and feels happy.
【评分标准】
优秀:内容完整,逻辑连贯,语法正确,字数符合要求
合格:内容基本完整,逻辑基本连贯,语法错误不影响理解
不合格:内容与图片无关,或语法错误严重无法理解
【能力项】
题目1 - 书面表达([2级标签]- [考察核心知识点]
【解析】
✅ 本题考察【书面表达(对应能力标签)】能力。按照图片的顺序描述,注意动作的先后逻辑,使用学过的词汇和句型,就能写出不错的短文哦😉
---
【题目2】
...(多套题重复上述结构)
```
## 校验规则
自动校验不通过直接返回错误:
1. 词汇校验:所有知识点必须在对应级别单词库中,禁止超纲
2. 格式校验:缺少必填字段或格式不符合规范
3. 难度校验:图片复杂度、字数要求不符合对应等级要求
4. 逻辑校验:参考范文不符合图片内容,或逻辑不连贯
## 脚本使用说明
执行`scripts/generate_writing_picture_writing.py`完成自动化生产:
```bash
python scripts/generate_writing_picture_writing.py \
--knowledge "apple n.苹果;red adj.红色;eat v.吃" \
--difficulty "A" \
--count 3 \
--scene "公园场景"
```
> 🔘 词汇校验规则脚本会自动校验所有知识点是否在共享L1/L2词库中禁止使用超纲词汇无需单独传入词表文件。