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。