用 API 做应用
从一次调用走向一个真正的程序:多轮对话、流式输出、工具调用、出错重试和费用记录,最后做出贯穿项目 RepoBot 的第一版。
各课
- 01多轮对话:模型其实什么都不记得
写一个命令行聊天程序,亲眼看到模型没有记忆,"记忆"只是每次把历史消息重新发一遍。再看历史太长时截断和摘要两种办法各自的效果。
35 分钟 · 入门 - 02流式输出
让回答一边生成一边显示。实测流式和非流式的首字时间,处理流式里的 usage 和思考内容,再用 FastAPI 把模型的输出实时推给浏览器。
35 分钟 · 进阶 - 03工具调用:让模型能动手
模型自己查不到实时数据,也不能执行任何操作。给它一个真实的工具,去 PyPI 查包的最新版本,把工具调用的完整流程走一遍,包括并行调用、出错处理和思考模式下的注意事项。
45 分钟 · 进阶 - 04出错、重试、限流和花钱
复现几种最常见的 API 错误,看 openai SDK 默认帮你做了哪些重试,再写一个带超时、指数退避、并发限制和费用记录的调用函数,放进项目里就能用。
40 分钟 · 进阶 - 05项目:答疑助手的第一版
把多轮对话、流式输出、重试和费用统计组装成 RepoBot v1,一个 httpx 答疑助手。用 6 道有标准答案的题测它,看它答对了什么、编造了什么。
60 分钟 · 进阶
前面两个模块,每个例子都是"调用一次,打印结果"。真实的应用要面对更多问题:用户会连着问好几句;回答太长,用户等不及;需要查实时的数据;网络会断,服务会限流,账单要算清楚。
这个模块把这些问题一个个解决掉,最后把它们组装成贯穿项目 RepoBot 的第一版:一个能在命令行里连续对话、流式输出、自动重试、每轮显示花费的 httpx 答疑助手。
为什么是这个顺序
第 1 课先弄清楚"对话"在 API 层面到底是什么,后面每一课都建立在消息列表之上。第 2 课的流式输出改善的是用户体验,相对独立。第 3 课的工具调用最重要,也最复杂,它是第 05 模块智能体的基础。第 4 课处理的是所有前面这些功能在真实环境里都会遇到的问题:出错和花钱。第 5 课把前四课组装起来。
学完的标准
- 能写一个命令行聊天程序,并在历史过长时截断或压缩。
- 能用流式输出把回答一边生成一边显示,并知道怎么把它转发给浏览器。
- 能从零写出完整的工具调用循环:说明书、执行、把结果传回、处理并行调用和工具出错。
- 能写一个带超时、指数退避重试、并发限制和费用记录的调用函数。
- RepoBot v1 在你的电脑上跑起来,并能说出它在哪类问题上会答错、为什么。