ai_member_xiaoyan/memory/2026-05-18.md

34 KiB
Raw Blame History

2026-05-18 工作日志

单元挑战全题型审核 + 修复

背景

[刘彦江] 要求对单元挑战全部20种题型审核重点解析不能纯英文、答案格式正确性。题目内容不修改。

审核结果

  • 审核范围20张表、244条记录
  • 答案格式:零问题
  • 纯英文解析13处听力-P2 021901 ×10口语-P1 032701/032901口语-P2 032801
  • 解析为空83处听力-P1 000001+110101~110401 ×50听力-P4 021701/022101/032501/032901 ×20共写作-P3复查后实际OK

修复执行

  • 13条纯英文→中文化翻译通过模型翻译
  • 70条空解析→从题目内容+ability关键词智能生成
  • 全部通过 Python+curl 写回 bitable避免shell转义
  • 写入后回读验证107条全部含中文零错误

审校结果列更新

  • 格式:✅ OK | 2026-05-18 小研审校 / 📝 空模板 | 2026-05-18 小研审校
  • 已更新18张表、241条记录
  • 缺失列:写作-P2tblSAwlMumKoyjws、口语-P4tblsD2dxaRpLmkXD无「审校结果」列

经验

  • 写作-P3 解析在 questionList 嵌套层级,初审误判为空,复查后确认含中文
  • bitable curl 写回嵌套JSON时Python subprocess构造完整body比shell变量展开安全
  • 听力-P1 000001 虽有5条first+5条second但确有题目内容不是纯占位按实际内容生成了解析

2026-05-18 工作日志

单元挑战全题型审核 + 修复

背景

[刘彦江] 要求对单元挑战全部20种题型审核重点解析不能纯英文、答案格式正确性。题目内容不修改。

审核结果

  • 审核范围20张表、244条记录
  • 答案格式:零问题
  • 纯英文解析13处听力-P2 021901 ×10口语-P1 032701/032901口语-P2 032801
  • 解析为空83处听力-P1 000001+110101~110401 ×50听力-P4 021701/022101/032501/032901 ×20共写作-P3复查后实际OK

修复执行

  • 13条纯英文→中文化翻译通过模型翻译
  • 70条空解析→从题目内容+ability关键词智能生成
  • 全部通过 Python+curl 写回 bitable避免shell转义
  • 写入后回读验证107条全部含中文零错误

审校结果列更新

  • 格式:✅ OK | 2026-05-18 小研审校 / 📝 空模板 | 2026-05-18 小研审校
  • 已更新18张表、241条记录
  • 缺失列:写作-P2tblSAwlMumKoyjws、口语-P4tblsD2dxaRpLmkXD无「审校结果」列

经验

  • 写作-P3 解析在 questionList 嵌套层级,初审误判为空,复查后确认含中文
  • bitable curl 写回嵌套JSON时Python subprocess构造完整body比shell变量展开安全
  • 听力-P1 000001 虽有5条first+5条second但确有题目内容不是纯占位按实际内容生成了解析

