💻 源码
# CoT 思维链教学演示

用 **DashScope(百炼)真实 API** 对比展示:没有 CoT 时模型怎么答、加上 CoT 后怎么答、效果有什么不同。

> **重要:本项目不是模拟器。** 每次输出的「模型回复」都是实时请求百炼 `qwen-plus` 返回的结果。  
> 详细说明:[docs/项目说明.md](docs/项目说明.md)

## 快速开始

```powershell
cd 06_代码\Day_02\cot_demo
pip install -r requirements.txt
```

API Key 从系统环境变量 `DASHSCOPE_API_KEY` 读取(`os.getenv`)。

## 运行方式

### 网页版(推荐课堂演示)

```powershell
python web_app.py
# 或双击 run_web.bat
```

浏览器打开:**http://127.0.0.1:8765**

页面功能:
- 三列并排对比 A/B/C 三种模式
- 实时展示运行步骤(SSE 流式)
- 完整展示「发送给模型的提示词」与「模型回复」
- 底部对比小结表

### 终端版

| 命令 | 效果 |
|------|------|
| `python main.py` | 默认第 1 题 |
| `python main.py --all` | 全部 3 题 |
| `python main.py --only 2` | 第 2 题 |
| 双击 `run.bat` | 同 `python main.py` |

## 项目结构

```
cot_demo/
├── web_app.py        # Web 服务入口(Flask)
├── main.py           # 终端演示入口
├── service.py        # 业务层(终端/Web 共用)
├── demo.py           # 三种 CoT 模式组装 messages
├── prompts.py        # 提示词模板
├── questions.py      # 演示题库
├── llm_client.py     # 百炼 API 调用
├── analysis.py       # 答案提取与判定
├── web/
│   ├── index.html    # 页面
│   └── static/       # 样式与交互脚本
└── docs/项目说明.md
```

## 学习建议

1. 先启动网页版,选题目 1,点击「开始对比演示」
2. 观察运行过程三步进度条与三列结果卡片
3. 展开每列的提示词消息,对比 A/B/C 差异
4. 阅读 `prompts.py` 理解提示词如何编写