# 5.5 在你自己的任务上，开不开思考

这份代码回答一个问题：同一个模型，打开思考以后，在你的任务上能多答对几道题，代价是多等多少秒、多花多少钱。

做法是把一批带标准答案的题，用同一个模型、同一份提示跑两遍，两遍只差一个参数 `reasoning_effort`：`none` 是不思考，`high` 是充分思考。每种模式把整套题跑几遍（默认 3 遍），因为模型输出有随机性，只跑一遍会把运气当成效果。

## 需要什么设备

只用 API。任何能跑 Python 3.9+ 的电脑都行，需要一个 AI Builder Space 的 key。

## 安装与运行

```bash
cd 5_5_thinking
uv venv && source .venv/bin/activate      # 没有 uv 就用 python3 -m venv .venv
uv pip install -r requirements.txt        # 或 pip install -r requirements.txt
export AI_BUILDER_TOKEN=sk_你的key
python run.py                             # 默认 grok-4-fast，16 道示例题，每种模式 3 遍，约 3 分钟
python run.py --model gpt-5 --repeats 2   # 换一个模型
```

能用的模型：`grok-4-fast` 和 `gpt-5` 都能把思考彻底关掉（`none`），适合做这个对比。`grok-4.5`、`grok-4.7` 最低只能到 `low`，`kimi-k3` 只有 `low`、`high`、`max`；AI Builder Space 上的 `deepseek` 思考是关着的，开不了。

## 该看到什么

屏幕上先是一张汇总表：两种模式各自的准确率（括号里是每一遍的对题数）、延迟中位数、平均输出 token 和整套题跑一遍的花费。下面是每道题在两种模式下各答对几遍，思考帮上忙的题会标出来。逐条结果（包括模型最后几百字的回复）存在 `results/` 下的 JSON 里，答错的题建议打开看一眼：有时是真算错，有时是没按格式写答案。

我们的样例输出见 `sample_output/`（2026-10-23，在 Mac Studio 上调用 AI Builder Space）：

| 模型 | 思考关 | 思考开 | 延迟中位数（关 → 开） | 平均输出 token（关 → 开） | 整套题一遍的花费（关 → 开） |
|---|---|---|---|---|---|
| grok-4-fast（3 遍） | 14.3/16（13、16、14） | 16/16（三遍都全对） | 2.1 → 8.1 秒 | 91 → 672 | $0.0086 → $0.0319 |
| gpt-5（2 遍） | 15/16 | 16/16 | 1.9 → 2.6 秒 | 42 → 193 | $0.0185 → $0.0666 |

思考帮上忙的集中在几类题：数字母（`count_e`，两个模型关思考时都常数错）、日期推算、多步乘法（电费）、排列计数。查首都、抽取金额、单位换算这类题，开不开都全对，开了只是更慢更贵。你的数字会和我们的不一样，尤其思考关时每一遍的对题数会上下跳几道。

## 换成你自己的数据

把你自己的 10–20 个例子写成一个 JSONL 文件，每行一题：

```json
{"id": "invoice_07", "question": "……你的输入……", "answer": ["标准答案", "另一种可接受的写法"]}
```

然后 `python run.py --tasks my_tasks.jsonl`。判分规则在 `run.py` 的 `is_correct`：取模型回复里最后一个“答案：”后面的内容，去掉空格和标点后和标准答案比；标准答案是数字时按数值比（“130 度”算对 130）。如果你的任务答案是长文本，没法这样精确比对，就把 `is_correct` 换成你自己的判断，例如检查是否包含关键字段。

价格写在 `run.py` 顶部的 `PRICES` 里（美元每百万 token，2026 年 10 月 AI Builder Space 的价目），价格变了或换了模型就改那里。思考产生的 token 按输出计费，已经算在输出 token 里。