P4 短对话选择题批量改写([刘彦江]

问题

短对话选择题用户只能听音频,无人名标签显示。三人对话中问题问"Whose/Who",用户无法分辨谁是谁。

方案(刘彦江确认)

  1. 三人对话 → 两人对话(一男一女)
  2. 对话中嵌入名字互称:Ben: Hi, Lucy. ... / Lucy: You're right, Ben. ...
  3. 两种题型并行:
    • 人名匹配题1-3题/套):问 Whose/Who选项为人名
    • 内容理解题2-4题/套):问内容,用名字锚定说话者(如"What does Otis say about..."
  4. 不改考点和难度L1 B级
  5. 答案A/B/C平均分配
  6. 全部中文解析 + ability标签

改写结果

  • 表:听力-P4-短对话选择题tblVmeDtBDKsAEfz
  • 改写范围9个QSID约85题
  • 写入方式rewrite_p4_all.py → 先dry run验证 → 再write模式写回
  • 一条021801因shell转义损坏Python curl直连修复
  • 9/9 全部回读验证通过

待办

  • ⚠️ 音频文件需重新录制旧mp3为三人口播新对话文本已改为两人

改写详细汇总

QSID 题数 first题型(M/C) second题型(M/C) 答案分布(first/second) 状态
021301 5+5 2/3 1/4 A2B1C2 / A2B2C1
021401 5+5 1/4 1/4 A1B2C2 / A2B2C1
021501 5+5 2/3 2/3 A1B2C2 / A2B2C1
021601 5+0 2/3 A2B2C1
021701 5+0 2/3 A2B2C1
021801 5+5 1/4 1/4 A2B2C1 / A2B2C1
022101 5+0 1/4 A2B2C1
032501 5+0 3/2 A2B2C1
032901 5+0 3/2 A2B2C1

2026-05-18 工作日志

单元挑战全题型审核 + 修复

背景

[刘彦江] 要求对单元挑战全部20种题型审核重点解析不能纯英文、答案格式正确性。题目内容不修改。

审核结果

  • 审核范围20张表、244条记录
  • 答案格式:零问题
  • 纯英文解析13处听力-P2 021901 ×10口语-P1 032701/032901口语-P2 032801
  • 解析为空83处听力-P1 000001+110101~110401 ×50听力-P4 021701/022101/032501/032901 ×20共写作-P3复查后实际OK

修复执行

  • 13条纯英文→中文化翻译通过模型翻译
  • 70条空解析→从题目内容+ability关键词智能生成
  • 全部通过 Python+curl 写回 bitable避免shell转义
  • 写入后回读验证107条全部含中文零错误

审校结果列更新

  • 格式:✅ OK | 2026-05-18 小研审校 / 📝 空模板 | 2026-05-18 小研审校
  • 已更新18张表、241条记录
  • 缺失列:写作-P2tblSAwlMumKoyjws、口语-P4tblsD2dxaRpLmkXD无「审校结果」列

经验

  • 写作-P3 解析在 questionList 嵌套层级,初审误判为空,复查后确认含中文
  • bitable curl 写回嵌套JSON时Python subprocess构造完整body比shell变量展开安全
  • 听力-P1 000001 虽有5条first+5条second但确有题目内容不是纯占位按实际内容生成了解析

P4 短对话选择题批量改写([刘彦江]

问题

短对话选择题用户只能听音频,无人名标签显示。三人对话中问题问"Whose/Who",用户无法分辨谁是谁。

方案(刘彦江确认)

  1. 三人对话 → 两人对话(一男一女)
  2. 对话中嵌入名字互称:Ben: Hi, Lucy. ... / Lucy: You're right, Ben. ...
  3. 两种题型并行:
    • 人名匹配题1-3题/套):问 Whose/Who选项为人名
    • 内容理解题2-4题/套):问内容,用名字锚定说话者(如"What does Otis say about..."
  4. 不改考点和难度L1 B级
  5. 答案A/B/C平均分配
  6. 全部中文解析 + ability标签

改写结果

  • 表:听力-P4-短对话选择题tblVmeDtBDKsAEfz
  • 改写范围9个QSID约85题
  • 写入方式rewrite_p4_all.py → 先dry run验证 → 再write模式写回
  • 一条021801因shell转义损坏Python curl直连修复
  • 9/9 全部回读验证通过
  • ⚠️ Bug发现dry run 时 pop("dialogue") 污染了 first_qs 和 first_block["questionSet"] 的共享对象,导致 write 时 题目1 字段的【听力文本】为空
  • 已修复fix_p4_dialogue.py 从 rewrite 脚本源码提取对话,重写 题目1/题目2 字段

待办

  • ⚠️ 音频文件需重新录制旧mp3为三人口播新对话文本已改为两人

改写详细汇总

QSID 题数 first题型(M/C) second题型(M/C) 答案分布(first/second) 状态
021301 5+5 2/3 1/4 A2B1C2 / A2B2C1
021401 5+5 1/4 1/4 A1B2C2 / A2B2C1
021501 5+5 2/3 2/3 A1B2C2 / A2B2C1
021601 5+0 2/3 A2B2C1
021701 5+0 2/3 A2B2C1
021801 5+5 1/4 1/4 A2B2C1 / A2B2C1
022101 5+0 1/4 A2B2C1
032501 5+0 3/2 A2B2C1
032901 5+0 3/2 A2B2C1

2026-05-18 工作日志

单元挑战全题型审核 + 修复

背景

[刘彦江] 要求对单元挑战全部20种题型审核重点解析不能纯英文、答案格式正确性。题目内容不修改。

审核结果

  • 审核范围20张表、244条记录
  • 答案格式:零问题
  • 纯英文解析13处听力-P2 021901 ×10口语-P1 032701/032901口语-P2 032801
  • 解析为空83处听力-P1 000001+110101~110401 ×50听力-P4 021701/022101/032501/032901 ×20共写作-P3复查后实际OK

修复执行

  • 13条纯英文→中文化翻译通过模型翻译
  • 70条空解析→从题目内容+ability关键词智能生成
  • 全部通过 Python+curl 写回 bitable避免shell转义
  • 写入后回读验证107条全部含中文零错误

审校结果列更新

  • 格式:✅ OK | 2026-05-18 小研审校 / 📝 空模板 | 2026-05-18 小研审校
  • 已更新18张表、241条记录
  • 缺失列:写作-P2tblSAwlMumKoyjws、口语-P4tblsD2dxaRpLmkXD无「审校结果」列

经验

  • 写作-P3 解析在 questionList 嵌套层级,初审误判为空,复查后确认含中文
  • bitable curl 写回嵌套JSON时Python subprocess构造完整body比shell变量展开安全
  • 听力-P1 000001 虽有5条first+5条second但确有题目内容不是纯占位按实际内容生成了解析

P4 短对话选择题批量改写([刘彦江]

问题

短对话选择题用户只能听音频,无人名标签显示。三人对话中问题问"Whose/Who",用户无法分辨谁是谁。

方案(刘彦江确认)

  1. 三人对话 → 两人对话(一男一女)
  2. 对话中嵌入名字互称:Ben: Hi, Lucy. ... / Lucy: You're right, Ben. ...
  3. 两种题型并行:
    • 人名匹配题1-3题/套):问 Whose/Who选项为人名
    • 内容理解题2-4题/套):问内容,用名字锚定说话者(如"What does Otis say about..."
  4. 不改考点和难度L1 B级
  5. 答案A/B/C平均分配
  6. 全部中文解析 + ability标签

改写结果

  • 表:听力-P4-短对话选择题tblVmeDtBDKsAEfz
  • 改写范围9个QSID约85题
  • 写入方式rewrite_p4_all.py → 先dry run验证 → 再write模式写回
  • 一条021801因shell转义损坏Python curl直连修复
  • 9/9 全部回读验证通过
  • ⚠️ Bug发现dry run 时 pop("dialogue") 污染了 first_qs 和 first_block["questionSet"] 的共享对象,导致 write 时 题目1 字段的【听力文本】为空
  • 已修复fix_p4_dialogue.py 从 rewrite 脚本源码提取对话,重写 题目1/题目2 字段

待办

  • ⚠️ 音频文件需重新录制旧mp3为三人口播新对话文本已改为两人

改写详细汇总

QSID 题数 first题型(M/C) second题型(M/C) 答案分布(first/second) 状态
021301 5+5 2/3 1/4 A2B1C2 / A2B2C1
021401 5+5 1/4 1/4 A1B2C2 / A2B2C1
021501 5+5 2/3 2/3 A1B2C2 / A2B2C1
021601 5+0 2/3 A2B2C1
021701 5+0 2/3 A2B2C1
021801 5+5 1/4 1/4 A2B2C1 / A2B2C1
022101 5+0 1/4 A2B2C1
032501 5+0 3/2 A2B2C1
032901 5+0 3/2 A2B2C1

2026-05-18 工作日志

单元挑战全题型审核 + 修复

背景

[刘彦江] 要求对单元挑战全部20种题型审核重点解析不能纯英文、答案格式正确性。题目内容不修改。

审核结果

  • 审核范围20张表、244条记录
  • 答案格式:零问题
  • 纯英文解析13处听力-P2 021901 ×10口语-P1 032701/032901口语-P2 032801
  • 解析为空83处听力-P1 000001+110101~110401 ×50听力-P4 021701/022101/032501/032901 ×20共写作-P3复查后实际OK

修复执行

  • 13条纯英文→中文化翻译通过模型翻译
  • 70条空解析→从题目内容+ability关键词智能生成
  • 全部通过 Python+curl 写回 bitable避免shell转义
  • 写入后回读验证107条全部含中文零错误

审校结果列更新

  • 格式:✅ OK | 2026-05-18 小研审校 / 📝 空模板 | 2026-05-18 小研审校
  • 已更新18张表、241条记录
  • 缺失列:写作-P2tblSAwlMumKoyjws、口语-P4tblsD2dxaRpLmkXD无「审校结果」列

经验

  • 写作-P3 解析在 questionList 嵌套层级,初审误判为空,复查后确认含中文
  • bitable curl 写回嵌套JSON时Python subprocess构造完整body比shell变量展开安全
  • 听力-P1 000001 虽有5条first+5条second但确有题目内容不是纯占位按实际内容生成了解析

P4 短对话选择题批量改写([刘彦江]

问题

短对话选择题用户只能听音频,无人名标签显示。三人对话中问题问"Whose/Who",用户无法分辨谁是谁。

方案(刘彦江确认)

  1. 三人对话 → 两人对话(一男一女)
  2. 对话中嵌入名字互称
  3. 两种题型并行人名匹配题1-3题/套)+ 内容理解题(主体)
  4. 不改考点和难度L1 B级答案均匀中文解析ability标签

改写结果

  • 表:听力-P4-短对话选择题tblVmeDtBDKsAEfz9个QSID ~85题
  • rewrite_p4_all.py: 先dry run → write模式
  • 一条021801shell转义损坏 → Python curl直连修复
  • ⚠️ Bugdry run 时 pop("dialogue") 污染 first_qs/first_block 共享对象 → write 时【听力文本】丢失
  • 已修复fix_p4_dialogue.py 提取对话重写题目1/题目2
  • 待办音频重录旧mp3三人口播 → 需两人)

