模組 03 · 用大模型做東西

用 API 做應用

從一次呼叫走向一個真正的程式:多輪對話、流式輸出、工具呼叫、出錯重試和費用記錄,最後做出貫穿專案 RepoBot 的第一版。

各課

  1. 01
    多輪對話:模型其實什麼都不記得

    寫一個命令列聊天程式,親眼看到模型沒有記憶,"記憶"只是每次把歷史訊息重新發一遍。再看歷史太長時截斷和摘要兩種辦法各自的效果。

    35 分鐘 · 入門
  2. 02
    流式輸出

    讓回答一邊生成一邊顯示。實測流式和非流式的首字時間,處理流式裡的 usage 和思考內容,再用 FastAPI 把模型的輸出即時推給瀏覽器。

    35 分鐘 · 進階
  3. 03
    工具呼叫:讓模型能動手

    模型自己查不到即時資料,也不能執行任何操作。給它一個真實的工具,去 PyPI 查包的最新版本,把工具呼叫的完整流程走一遍,包括並行呼叫、出錯處理和思考模式下的注意事項。

    45 分鐘 · 進階
  4. 04
    出錯、重試、限流和花錢

    復現幾種最常見的 API 錯誤,看 openai SDK 預設幫你做了哪些重試,再寫一個帶超時、指數退避、併發限制和費用記錄的呼叫函式,放進專案裡就能用。

    40 分鐘 · 進階
  5. 05
    專案:答疑助手的第一版

    把多輪對話、流式輸出、重試和費用統計組裝成 RepoBot v1,一個 httpx 答疑助手。用 6 道有標準答案的題測它,看它答對了什麼、編造了什麼。

    60 分鐘 · 進階

前面兩個模組,每個例子都是"呼叫一次,列印結果"。真實的應用要面對更多問題:使用者會連著問好幾句;回答太長,使用者等不及;需要查即時的資料;網路會斷,服務會限流,賬單要算清楚。

這個模組把這些問題一個個解決掉,最後把它們組裝成貫穿專案 RepoBot 的第一版:一個能在命令列裡連續對話、流式輸出、自動重試、每輪顯示花費的 httpx 答疑助手。

為什麼是這個順序

第 1 課先弄清楚"對話"在 API 層面到底是什麼,後面每一課都建立在訊息列表之上。第 2 課的流式輸出改善的是使用者體驗,相對獨立。第 3 課的工具呼叫最重要,也最複雜,它是第 05 模組智慧體的基礎。第 4 課處理的是所有前面這些功能在真實環境裡都會遇到的問題:出錯和花錢。第 5 課把前四課組裝起來。

學完的標準

  • 能寫一個命令列聊天程式,並在歷史過長時截斷或壓縮。
  • 能用流式輸出把回答一邊生成一邊顯示,並知道怎麼把它轉發給瀏覽器。
  • 能從零寫出完整的工具呼叫迴圈:說明書、執行、把結果傳回、處理並行呼叫和工具出錯。
  • 能寫一個帶超時、指數退避重試、併發限制和費用記錄的呼叫函式。
  • RepoBot v1 在你的電腦上跑起來,並能說出它在哪類問題上會答錯、為什麼。

本模組的程式碼

程式碼和執行結果保留原樣(簡體中文),與實際執行時完全一致。