Hakila Docs
Models

Claude Desktop 模型清單

Claude Desktop 第三方推論設定的 `inferenceModels`:這把 API Key 能用的 Claude 模型,不含 `anthropic/` 前綴,第一個是預設模型。 回應帶 `ETag`,送 `If-None-Match` 且內容沒變時回 `304`。額度用完時仍可呼叫(金鑰本身仍須有效)。

GET/v1/clients/claude-desktop/models

Claude Desktop 第三方推論設定的 inferenceModels:這把 API Key 能用的 Claude 模型,不含 anthropic/ 前綴,第一個是預設模型。

回應帶 ETag,送 If-None-Match 且內容沒變時回 304。額度用完時仍可呼叫(金鑰本身仍須有效)。

Authorization

bearerAuth
AuthorizationBearer <token>

在 Authorization 標頭帶入 Workspace API Key: Authorization: Bearer sk-hakila-...

In: header

Response Body

application/json

application/json

curl -X GET "https://example.com/v1/clients/claude-desktop/models"
{  "models": [    "claude-sonnet-5",    "claude-opus-5",    "claude-fable-5-1",    "claude-haiku-4-5-20251001"  ]}

Codex 模型清單 GET

產生 Codex 的 `model_catalog_json`(`{"models":[…]}`),存成 `hakila-models.json` 後在 `config.toml` 指向它即可。 只列出這把 API Key 能用的 chat 模型:Hakila 調校過的模型照設定顯示在選單, 其餘模型以隱藏條目出現,可用 slug 直接指定。 回應帶 `ETag`,送 `If-None-Match` 且內容沒變時回 `304`。額度用完時仍可呼叫(金鑰本身仍須有效)。

建立 Chat Completion POST

對齊 OpenAI Chat Completions 規格。`model` 必須是平台目錄中已啟用、且通過組織 ∩ API Key 允許清單的 id。 - Gateway 強制驗證 `model`;`messages` 請一併帶入(文件 Try it 與實務皆需要) - 設定 `"stream": true` 時以 SSE(`text/event-stream`)回傳 - 轉發時把 model id 換成該供應商的上游模型名稱 - 同一模型有多家供應商時,依平台優先順序 → `provider` 偏好 → 組織供應商限制 → 金鑰(BYOK 優先)挑選, 429/5xx 等錯誤且尚未開始回應時自動改送下一家;費用依實際供應商單價計算(見[多供應商與備援](/docs/guides/models#多供應商與備援)) - 回應 header `x-hakila-provider` 標示實際提供服務的供應商;非 streaming 回應的 JSON 另有 `provider` 欄位 - 未知欄位會盡可能透傳給上游(pass-through);空的 `tools`/`response_format`/`tool_choice` 會在轉發前移除 - `hakila/auto` 會先把請求內容交給內部選路模型,從通過允許清單的 auto candidate 中挑一個; 選路失敗時退回候選順序中第一個有上游金鑰者 - 上游首字元逾時(預設 30 秒)回傳 `504` - `model` 可引用工作區 Preset:`@preset/slug` 或 `openai/gpt-4o@preset/slug`,也可用 `preset` 欄位(見 [Presets](/docs/guides/presets)) - `usage.prompt_tokens_details` 回報 Prompt Cache 讀取/寫入 tokens(見 [Prompt Cache](/docs/guides/prompt-cache)) - `X-Hakila-Cache: true` 啟用 Response Cache,命中時不呼叫上游、不計費(見 [Response Cache](/docs/guides/response-cache))