評估與上線
做一份評估集,用模型當評委並校準它,記錄每一步的日誌,省錢提速,加上輸入輸出護欄,最後把 RepoBot 做成網頁服務部署上線。
各課
- 01做一份評估集
為 RepoBot 準備 36 道題,覆蓋文件題、原始碼題、該拒答的題、沒有答案的題和注入。存成 JSONL,一條命令跑完,按類別統計步數、耗時和花費,再用規則粗查一遍。
40 分鐘 · 進階 - 02用模型當評委
給 36 個回答寫評分標準,讓模型當評委,再和人工標註逐條對比。吸取 04 模組的教訓後,評委和人工 36 題全部一致,還抓出了藏在解釋裡的錯誤。
45 分鐘 · 進階 - 03日誌和可觀測性
寫一個幾十行的追蹤器,把智慧體每一次模型呼叫、每一次工具呼叫都記成一行 JSON。事後只讀日誌,就能算出每個問題花了多少錢和時間、最慢的是哪一步、哪個工具在出錯。
40 分鐘 · 進階 - 04省錢和提速
五個小實驗:把固定資料放在前面省了 64% 的錢,要求簡短讓輸出少了 92%,簡單問題關掉思考,自己做結果快取,併發把 10 個請求從 9.5 秒壓到 2.3 秒。
35 分鐘 · 進階 - 05護欄:擋住不該進來和不該出去的東西
輸入護欄用一次便宜的呼叫給問題分類,42 道題判對 41 道,補一條規則後全對;輸出護欄用正則遮住回答裡的金鑰和手機號,並處理流式輸出時秘密被拆成兩半的問題。
40 分鐘 · 進階 - 06專案:把答疑助手部署上線
把 RepoBot 做成一個網頁服務:FastAPI 流式介面、流式的智慧體迴圈、輸入輸出護欄、追蹤日誌、輸入校驗,再講怎麼部署到一臺伺服器上。第一部分的貫穿專案在這裡完成。
90 分鐘 · 進階
一個 AI 應用能在你的電腦上跑起來,離能交給別人用還差很遠。你需要知道它答得好不好、改了之後有沒有變差、出了問題能不能查到原因、每個月要花多少錢、會不會被人濫用。
這個模組回答這些問題。前兩課做評估:準備題目、讓模型當評委,並且用人工標註檢查評委靠不靠譜。第 3 課做日誌,第 4 課省錢提速,第 5 課加護欄。最後一課把所有東西裝進 RepoBot,做成一個網頁服務。
為什麼是這個順序
評估放在最前面,因為後面的每一項改動(最佳化成本、加護欄、改成網頁服務),都要用它來確認效果沒有變差。日誌放在最佳化之前,因為要先知道錢花在哪裡、時間花在哪裡,才知道該最佳化什麼。護欄在最後,因為它會攔截請求,需要評估集來確認它沒有誤傷正常的問題。
學完的標準
- 能為自己的應用準備一份覆蓋正常、邊界、拒答、注入各類情況的評估集,並一條命令跑完。
- 能寫出模型評委的提示詞,並用幾十條人工標註檢查它和人的判斷有多一致。
- 能給智慧體加上追蹤日誌,並從日誌裡算出每個請求的步數、耗時和花費。
- 能說出至少三種省錢或提速的辦法,並在自己的應用上量出效果。
- 能實現輸入分類護欄和輸出脫敏護欄,知道它們各自防不住什麼。
- RepoBot v4 在你的電腦上以網頁服務的形式執行,並能說出上線前還缺哪些東西。
本模組的程式碼
程式碼和執行結果保留原樣(簡體中文),與實際執行時完全一致。
- code/06-production/answers.jsonl
- code/06-production/cost_latency.py
- code/06-production/evalset.jsonl
- code/06-production/guardrails.py
- code/06-production/human_labels.json
- code/06-production/judge.py
- code/06-production/judged.jsonl
- code/06-production/run_eval.py
- code/06-production/traced_agent.py
- code/06-production/traces.jsonl
- code/06-production/tracing.py
- projects/repobot/v4/agent.py
- projects/repobot/v4/Dockerfile
- projects/repobot/v4/guard.py
- projects/repobot/v4/llm.py
- projects/repobot/v4/logs/traces.jsonl
- projects/repobot/v4/README.md
- projects/repobot/v4/requirements.txt
- projects/repobot/v4/retrieval.py
- projects/repobot/v4/server.py
- projects/repobot/v4/static/index.html
- projects/repobot/v4/tools.py
- projects/repobot/v4/tracing.py