本簡報以 16:9 橫向為主
請旋轉手機
或改用平板 / 桌機觀看
Part 5 你把工具部署上 Vercel,但中間還有一層被遮住的東西:API 是怎麼被呼叫的、Token 怎麼計費、出錯怎麼接。
Part 6 第一天,把這層黑盒子打開,再用 Node 與 Python 把後端中介層各寫一次。
會用聊天視窗只是使用者, 會打 API 才是開發者。
Part 5 之前你都靠別人寫好的 SDK / 介面。
Part 6 開始,你要自己對著一條 HTTP 請求負責:金鑰、計費、錯誤、節流,全部自己接住。
Part 5 你已經學會把 API key 藏到後端代理裡。
這節再往下挖一層:請求長什麼樣、Token 怎麼算錢、錯誤怎麼接。
method:通常是 POST
URL:API 端點
headers:身份驗證(Authorization)+ 內容格式(Content-Type)
body:你的 prompt 與參數(JSON)
status code:200 / 401 / 429 / 500(下面細講)
headers:剩餘配額(rate limit remaining)
body:模型回應的 JSON(含 usage 計費資訊)
沒有現成工具?講義 ★ 的「客服 FAQ 回覆助理」段落含:
· 320 字 system prompt 原始素材
· 一段直接貼 ChatGPT / Claude 的成本估算 Prompt(含三模型單價、輸出格式)
· 預期輸出片段(供對照)
講義 ★ 已備:
· 沒有重試的 Express 原始版(40 行)
· 一段「指數退避重試重構器」Prompt(指定退避時間、log 格式、超限後 503)
· 預期輸出片段含 [ADD] / [CHANGED] 註解規範
· 環境變數存 OPENAI_API_KEY
· curl + -i 把 response headers 一起印
· 觀察 x-ratelimit-remaining-requests
· 認得 200 / 401 / 429 / 400 各長怎樣
成功條件:能指認 choices[0].message.content 與 usage 三欄位
· Python + 三家 SDK
· 固定 temperature 0、固定 prompt
· 跑出 3×5 表:模型|回覆前 60 字|pt|ct|延遲
成功條件:能憑數字(不是感覺)挑出預設模型
curl 跑得通是「會用」,但上線給別人用,
你還缺一層真正的後端中介層——這是 CH6-2 要補齊的。
原 CH6-2 講題目是 Embedding 與向量搜尋(會挪到 D15 RAG 那天),
本日聚焦 hands-on Lab:把前端代理升級成正規後端中介層。
優點:前後端同 TypeScript,部署 Vercel zero-friction,npm 生態超大。
痛點:輸入驗證要自己寫 if、沒原生 API doc、async 寫多了容易漏 await(吃過虧才會記得)。
優點:型別驗證省一堆 if、自動 API doc、async 語法清晰,資料科學團隊熟。
痛點:部署需 Python runtime(不是每個平台都原生支援)、團隊若是 JS 背景多一道學習成本。
· 前後同語言,型別共用
· Vercel / Cloudflare Workers 原生支援
· 工具與套件生態成熟到誇張
· side project / 原型期最快上線
· 與 RAG / Embedding / 模型生態同語言
· pydantic + /docs 把驗證和文件一次解決
· 與 LangChain / LlamaIndex 等工具更順
· 後續要接 Function Calling / RAG 更省事
四個關鍵字串成一條鏈:看穿請求結構 → 算清每字成本 → 接住每種錯誤 → 包進正規中介層。
這條鏈是 Part 6 後半段(Function / Agent / Streaming / RAG / Evals)的共同地基。
模型不只回文字,還能主動呼叫你定義的函式:查資料庫、呼 API、執行運算,再把結果接回來繼續推理。
這是 LLM 從「聊天」變「可操作」的關鍵跳躍。
多個 Function 串起來,加上「規劃 → 執行 → 觀察 → 再規劃」的迴圈,就是 Agent。
要解決多步驟任務(查資料 → 整理 → 寫報告 → 寄信),這層是必修。
D14 我們把今天的中介層接上 Function Calling,
讓模型開始幫你做事,而不只是回話。