AI 應用有一個獨特的品質挑戰:你無法靠讀 code 確認它是否正確運作

傳統函式 add(2, 3) 永遠回傳 5,單元測試可以保證。LLM 的輸出是機率分佈——同樣的 prompt 可能給不同的回應,品質是統計概念而非二元對錯。這意味著傳統的 QA 思維需要補充新的工具。


Eval Dataset:你的「測試套件」

好的 AI 應用有 eval dataset:一組輸入-期望輸出的對,用來量化模型在你的 use case 的表現。

  • 有代表性的 golden dataset(50-200 個真實案例)
  • 每次改 prompt 或換模型前後都跑 eval,比較分數
  • Eval 有明確的評分標準——人工標注或 LLM-as-judge
  • Regression eval:確保改進一個地方沒有讓其他地方退步

不健康的訊號:改了 prompt 就直接上線,「感覺比較好」是唯一依據;換了更便宜的模型但不知道品質有沒有影響。


Observability:知道它在生產環境做什麼

AI 應用的 observability 跟一般後端不一樣:latency 是秒級而不是毫秒級、輸出需要被記錄和分析、cost 需要被追蹤。

  • Prompt 和 response 都有 log(考慮 PII,可能需要遮蔽)
  • Latency 按 token 數分解:是 TTFT(Time to First Token)慢,還是 throughput 慢
  • Token 用量 per request:發現異常(某些 case 用了 10x token)
  • Error rate:rate limit、timeout、content policy 拒絕的比例
  • User feedback 收集:thumbs up/down 或 explicit 評分

工具:LangSmith(LangChain 生態)、Phoenix(Arize)、Langfuse(開源)、或自建的 logging pipeline。


Fallback 和 Degraded Mode

LLM API 會 rate limit、timeout、偶爾壞掉——你的應用能不能撐住?

  • API timeout 設定:不要等超過 30 秒,超時要有 fallback 行為
  • Retry with backoff:rate limit 時不是立刻失敗,而是重試
  • Graceful degradation:模型不可用時,應用能以降級模式運作(例如顯示靜態回應或引導到人工)
  • 多模型 fallback:主要模型掛了,能切換到備用模型(不同廠商更好)

Cost Control

LLM API 按 token 計費,沒有管控就會有意外帳單。

  • 每個 use case 估算 cost per request:知道邊界條件
  • Token budget:對長對話設上限,防止無限延伸
  • Caching:完全相同的輸入可以 cache 輸出(semantic cache 更進一步)
  • Cost alert:每日費用超過閾值就告警
  • 模型選型:不是所有任務都需要最貴的模型——分類任務用小模型、生成任務用大模型

Security

AI 應用的安全面除了傳統的 web security,還有 LLM 特有的:

  • Prompt injection 防禦:用戶輸入不能直接拼進 system prompt 沒有任何隔離
  • 輸出驗證:如果輸出要被用於後續邏輯(例如 JSON 解析),有格式驗證
  • PII 過濾:response 不包含不應該回傳的個人資料
  • Rate limiting:每個用戶的 API 呼叫有限制,防止濫用和意外高費用
  • Jailbreak 監測:記錄並 review 異常的 prompt pattern

好的 AI 應用 Checklist 小結

面向最低要求完整狀態
品質有 eval dataset自動化 eval + regression
觀測有 prompt/response logLLM tracing + user feedback
韌性API timeout + retry多模型 fallback
成本知道每 request 多少錢自動 alert + caching
安全基本 prompt injection 防禦完整輸入輸出驗證

AI 應用的工程品質標準還在快速演進。這份 checklist 是 2024-2025 年的最佳實踐快照,跟 engineering 章節配合看有更深入的實作細節。