# Few-shot CoT 教学演示
用 **课程经典年龄推理题**,对比三种写法,重点展示 **Few-shot CoT**:在提示词里放入「问题 + 完整推理过程」的示例,让模型模仿思维链格式作答。
---
## 先读这个:题目和文档在哪?
| 你想找什么 | 去哪 |
|---|---|
| **主题目**(小明 70 岁) | [`question.py`](question.py) → `MAIN_QUESTION` |
| **Few-shot 示例题**(苹果题、小红弟弟题) | [`examples.py`](examples.py) → `FEW_SHOT_EXAMPLES` |
| **三种模式的提示词** | [`prompts.py`](prompts.py) |
| **完整说明(结构、流程、怎么讲)** | [`docs/项目说明.md`](docs/项目说明.md) |
| **老师讲课话术、板书** | [`docs/课堂讲解指南.md`](docs/课堂讲解指南.md) |
**主题目原文:**
> 当小明 6 岁时,他的妹妹年龄是他的一半。他的哥哥比小明大 4 岁。现在小明 70 岁了,请问他的妹妹和哥哥年龄加起来是多少?
> 正确答案:**141 岁**
---
## 与 cot_demo 的关系
| 项目 | 题目在哪 | 侧重点 |
|---|---|---|
| [`../cot_demo/`](../cot_demo/) | `questions.py`(3 道数学题) | 无 CoT vs 有 CoT 直觉对比 |
| **本项目** | `question.py` + `examples.py` | **Few-shot CoT 示例怎么设计** |
建议讲课顺序:先 `cot_demo`,再本项目。
---
## 快速开始
```bash
cd 06_代码\Day_02\fewshot_cot_demo
pip install -r requirements.txt
# 配置系统环境变量 DASHSCOPE_API_KEY
python main.py
```
或双击 `run.bat`。
---
## 三种模式(运行后终端会依次打印)
| 模式 | 提示词文件 | 有没有示例 |
|---|---|---|
| A · 无 CoT | `prompts.py` → `SYSTEM_DIRECT` | 无 |
| B · 零样本 CoT | `prompts.py` → `SYSTEM_ZERO_SHOT_COT` | 无 |
| C · 少样本 CoT | `prompts.py` + `examples.py` | 有 1~2 个 |
---
## 项目结构
```
fewshot_cot_demo/
├── question.py ← 【主题目】
├── examples.py ← 【Few-shot 示例题】
├── prompts.py ← 【提示词模板】
├── demo.py ← 三种模式拼 messages
├── main.py ← 入口,运行这个
├── llm_client.py ← 调用百炼 API
├── config.py ← API Key、模型配置
└── docs/
├── 项目说明.md ← 找题目、懂流程、改实验
└── 课堂讲解指南.md ← 老师讲课用
```
---
## 课堂实验
```bash
python main.py --shots 1 # 只用示例 1(苹果题)
python main.py --shots 2 # 用 2 个示例(默认,含年龄差预热题)
```
观察:示例 2(年龄差不变)对答对主题目有没有帮助?
---
## 文档索引
| 文档 | 适合谁 | 内容 |
|---|---|---|
| [`docs/项目说明.md`](docs/项目说明.md) | 老师 + 学生 | 题目位置、文件分工、运行流程、改实验 |
| [`docs/课堂讲解指南.md`](docs/课堂讲解指南.md) | 老师 | CoT 概念、15 分钟讲课路线、FAQ、作业 |