本系列以 Backend 工程師視角,使用 Python、FastAPI 與 Azure AI 生態,實作一個 production-minded GenAI backend。內容從 Azure OpenAI 整合、RAG 到 Agent 架構,並涵蓋 API 設計、測試、觀測性與成本控管等 production 議題,聚焦怎麼把 GenAI 從 demo 做成能在真實場景長期運作的系統。
你大概遇過這個場景:產品會議上有人說「我們加個 AI 功能吧」,然後任務落到你頭上。你打開文件一看,不就是呼叫一個 HTTP API 嗎?拿 API key、發...
想像你是團隊裡第一個要畫「AI 功能架構圖」的人。最容易畫出來的版本長這樣:前端 → 你的 API → OpenAI,三個框、兩支箭頭,會議上大家點頭通過。三個...
新專案的第一個 commit 通常是一個 main.py 加一句 hello world,反正「架構之後再說」。但 Day 2 的三個問題(不確定性隔離在哪、什...
現在隨手一搜,還是很容易搜到教你寫 AzureOpenAI(api_version="2024-xx-xx", ...) 的舊文章。但 20...
把 Day 4 的 wrapper 接上 POST /chat,五分鐘就能寫完:handler 收 message、丟給 SDK、把回傳塞進 JSON。所以今天...
Day 5 結尾承認的第一個限制就是它:回應一次成形,gpt-5-mini 這種 reasoning model 動輒好幾秒,client 盯著空白畫面等。解法...
Day 6 結尾承認的限制今天處理:API 沒有記憶,conversation_id 收了三天還是保留欄位。先把一個幻覺拆掉——LLM API 本身沒有「對話」...
事故報告寫到一半卡住的那種問題:「上週三下午那批品質很怪的回覆,當時線上跑的是哪一版 prompt?」如果你的 system prompt 是散在程式碼裡的字串...
LLM 後端最常見的成本事故不是單價貴,是沒有任何一層在花錢之前說不:一個迴圈重試、一段失控的長回覆、一場沒人記得關的對話,帳單月底才告訴你。今天要把成本從「月...
Day 9 架了兩道花費邊界之後,有一個問題它們完全答不了:如果 Azure OpenAI 的 API key 外洩了呢?拿到 key 的人不會經過你的 Fas...