# 说明（模板）· 0033 综合实战

> 说明要讲清**每个环节为什么这样设计**，以及**你不放心的地方在哪**。
> 后半句比前半句更能说明水平：一个说得出「我的解析器遇到截断就废了，所以加了重试」的人，
> 和一个说「我的助手能推荐算法」的人，做出来的东西可能一模一样，但对它的掌握完全不同。
>
> 填好的样子见 `answer_example.md`。

## 1 · 五段流水线是什么

（一段话 + 那张契约表：五段的输入、输出各是什么。写清**为什么先写契约再写实现**。）

## 2 · 模型调用收成一道缝

（`call_model(prompt, retry)` 是唯一联网点：它的输入输出各是什么？
为什么把它收成一处，而不是让五段各自去调？换真 API 的时候要改几行？）

## 3 · 模型输出不可信：三档解析

（四份预置输出各长什么样、三档解析器各吃下几种。
**被截断那一档为什么再聪明的解析器也救不回来**，以及你打算怎么处理它。）

## 4 · 契约检查放在哪儿

（为什么每两段之间都要查一次？为什么契约不对时要**抛异常**而不是交回 False？
`passed` 变成字符串 'False' 那件事：不拦它会发生什么。）

## 5 · 记录里为什么留数据本身

（seed 保证了什么、又没保证什么？只留 seed 的记录在什么情况下会变得不可重放？）

## 6 · 我不放心的地方

（**这一节是硬要求。** 每一条都要写清**触发条件**：在什么输入/什么环境下会出问题，
出问题的时候你会看到什么现象。只写「这里可能有问题」不算。）

- 不放心的地方一：…… 触发条件：**如果**……就……
- 不放心的地方二：…… 触发条件：**当**……时……