改写汇总

QSID 题数 答案分布 状态
021301 5+5 A2B1C2 / A2B2C1
021401 5+5 A1B2C2 / A2B2C1
021501 5+5 A1B2C2 / A2B2C1
021601 5+0 A2B2C1
021701 5+0 A2B2C1
021801 5+5 A2B2C1 / A2B2C1
022101 5+0 A2B2C1
032501 5+0 A2B2C1
032901 5+0 A2B2C1

口语-P1 审校([刘彦江]

范围

QSID: 121301, 121401, 121501口语-P1-日常回答tblRGv7k4WH58Jgq

发现问题

  • 121301: 6题 ability 全空
  • 121401: ability 重复("听觉抓取关键信息"×2+ 标签偏向听力而非口语
  • 121501: 6题 ability 全空
  • answer 为空 → 正常speaking_qa 参考回答在 explanation 内)

修复

  • 全部补充/替换为口语向标签(语用表达能力等)
  • 3/3 审校结果列更新为 ✅ OK | 2026-05-18 小研审校

Record ID 映射

QSID Record ID
121301 recvjW9RVwziwL
121401 recvjW9RVwGzba
121501 recvjW9RVwj4aQ

听力-P1 图片选择题 生产+回填+审校([刘彦江]

范围

QSID: 121301, 121401, 121501听力-P1-图片选择题) 难度: L1 B级

词汇词库命中率

29个词中仅6个在L1/L2词库sofa, zoo, study, play, mat, mouth23个超纲。 业务负责人放行,优先生产,词库后补。

产出

QSID Record ID 词表(first/second) 答案分布
121301 recvjWrIXVjkWY home/house/sofa/cupboard/bedroom // zoo/hippo/bear/live A2B2C1 ×2
121401 recvjWrJos9LH7 study/play/art/spell/letter // crayon/board/desk/schoolbag/handbag A2B2C1 ×2
121501 recvjWrJQ9Njnl meet/friend/board game/ping-pong // body/head/mouth/ear A2B2C1 ×2

审校通过

全部检查项合格jsonData结构、audio/image命名、答案分布、ability标签、中文解析、题目1/2字段。

待办

⚠️ 23个超纲词需后续补入L1词库home, house, cupboard, bedroom, hippo, bear, live, art, spell, letter, English, crayon, board, desk, schoolbag, handbag, meet, friend, board game, ping-pong, body, head, ear


L1-S2-U18-L5 双龙会 台词润色审校([王璐辰]

背景

审查飞书知识库剧本表格「台词润色列」错误。文档为内嵌 Sheetblock_type 30需用 blocks API 才能发现。

审校结果

  • 语法/拼写硬错误5处Rows 41, 55, 126, 153, 178
  • 表达优化建议4处Rows 77, 84, 207, 63
  • 一致性遗漏4行无润色 + dragon/Loong 混用不统一
  • 润色质量好的部分:长句拆分、语法/拼写修正、知识点保留 ✓

D列知识点统计

  • 6个知识点class/fun/playground/English/Have fun with.../Over here.共20次
  • English 在知识点列未标注但实际台词出现9次

交互模式收获

  • 用户(王璐辰)偏好直接在 bitable 中写入统计表格而非仅输出文字/卡片 → 后续同类需求优先写入原表

2026-05-18 工作日志

单元挑战全题型审核 + 修复

背景

[刘彦江] 要求对单元挑战全部20种题型审核重点解析不能纯英文、答案格式正确性。题目内容不修改。

审核结果

  • 审核范围20张表、244条记录
  • 答案格式:零问题
  • 纯英文解析13处听力-P2 021901 ×10口语-P1 032701/032901口语-P2 032801
  • 解析为空83处听力-P1 000001+110101~110401 ×50听力-P4 021701/022101/032501/032901 ×20共写作-P3复查后实际OK

修复执行

  • 13条纯英文→中文化翻译通过模型翻译
  • 70条空解析→从题目内容+ability关键词智能生成
  • 全部通过 Python+curl 写回 bitable避免shell转义
  • 写入后回读验证107条全部含中文零错误

审校结果列更新

  • 格式:✅ OK | 2026-05-18 小研审校 / 📝 空模板 | 2026-05-18 小研审校
  • 已更新18张表、241条记录
  • 缺失列:写作-P2tblSAwlMumKoyjws、口语-P4tblsD2dxaRpLmkXD无「审校结果」列

经验

  • 写作-P3 解析在 questionList 嵌套层级,初审误判为空,复查后确认含中文
  • bitable curl 写回嵌套JSON时Python subprocess构造完整body比shell变量展开安全
  • 听力-P1 000001 虽有5条first+5条second但确有题目内容不是纯占位按实际内容生成了解析

P4 短对话选择题批量改写([刘彦江]

背景

短对话选择题用户只能听音频,无人名标签显示。三人对话中问题问"Whose/Who",用户无法分辨谁是谁。

方案(刘彦江确认)

  1. 三人对话 → 两人对话(一男一女),对话中嵌入名字互称
  2. 两种题型并行人名匹配题1-3题/套)+ 内容理解题(主体)
  3. 不改考点和难度L1 B级答案均匀中文解析ability标签

改写结果

  • 表:听力-P4-短对话选择题tblVmeDtBDKsAEfz9个QSID ~85题
  • rewrite_p4_all.py: 先dry run → write模式
  • 一条021801shell转义损坏 → Python curl直连修复
  • ⚠️ Bugdry run 时 pop("dialogue") 污染 first_qs/first_block 共享对象 → write 时【听力文本】丢失
  • 已修复fix_p4_dialogue.py 提取对话重写题目1/题目2
  • 待办音频重录旧mp3三人口播 → 需两人)

改写汇总

QSID 题数 答案分布 状态
021301 5+5 A2B1C2 / A2B2C1
021401 5+5 A1B2C2 / A2B2C1
021501 5+5 A1B2C2 / A2B2C1
021601 5+0 A2B2C1
021701 5+0 A2B2C1
021801 5+5 A2B2C1 / A2B2C1
022101 5+0 A2B2C1
032501 5+0 A2B2C1
032901 5+0 A2B2C1

口语-P1 审校([刘彦江]

范围

QSID: 121301, 121401, 121501口语-P1-日常回答tblRGv7k4WH58Jgq

修复

  • ability 全空/偏向听力 → 全部补充为口语向标签
  • 3/3 审校结果列更新为 ✅ OK | 2026-05-18 小研审校

Record ID 映射

QSID Record ID
121301 recvjW9RVwziwL
121401 recvjW9RVwGzba
121501 recvjW9RVwj4aQ

听力-P1 图片选择题 生产+回填+审校([刘彦江]

范围

QSID: 121301, 121401, 121501听力-P1-图片选择题L1 B级 29词中仅6个在词库23个超纲。业务负责人放行优先生产词库后补。

产出

QSID Record ID 答案分布
121301 recvjWrIXVjkWY A2B2C1 ×2
121401 recvjWrJos9LH7 A2B2C1 ×2
121501 recvjWrJQ9Njnl A2B2C1 ×2

待办

⚠️ 23个超纲词需补入L1词库


图片文本输出([刘彦江]

背景

听力-P1 121301/121401/121501 选项图 prompt 需输出给图片生成人员。

飞书消息格式陷阱 🔴

直接输出 [1-A-选项图彩图]:{"prompt":"..."} 到飞书对话中,被飞书渲染引擎吃掉(方括号+JSON格式被当标签/链接处理),用户看不到内容。 解决方案:必须用代码块(```)包裹或通过 message() 工具以编程方式发送。


题型-能力标签映射([刘彦江]

背景

用户要求:把所有单元挑战题型与 45 个标准能力 tag 做映射。

能力标签源文件

  • 路径: business_knowledge/ability_tags.mdVala 英语能力标签体系2026-05-13更新
  • 45 个标准标签:听力(11)、口语(10)、阅读(13)、写作(11)

ability 格式不统一问题(重要发现)🔴

提取过程中发现 ability 标签在 bitable jsonData 中存在两种不同格式和位置:

格式A: JSON 数组(每题内部)

{"first": {"questionSet": [{"ability": ["听觉抓取关键信息", "多特征整合"]}]}}

适用题型:听力-P1/P2/P3/P4/P7阅读全7个口语全4个

格式B: ¥¥ 分隔字符串(顶层)

{"first": {"ability": "听觉抓取关键信息¥¥多特征整合"}}

适用题型:听力-P5写作-P1/P2/P3

映射结果(修正后)

  • 写作-P1 有标签:短消息写作|邮件/便条、衔接与连贯|连词使用、描述性写作|人物与地点、描述性写作|场景与情绪、句型组织、问题解决|求助与建议(部分非标准标签名)
  • 写作-P2 ⚠️ 格式不规范(模板残留):看图写故事,衔接与连贯、连词使用
  • 写作-P3 纯占位符 "xxxx",确实无标签
  • 听力-P5 有标签(¥¥格式补抓):听觉抓取关键信息、多特征整合

已修正的其他发现

  • 口语-P1/P2/P3/P4 ability 标签已正确提取格式A路径
  • 20 个未覆盖标签 = 45 标准标签中历史数据从未出现的(情绪/态度理解、长对话理解、图片对比、故事讲述、发音语调、写作全11个等

产出文件

  • business_knowledge/unit_challenge_type_ability_mapping.md — 完整映射表(已修正)
  • /tmp/unit_challenge_ability_doc.md — 对外分享版

L1-S2-U18-L5 双龙会 台词润色审校([王璐辰]

审校结果

  • 语法/拼写硬错误5处Rows 41, 55, 126, 153, 178
  • 表达优化建议4处Rows 77, 84, 63, 207
  • 一致性遗漏4行无润色 + dragon/Loong 混用不统一
  • D列知识点6个知识点共20次

交互模式收获

  • 用户(王璐辰)偏好直接在 bitable 中写入统计表格 → 后续同类需求优先写入原表

2026-05-18 工作日志

单元挑战全题型审核 + 修复

背景

[刘彦江] 要求对单元挑战全部20种题型审核重点解析不能纯英文、答案格式正确性。题目内容不修改。

审核结果

  • 审核范围20张表、244条记录
  • 答案格式:零问题
  • 纯英文解析13处听力-P2 021901 ×10口语-P1 032701/032901口语-P2 032801
  • 解析为空83处听力-P1 000001+110101~110401 ×50听力-P4 021701/022101/032501/032901 ×20共写作-P3复查后实际OK

修复执行

  • 13条纯英文→中文化翻译通过模型翻译
  • 70条空解析→从题目内容+ability关键词智能生成
  • 全部通过 Python+curl 写回 bitable避免shell转义
  • 写入后回读验证107条全部含中文零错误

审校结果列更新

  • 格式:✅ OK | 2026-05-18 小研审校 / 📝 空模板 | 2026-05-18 小研审校
  • 已更新18张表、241条记录
  • 缺失列:写作-P2tblSAwlMumKoyjws、口语-P4tblsD2dxaRpLmkXD无「审校结果」列

经验

  • 写作-P3 解析在 questionList 嵌套层级,初审误判为空,复查后确认含中文
  • bitable curl 写回嵌套JSON时Python subprocess构造完整body比shell变量展开安全
  • 听力-P1 000001 虽有5条first+5条second但确有题目内容不是纯占位按实际内容生成了解析

P4 短对话选择题批量改写([刘彦江]

背景

短对话选择题用户只能听音频,无人名标签显示。三人对话中问题问"Whose/Who",用户无法分辨谁是谁。

方案(刘彦江确认)

  1. 三人对话 → 两人对话(一男一女),对话中嵌入名字互称
  2. 两种题型并行人名匹配题1-3题/套)+ 内容理解题(主体)
  3. 不改考点和难度L1 B级答案均匀中文解析ability标签

改写结果

  • 表:听力-P4-短对话选择题tblVmeDtBDKsAEfz9个QSID ~85题
  • rewrite_p4_all.py: 先dry run → write模式
  • 一条021801shell转义损坏 → Python curl直连修复
  • ⚠️ Bugdry run 时 pop("dialogue") 污染 first_qs/first_block 共享对象 → write 时【听力文本】丢失
  • 已修复fix_p4_dialogue.py 提取对话重写题目1/题目2
  • 待办音频重录旧mp3三人口播 → 需两人)
QSID 题数 答案分布 状态
021301 5+5 A2B1C2 / A2B2C1
021401 5+5 A1B2C2 / A2B2C1
021501 5+5 A1B2C2 / A2B2C1
021601 5+0 A2B2C1
021701 5+0 A2B2C1
021801 5+5 A2B2C1 / A2B2C1
022101 5+0 A2B2C1
032501 5+0 A2B2C1
032901 5+0 A2B2C1

口语-P1 审校([刘彦江]

范围

QSID: 121301, 121401, 121501口语-P1-日常回答tblRGv7k4WH58Jgq

修复

  • ability 全空/偏向听力 → 全部补充为口语向标签
  • 3/3 审校结果列更新为 ✅ OK | 2026-05-18 小研审校
QSID Record ID
121301 recvjW9RVwziwL
121401 recvjW9RVwGzba
121501 recvjW9RVwj4aQ

听力-P1 图片选择题 生产+回填+审校([刘彦江]

范围

QSID: 121301, 121401, 121501听力-P1-图片选择题L1 B级 29词中仅6个在词库23个超纲。业务负责人放行优先生产词库后补。

QSID Record ID 答案分布
121301 recvjWrIXVjkWY A2B2C1 ×2
121401 recvjWrJos9LH7 A2B2C1 ×2
121501 recvjWrJQ9Njnl A2B2C1 ×2

待办

⚠️ 23个超纲词需补入L1词库


图片文本输出([刘彦江]

飞书消息格式陷阱 🔴

直接输出 [1-A-选项图彩图]:{"prompt":"..."} 到飞书对话中,被渲染引擎吃掉(方括号+JSON当标签处理用户看不到内容。 解决方案:代码块包裹或 message() 工具发送。


题型-能力标签映射([刘彦江]

背景

把所有单元挑战题型与 45 个标准能力 tag 做映射。

能力标签源文件

  • 路径: business_knowledge/ability_tags.mdVala 英语能力标签体系2026-05-13更新
  • 45 个标准标签:听力(11)、口语(10)、阅读(13)、写作(11)

ability 格式不统一问题(重要发现)🔴

提取中发现 ability 存在两种不同格式/位置:

格式A: JSON 数组(每题内部)

{"first": {"questionSet": [{"ability": ["听觉抓取关键信息", "多特征整合"]}]}}

适用:听力-P1/P2/P3/P4/P7阅读全7个口语全4个

格式B: ¥¥ 分隔字符串(顶层)

{"first": {"ability": "听觉抓取关键信息¥¥多特征整合"}}

适用:听力-P5写作-P1/P2/P3

映射结果(修正后)

  • 写作-P1 有标签格式B短消息写作邮件/便条、衔接与连贯|连词使用、描述性写作|人物与地点、描述性写作|场景与情绪、句型组织、问题解决|求助与建议(部分非标准标签名)
  • 写作-P2 ⚠️ 格式不规范(模板残留)
  • 写作-P3 纯占位符 "xxxx"
  • 听力-P5 有标签格式B补抓听觉抓取关键信息、多特征整合
  • 20 个未覆盖标签 = 45 标准标签中历史数据从未出现的写作全11个、听力 情绪/态度理解+长对话理解、口语 图片对比+故事讲述+发音语调 等)

产出

  • business_knowledge/unit_challenge_type_ability_mapping.md — 完整映射表
  • /tmp/unit_challenge_ability_doc.md — 对外分享版(已发送文件 + 飞书文档)

L1-S2-U18-L5 双龙会 台词润色审校([王璐辰]

审校结果

  • 语法/拼写硬错误5处Rows 41, 55, 126, 153, 178
  • 表达优化建议4处Rows 77, 84, 63, 207
  • 一致性遗漏4行无润色 + dragon/Loong 混用不统一
  • D列知识点6个知识点共20次

交互模式收获

  • 用户(王璐辰)偏好直接在 bitable 中写入统计表格 → 后续同类需求优先写入原表

[刘彦江] 口语-P4-看图识物 内容生产2026-05-18 19:34

生产范围3条记录全部双题组全部回填验证通过

ID record_id 题组1 题组2 状态
100001 recvjYhcXkYXIM 6题(颜色) 5题(衣物)
110101 recvjYhdvUxDgs 6题(身体) 6题(颜色)
110201 recvjYhe4opOGm 6题(食物) 4题(动物)

题型结构

口语-P4 (speaking_pic_recognize):

  • textTitle: "Look and answer."
  • 每词1题配1图白底中央展示单个物体/颜色)
  • 颜色题: "What colour is it?",物体题: "What's this?"
  • ability: 图文匹配
  • explanation: 含回答要点、图片内容、能力、评估标准、回答指导

审校结果

  • 全部27题 jsonData 结构完整、explanation 全中文、题目格式正确
  • 题目集合ID一致、图片编号连续00-10/00-11/00-09
  • 题目配置(人类可读)格式规范
  • ⚠️ 口语-P4表无「审校结果」列无法标记审校状态
  • 110101题组2 "colour"出现2次调色盘+彩虹)— 按规格生成
  • 110201 "mice"(复数) 使用 "What are these?" 区分于 "mouse"(单数) 使用 "What's this?"
  • 以下词汇未在L1词库中检索到词库仅160词/声称980词疑似文件不完整jacket, T-shirt, hair, monster, colour, bread, cake, candy, chocolate, ice cream, mice, mouse — 按用户指定词汇生产,未做替换

Bitable信息

  • App Token: CMHSbUUjka3TrUsaxxEc297ongf
  • Table ID: tblsD2dxaRpLmkXD
  • 操作方式: Python subprocess + curl避免shell转义

[李应瑛] L1-S2-U17-L3 紧急拜访 组件配置2026-05-18 20:58

背景

李应瑛发送知识库关卡制作文档链接 K6DIwFqpgi1SjZkEPS9cNESfn0d,要求为剧本中的互动环节生成组件配置。

完成事项

  • 读取文档完整内容剧本表Nr3Ovs 243行、知识点表zbfYO4、剧情摘要等5个子表
  • 识别16个互动点对话朗读-配图、对话挖空、对话选择-配图、听力选择等其中10个H列已有配置
  • 方案3both行159 H列文本配置 + LV1多维表格正式JSON

H列配置行159

写入 Nr3Ovs!H159,内容包含任务标题「听听爷爷的来信」、情境引入、互动内容和后置对话。回读验证通过。

LV1 多维表格 JSONID: 1217310

  • App Token: C7e9bzA1GaZ61FsTz87cEM8Ynoe
  • Table: LV1 (tblH4xNpAmKJ7gEq)
  • Record ID: recvjYze7B5cDQ
  • cType: core_listening_choose
  • 题目组: 2组Q1: Who will come to visit? → Grandfather / Q2: Who else is coming? → Grandmother
  • 学习过程: 3个重点句visit / grandmother / grandfather
  • 音频来源: 爷爷Justin念信剧本行160-163
  • 写入方式: Python subprocess + curl避免shell转义

待补充

项目 说明
图片素材 6张选项图 1217310_option_00~05.png 待配置
kpListSentence/kpListVocab 待填入Unit 1217对应的句型/单词知识ID
kpInfo.kpId grandfather/grandmother/visit 的具体知识ID待确认
音频录制 Justin念信4句音频待录制

互动组件脚本参考路径

  • business_knowledge/skills/core-content-json-standard/SKILL.md — 14种核心题型JSON标准
  • business_production/_shared/feishu-embedded-sheet/SKILL.md — 内嵌Sheet读写
  • business_production/_shared/lark_bitable_operate_as_bot/SKILL.md — Bot身份多维表格操作

[李应瑛] L1-S2-U17-L4 门关啦 组件配置2026-05-18 21:00

背景

李应瑛发送知识库文档 SAadwW8YaiObl8k4op3c6vs8nqbL1-S2-U17-L4 门关啦),要求根据组件类型生成配置,回填到 F列不同于L3的H列

文档结构

  • Wiki token: SAadwW8YaiObl8k4op3c6vs8nqb
  • Space ID: 7412143055920414722
  • Spreadsheet token: It4AsFkC7hXHc4te9yUcyLHRnOe
  • Script sheet: wMQVyV202行×8列
  • Knowledge points sheet: eXTXJ86个知识点open, closed, door, home, 2个句型
  • 列结构A=类型, B=配置信息, C=剧情描述, D=角色名, E=英文台词, F=组件配置, G=知识点, H=编剧台词

互动组件识别

  • 16个互动组件ID 1217401-1217416全部F列为空
  • 类型分布对话朗读×6、对话挖空×4、图片单选×1、对话选择×2、对话组句×2、看图拼词×1
  • 知识点覆盖open/closed/door/home 及对应句型

写入方式

  • Sheets v2 API PUT valuesrange 格式注意sheet_id不加引号
  • 先试 'wMQVyV'!F10 报 "sheetId not found" → 修正为 wMQVyV!F10 成功
  • 16/16 全部回读验证通过

脚本

scripts/write_L4_F_configs.py


[李应瑛] L1-S2-U17-L5 笨蛋坏蛋英文生产2026-05-18 21:15

背景

李应瑛发送知识库文档 U1zEwHZaaie07TkjmOOchurgnIhL1-S2-U17-L5 笨蛋坏蛋?),要求"英文生产"。

文档结构与L3/L4不同

  • Wiki token: U1zEwHZaaie07TkjmOOchurgnIh
  • Spreadsheet token: DCcKsLbrmhfXgrtB7N2c9GA4ntf
  • Script sheet: wMQVyV186行×9列
  • Knowledge points sheet: DCcKsLbrmhfXgrtB7N2c9GA4ntf_NtIcXt
  • 列结构A=类型, D=剧情描述, E=角色名, F=编剧台词English已填好, G=组件配置
  • 知识点point, talk, understand, a lot of + talk to... / I can/can't understand...

交互模式差异

  • L5 文档 B列/C列 为空,无详细组件类型标签(仅 A=互动/核心互动-口语)
  • 编剧台词F列已全部填写英文
  • 互动行的 User 台词含红色标注知识点词

完成事项

  • 24个互动行全部生成G列配置组件类型推断听力挖空、朗读台词、口语表达
  • 写入方式:同上 Sheets v2 API
  • 24/24 全部回读验证通过

脚本

scripts/write_L5_G_configs.py