第十九课:流式响应与推理链
Responses APIreasoning处理流式输出机制
学习目标
- 理解 Responses API 的流式响应机制
- 掌握推理链的处理方式
- 了解流式输出到 TUI 的过程
- 学会利用推理链调试问题
一、Responses API
Codex 使用 OpenAI 的 Responses API,这是一个比 Chat Completions API 更强大的接口:
response = client.responses.create(
model="codex-mini-latest",
input=messages,
tools=tools,
stream=True # 启用流式
)
与 Chat Completions API 的区别
| 特性 | Chat Completions | Responses |
|---|---|---|
| Function Calling | ✅ | ✅ |
| 流式响应 | ✅ | ✅ |
| Reasoning | ❌ | ✅ |
| 多轮对话 | ✅ | ✅ |
| 结构化输出 | 有限 | 完整 |
二、流式响应
2.1 响应类型
流式响应包含多种事件类型:
- message.delta:文本增量,实时显示助手回复
- function_call.delta:工具调用增量,收集工具请求
- reasoning.delta:推理过程增量,展示思考过程
2.2 处理流程
Codex 的 TUI 实时处理这些事件:
- 收到 message.delta → 立即显示文本
- 收到 function_call.delta → 收集完整的工具调用
- 收到 reasoning.delta → 显示思考过程
三、推理链
3.1 什么是推理链
推理链是模型的思考过程,展示了模型如何分析问题、制定计划、做出决策。它类似于人类的内心独白。
3.2 推理链的价值
- 透明度:用户可以看到模型的思考过程
- 调试:帮助理解模型为什么做出某个决策
- 学习:从模型的思考方式中学习编程思维
- 信任:增加对模型决策的信任
3.3 推理链的展示
在 TUI 中,推理链以特殊样式显示:
- 折叠显示,可展开查看
- 灰色文字,与正式回复区分
- 支持搜索和复制
四、流式输出到 TUI
4.1 渲染流程
- 收到流式事件
- 解析事件类型
- 渲染到终端
- 更新进度指示器
4.2 代码高亮
代码块在流式输出时实时高亮,使用 rehype-highlight 库。
五、本课小结
| 要点 | 说明 |
|---|---|
| Responses API | 支持流式 + reasoning |
| 流式事件 | message/function_call/reasoning |
| 推理链 | 模型的思考过程 |
| TUI 渲染 | 实时显示 + 代码高亮 |
下一步
下一课我们将了解安全与沙盒机制。