“大多數測試都很廉價。點擊一個按鈕,斷言某個東西變了,運行上千次也沒人注意。但測試AI產品不一樣。”這句話來自Zephyr Cloud團隊最近的工程實踐記錄。他們遇到的問題是:一旦觸發AI模型,每一輪對話都算錢。這個團隊在為The AI Platform構建課程產品時,一上來就撞上了成本墻。
這個問題的核心在于產品特性本身。The AI Platform是Zephyr Cloud開發的一個桌面應用,團隊可以在頻道里和AI專家協作。想象一下Slack,但頻道里有能對話、能@、能派活的AI助手。用戶創建一個頻道,@一位專家,這位AI專家就會像真人一樣在對話中回復。這個聊天界面是整個產品的核心,自然也是團隊最需要信任的部分。
![]()
在這個平臺上,團隊和Kent C. Dodds合作開發了一個課程試點項目。這個課程叫Product Engineering Workshop,運行在一個叫Course Studio的界面里。學習者不看視頻,而是直接和AI角色聊天來做真實練習。有一位叫Kody的引導員幫你梳理問題,還有利益相關方角色比如產品副總裁等著你采訪、收集證據。完成后寫一份簡短備忘錄,隱藏的AI評估員會閱讀整個對話,根據評分標準打分。
這就是測試的難點所在。來看一個練習的完整流程:學習者@引導員并收到回復,采訪一位或多位利益相關方并收到回復,提交備忘錄,觸發評估員閱讀所有內容并返回評分。每一步都是真實的模型調用。決定誰來回復需要調用一次,每個AI角色的回復各需要調用一次,評估員再調用一次。評估員的調用尤其大,因為它要讀完整段對話。一個練習就這么多調用,乘以五個練習,再乘以每次運行測試套件——成本隨運行次數累積上升,測試套件越擴容越慢、越不穩定。
這就是團隊做出的關鍵設計選擇:不mock掉整個應用,不替換UI層,保持所有內容真實運行,只換掉那個最昂貴的部件——模型。測試通過Playwright驅動真實的桌面應用,和學習者實際使用的版本完全一樣。為了讓應用變得可測試,應用把聊天提供程序暴露在window對象上。測試工具拿到真實提供程序的引用,然后包裝了三個原本會請求AI模型的函數:決定由誰來回復的函數,發送AI角色回復的函數,以及推送事件流的相關功能。
這種做法保留了完整的用戶交互鏈路,從點擊按鈕到觸發流程到界面響應,統統真實執行,但模型調用這條燒錢路徑被截斷了。團隊獲得的是一套可以在CI里反復運行的端到端測試,不會有爆炸的賬單,也不會隨著課程內容增加而線性惡化。這個設計思路的延伸價值在于,它在不犧牲測試可信度的前提下,把成本從變量變成了常量。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.