安裝後驗證
安裝後透過驗證服務健康狀態、模型連線能力、推論請求、路由行為和錯誤處理,確認模型閘道運作正常。
安裝和設定模型推論閘道後,請驗證部署是否正常運作。按順序完成以下驗證任務。在繼續下一步之前,確認每個步驟都成功完成。
驗證閘道健康狀態
確認 Inference Service Pod 正在執行且所有容器已就緒:
oc get pods -n <bob-namespace> -l app=bob-inference檢查啟動日誌以了解閘道初始化情況。成功啟動時,每個已設定的模型被註冊都會記錄到日誌中。憑證或設定解析錯誤也會在此處出現:
oc logs -n <bob-namespace> deploy/bob-inference --since=5m從叢集內部確認閘道的 /v1/models 端點是否有回應——這是確認閘道已啟動並載入設定的最清晰信號:
oc exec -n <bob-namespace> deploy/bob-gateway -- \
curl -sk https://bob-inference.<bob-namespace>.svc.cluster.local:7330/v1/model/info | jq .驗證模型連線能力
檢查每個預期 model_name 的 /v1/models 回應。連線失敗的模型(錯誤的 URL、驗證錯誤、TLS 失敗)將不出現在清單中,或以錯誤狀態出現。
只有 model_info 中 exposed: true 的模型才會出現在公開的 /v1/models 清單中。exposed: false 的模型(例如防護欄模型)不會出現,但仍應可在內部存取。不在清單中並不總是代表連線失敗。
測試模型推論
從叢集內部直接向 Inference Service 傳送最小測試完成請求,針對核心模型和防護欄模型均進行測試:
oc exec -n <bob-namespace> deploy/bob-gateway -- \
curl -sk https://bob-inference.<bob-namespace>.svc.cluster.local:7330/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "<model_name>",
"messages": [{"role": "user", "content": "Say hello."}],
"max_tokens": 10
}' | jq .成功的回應包含帶有 message.content 欄位的 choices 陣列。
常見錯誤:
| HTTP 狀態碼 | 原因 |
|---|---|
401 Unauthorized | 憑證無效或權限不足 |
404 Not Found | 供應商上不存在指定的模型 ID |
502 Bad Gateway | 無法連線到上游模型端點 |
防護欄模型必須可存取且能夠處理請求。如果防護欄模型不可用,IBM Bob 將拒絕所有推論請求。在認為安裝完成之前,請確保防護欄驗證成功。
驗證模型路由
確認主要模型是否正確路由,方法是檢查回應中的 model 欄位是否與請求的 model_name 相符。
如果任何模型項目設定了 fallbacks,請透過暫時將主要模型的 base_url 指向不可存取的主機來驗證備援路徑,並確認閘道會回退到清單中的下一個模型。測試後恢復正確的 base_url。
對於 exposed: false 的模型,即使它們不出現在公開模型清單中,也要確認內部路由仍能正確解析它們。
驗證錯誤處理
執行以下刻意的負面測試,確認閘道能夠優雅地處理失敗:
| 測試 | 觸發方式 | 預期行為 |
|---|---|---|
| 無效的 API 金鑰 | 在 Secret 中暫時設定錯誤的金鑰值 | 閘道回傳 401,不崩潰 |
| 無法存取的端點 | 將 base_url 設定為無效的主機 | 閘道回傳 502 或 503,記錄上游錯誤 |
| 格式錯誤的模型 ID | 將 model 設定為不存在的 ID | 供應商回傳 404,錯誤傳遞給呼叫方 |
| 缺少 Secret 環境變數 | 從 bob.modelGateway.secrets 移除金鑰 | 請求時失敗,並在日誌中記錄缺少變數的錯誤 |
| 過期的 TLS 憑證 | 提供過期的憑證作為 ca_cert_pem | 請求時記錄 TLS 握手失敗 |
收集日誌和疑難排解
在測試請求期間串流即時日誌,以即時觀察閘道路由決策:
oc logs -n <bob-namespace> deploy/bob-inference -f收集完整日誌轉儲以供支援團隊參考:
oc logs -n <bob-namespace> deploy/bob-inference --since=1h > bob-inference.log關鍵日誌模式:
| 日誌模式 | 含義 |
|---|---|
| Model registered successfully | 閘道載入模型項目時未發生錯誤 |
connection refused / no route to host | 連線至模型端點失敗 |
401 / 403 from upstream | 憑證錯誤或缺少所需權限 |
certificate signed by unknown authority | ca_cert_pem 中的 CA 憑證缺失或不正確 |
environment variable not found | 以 env.* 參照的 Secret 不在掛載的 Secret 中 |
對於事件層級的錯誤(例如阻止容器啟動的 Secret 掛載失敗):
oc describe pod -n <bob-namespace> -l app=inference-service切換核心推論模型
要在安裝後從一個受支援的核心推論模型切換到另一個: