Sentinel API v1

從第一個 API 呼叫到正式環境

Model providers

Edge-first,不是 Edge-only

取流、RTSP 密碼、本地偵測與追蹤、事件狀態及保存的證據留在 Edge。語意 VLM 可以在同一台主機、客戶私有 endpoint,或明確選擇的雲端服務。

local_*

本機 VLM

目前 Docker profile 使用 NVIDIA GPU/vLLM;推理圖片不離開站點。

private

私有 OpenAI-compatible

連到客戶控制的 LAN、VPN 或資料中心 endpoint。

gemini

選配雲端

只有監控任務選出的有限圖片送給明確設定的 provider。

cloud_gemini 是明確選擇、由 server 管理且由 durable Monitor 端到端使用的 profile。只有 GET /v1/system/models 顯示 provider=gemini、POST /v1/system/models/test 成功,並完成代表性影像驗收後才投入 production。啟用後,有限推理圖片與 provider 所需 metadata 會離開 Edge;沒有 silent fallback。

從 Mock 切換到真實 Provider

Quickstart 已建立含私密 API/Webhook secrets 的 deploy/api/.env。bootstrap 刻意不會覆寫它。請保留那些 secrets,只把 deploy/api/profiles 中所選範例的 provider 欄位合併進既有 .env;不要直接用範例檔覆蓋整份設定。

docker compose config --quiet

# local_* only: start the pinned GPU provider and recreate API
docker compose --profile gpu up -d --build --force-recreate api vllm

# private/cloud: recreate API after its endpoint/key fields are configured
docker compose up -d --build --force-recreate api

# verify the selected provider before adding a camera
GET  /v1/system/models
POST /v1/system/models/test

若 readiness 仍是 503,先看 checks.inference_provider 與模型測試的 model_unavailable,不要切回 mock 當作正式結果。

查詢目前資料邊界

GET  /v1/system/models
POST /v1/system/models/test

回應顯示 provider 類型、已淨化 target、profile、資料邊界、是否已設定憑證,以及目前可用的 ready 值;永遠不回傳 key。測試操作回傳 provider 與 probe status,失敗時使用結構化 model_unavailable error。

OpenAI-compatible 私有 endpoint

SENTINEL_INFERENCE_PROVIDER=vllm
SENTINEL_VLLM_BASE_URL=http://gpu.internal:8080/v1
SENTINEL_VLLM_MODEL=your-vision-model
SENTINEL_VLLM_API_KEY=<server-side-secret>

Provider 測試會驗證真正的模型清單或推理 response shape;回傳無關 HTML 的 HTTP 200 不代表模型健康。Provider 不可用時不能被解釋為安全的視覺結果。