Hakila Docs

Presets

把模型、系統提示、參數與快取設定存成一組,請求時一行引用

Preset 讓工作區把常用設定存成一組:模型、系統提示、預設參數(含 tools)與 Response Cache 設定。改 Preset 就能調整所有引用它的請求,不必改程式碼。

建立

Console → 工作區 → Presets → 新增 Preset:

欄位說明
名稱/說明顯示用
Slug工作區內唯一,只能用小寫英數字與 -(例如 email-writer)
套用模型預設:套用全部模型,請求必須自己帶 model;自訂:勾選 1–3 個模型,只有這些模型能引用,第一個是請求沒帶模型時的預設
系統提示可選填
參數 JSON可選填,例如 {"temperature": 0.3, "max_tokens": 1024}
Response Cache不指定/預設開啟/強制關閉,以及 TTL

只有工作區管理員可以建立與編輯;成員只能檢視。儲存後數十秒內在所有 Gateway 實例生效。

引用方式

三種寫法擇一:

{ "model": "@preset/email-writer", "messages": [...] }
{ "model": "openai/gpt-5.6-luna@preset/email-writer", "messages": [...] }
{ "model": "openai/gpt-5.6-luna", "preset": "@preset/email-writer", "messages": [...] }
  • 第一種用 Preset 自訂模型中的第一個(Preset 套用全部模型時不能用這種寫法)
  • 第二、三種以請求的模型為準,其餘設定仍套用 Preset;Preset 有自訂模型時,請求的模型必須在清單內
  • 裸名稱(例如 gpt-5.6-luna)會先補上開發商前綴(openai/gpt-5.6-luna)再比對
  • preset 欄位必須帶 @preset/ 前綴,否則會被忽略
  • preset 欄位與 @preset/... 後綴都會在轉發前移除,上游不會看到

以下情況回 400:找不到或已停用、請求的模型不在 Preset 的自訂模型內,或 Preset 套用全部模型而請求沒帶模型。

合併規則

請求自己帶的值一律優先,Preset 只補沒給的部分:

  • 模型:請求明示的模型(須在自訂模型內)→ Preset 自訂模型的第一個
  • 參數:淺層合併,請求已有的欄位不會被覆蓋;model、messages、input、stream 不會從 Preset 套用
  • tools:依函式名稱聯集,Preset 的工具排在前面;同名時以請求的定義為準
  • 系統提示:請求裡沒有 system/developer 訊息時,才插入為第一則 system 訊息;Responses API 則在沒有 instructions 時填入 instructions

套用後的請求仍要通過模型允許清單,計費也照實際路由到的模型計算。

Response Cache 設定

Preset 設定行為
不指定由 X-Hakila-Cache header 決定(預設關閉)
預設開啟不帶 header 也會快取;X-Hakila-Cache: false 可關閉
強制關閉一律不快取,header 也無法開啟

TTL 未填時用 300 秒;請求的 X-Hakila-Cache-TTL 會覆蓋 Preset 的 TTL。

用量紀錄

套用 Preset 的請求會在 Logs 的模型名稱下方顯示 @preset/slug。

相關頁面

本頁目錄