💻 源码
"""
Few-shot CoT 主题目:课程经典年龄推理题。

>>> 老师 / 学生找题目:看本文件 MAIN_QUESTION(下面约第 22 行)
>>> 更多说明:docs/项目说明.md 第二节「题目全文」

这道题适合课堂演示,因为:
  - 无 CoT 时模型常把「妹妹当时是一半」误解成「妹妹现在也是一半」
  - 零样本 CoT 有时能答对,但推理格式不稳定
  - Few-shot CoT 能同时教会「怎么想」和「怎么写」
"""

from dataclasses import dataclass


@dataclass(frozen=True)
class TargetQuestion:
    title: str
    question: str
    expected_answer: str
    common_mistake: str
    correct_reasoning: str


MAIN_QUESTION = TargetQuestion(
    title="年龄差推理 · 课堂重点题",
    question=(
        "当小明 6 岁时,他的妹妹年龄是他的一半。他的哥哥比小明大 4 岁。"
        "现在小明 70 岁了,请问他的妹妹和哥哥年龄加起来是多少?"
    ),
    expected_answer="141 岁",
    common_mistake=(
        "把「妹妹 6 岁时是小明的一半」理解成「妹妹现在也是 70 的一半 = 35 岁」,"
        "忽略了年龄差恒定这一关键条件。"
    ),
    correct_reasoning=(
        "1. 小明 6 岁时,妹妹 3 岁,年龄差 3 岁;\n"
        "2. 哥哥比小明大 4 岁,年龄差 4 岁;\n"
        "3. 小明现在 70 岁 → 妹妹 67 岁,哥哥 74 岁;\n"
        "4. 67 + 74 = 141 岁。"
    ),
)