跳到正文
openrouter blog·· 22 天前精選AI 評分62

OpenRouter 推出 Presets 配置即程式碼功能

How to Use OpenRouter Presets: Config-as-Code Guide

AI 導讀

OpenRouter 正式推出 Presets 功能,支援將模型選擇、系統提示詞、提供者路由與取樣引數集中儲存於儀錶板中,並透過 @preset/slug 在 API 請求中直接呼叫。

推薦理由

原文詳細介紹預設功能的配置方式與實際應用場景,讀者可透過集中管理模型與提示詞減少重複編碼。

正文 · AI 翻譯

你已經在網頁應用程式、批次指令碼與筆記本中使用相同的模型名稱、系統提示與溫度。現在你想改變溫度或模型,就必須同時編輯這三個地方。

我們為此專門打造了預設值。預設值是對你的 LLM 呼叫的 config-as-code,包含一組命名且版本化的模型、系統提示、供應商路由與抽樣引數。我們讓你只定義一次,並在任何地方使用其名稱。當你更改預設值時,所有使用它的應用程式都會自動採用變更。

本指南補充了 預設檔案參考 與 發布公告。你將建立一個預設值,並在 API 呼叫中使用它,接著完成兩個設定範例:一個影像提示增強預設值與一個固定的 Fusion 配置。

TL;DR

  • 預設值將模型或備援模型陣列、系統提示、供應商路由與抽樣引數集中於同一名稱下。
  • 在任何請求中以 "model": "@preset/your-preset-name" 使用它。
  • 在儀錶板更新它,所有使用它的應用程式都會變更,無需重新部署程式碼。

什麼是 OpenRouter 預設值?

OpenRouter 預設值是一個命名且版本化的設定,儲存你的模型選擇、系統提示、供應商路由偏好與抽樣引數。我們讓你透過其 slug 在任何 API 請求中使用它。這樣可將 LLM 設定從應用程式程式碼中抽離。

把預設值想像成你會想像的 .env 檔案或 Terraform 模組,配置位於應用程式邏輯之外,並以名稱被引用,而非複製進去。不同之處在於它的存放位置與誰能改動它。.env 檔案仍隨你的 repo 交付,需重新部署才能更新。我們將預設值存於 OpenRouter 儀錶板,改動後即刻更新所有引用它的應用程式。

單一預設值可儲存:

  • 模型選擇,單一模型或備援模型的有序列表。
  • 系統提示,在每一次請求前加入的指令。
  • 供應商路由,依價格或延遲排序,並可包含或排除供應商。
  • 抽樣引數,溫度、top_p 與其他設定。
  • 工具,包括 OpenRouter 伺服器工具 如網頁搜尋、影像生成、顧問與子代理。

預設值 vs. 硬編碼請求主體

硬編碼請求@preset/name
設定存放位置每個程式碼庫一次在儀錶板
更改系統提示編輯並重新部署每個應用程式編輯預設值;無需重新部署
模型備援在每處重複陣列只在預設值中定義一次
誰能改動它任何能發布程式碼的人任何擁有儀錶板存取權的人

如何建立你的第一個預設值

步驟 1:開啟預設值編輯器

前往 openrouter.ai/settings/presets 並建立預設值。選擇一個你會記得的 slug,因為你會將它作為 @preset/your-slug 使用。

OpenRouter preset editor showing the Basic Info section with name, slug, and description fields for a preset called image-enhancer

步驟 2:選擇模型與路由

選擇一個模型或加入一個 有序列表。若第一個模型因速率限制、停機或上下文過多失敗,我們會嘗試下一個。你只需在預設值中設定一次備援順序,而非在每次請求中重複。

OpenRouter preset editor showing the Models section with Claude Opus 4.8 selected and the Provider Routing section with sort set to latency

在此設定供應商路由,如上方截圖所示。你可以 依價格或延遲排序,或阻擋某個供應商。

步驟 3:加入系統提示與抽樣設定

加入你的系統提示,並設定溫度、top_p 與其他抽樣引數。這些將成為使用該預設值的每一次請求的預設值。

OpenRouter preset editor showing the System Prompt field with instructions for expanding user requests into detailed image prompts

步驟 4:在 API 呼叫中引用它

將模型欄位設定為您的預設。比較這些請求。

在請求中包含每個引數之前:

from openrouter import OpenRouter

client = OpenRouter(api_key=OPENROUTER_API_KEY)

resp = client.chat.send(
    model="anthropic/claude-opus-4.8",
    provider={"sort": "price"},
    temperature=0.7,
    messages=[
        {"role": "system", "content": "You are a concise technical writer..."},
        {"role": "user", "content": "Explain preset versioning."},
    ],
)

之後,使用預設參考:

resp = client.chat.send(
    model="@preset/tech-writer",
    messages=[
        {"role": "user", "content": "Explain preset versioning."},
    ],
)

您也可以透過 API 傳送 POST 請求至 preset 端點來建立預設。我們僅儲存屬於 preset 設定的欄位,忽略像 messages、stream、prompt 這類暫時性欄位。

curl https://openrouter.ai/api/v1/presets/tech-writer/chat/completions \
  -H "Authorization: Bearer $OPENROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "anthropic/claude-opus-4.8",
    "temperature": 0.7,
    "messages": [
      {"role": "system", "content": "You are a concise technical writer."}
    ]
  }'

您可以在每個請求中覆寫預設設定。若請求主體包含 temperature,該值將覆蓋預設值。合併為淺層合併,請求欄位會取代相符的預設欄位,我們保留您未提供的任何預設欄位。tools 為例外:我們將預設的工具與請求的工具合併,且請求工具會取代同名的預設工具。您亦可使用獨立的預設欄位 ("preset": "@preset/tech-writer") 或合併形式 ("model": "anthropic/claude-opus-4.8@preset/tech-writer")。preset 欄位必須包含完整的 @preset/ 字首,單獲的 slug 會被忽略。

可以設定預設預設嗎?

API 無法。預設具有版本。儲存現有 slug 會產生新版本並使其為活躍,但 API 沒有全域預設預設。每個請求必須指定一個預設。Chatroom 在 Settings > Preferences 下確實有「Default Preset」設定,適用於新聊天訊息。

對於 API,將您的預設行為放入預設並在所有地方使用該預設。如果您想要簡短回答,將該規則加入預設的系統提示(“Answer in three sentences or fewer unless asked to expand.”)並設定取樣引數。每個使用 @preset/short-answers 的服務都會遵循這些預設,除非請求覆寫。

以名稱使用預設能提供穩定行為,且您可在一處變更。相同模式可延伸至更複雜的設定。以下是兩個實作範例。

使用案例 1:影像提示增強預設

影像模型往往在詳細提示下表現更佳。與其每次手動加入細節,不如在預設中 將文字模型與影像生成工具配對。文字模型在送至影像模型前先精煉每個提示。

該預設儲存一個文字模型、一個將簡短請求轉換為完整視覺簡報(涵蓋主題、構圖、照明、調色盤與風格)的系統提示,以及影像生成工具。

curl https://openrouter.ai/api/v1/presets/image-enhancer/chat/completions \
  -H "Authorization: Bearer $OPENROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "anthropic/claude-opus-4.8",
    "messages": [
      {"role": "system", "content": "You are an expert visual prompt engineer. Expand the user request into a detailed image prompt covering subject, composition, lighting, palette, and style, then call the image tool."}
    ],
    "tools": [
      {"type": "openrouter:image_generation",
       "parameters": {"model": "google/gemini-3.1-flash-image"}}
    ],
    "tool_choice": "required",
    "temperature": 0.7
  }'

預設儲存後,可直接在 Chatroom 中開啟預設並選擇「Test in Chat」來測試。傳送類似「a cozy reading nook by a rainy window」的簡短提示,預設會套用其系統提示與影像工具。文字模型將您的簡短提示擴充為完整視覺簡報,然後自動呼叫影像工具。以下為示例。

OpenRouter Chatroom showing the image-enhancer preset expanding the prompt 'A cozy reading nook by a rainy window' into a detailed visual brief and generating a photorealistic image

該預設儲存 tools 陣列和 tool_choice,以及模型、系統提示和取樣引數。

每個使用 @preset/image-enhancer 的應用程式都會得到相同行為。Preset-enhanced images cookbook 逐步說明整個流程。

使用案例 2:將 Fusion 設定釘選為預設

Fusion 設定會在您的主模型旁執行一組模型,主模型使用該組模型的輸出撰寫最終答案。將整個設定儲存為預設,然後通過單一參考使用。

將 openrouter:fusion 工具、其 analysis_models 面板與分析師 model 儲存於預設工具中,然後從任何位置呼叫 @preset/fusion-panel。您的網頁應用、評估工具和 Slack 機器人都使用相同的面板。您可在儀錶板中調整,而非編輯三個程式碼庫。欲瞭解 Fusion 設定所使用的精確欄位與面板運作方式,請參閱 Fusion docs。

這也為機器學習工程師提供了可重複的評估設定,使用相同的模型、抽樣設定與路由,並且以一個穩定的 slug 管理。

隨時間管理預設

每次以已存在的 slug 儲存預設時,我們的系統會建立新版本並將其設為啟用。使用該預設的 API 請求將使用啟用版本。

Diagram showing three preset versions in sequence, with version 3 marked active and receiving API requests, and a dashed arrow labeled 'restore an earlier version' pointing back to version 1

在儀錶板中更改系統提示,所有使用該 slug 的應用程式在下一次請求時即會採用此更改。無需重新部署。若更改降低品質,可於儀錶板回復較早的版本。新請求立即使用該版本。

產品經理可在儀錶板中更改系統提示或模型,而不必請工程師編輯程式碼或發布新版本。

跨應用程式與團隊的預設

一個預設可供 API 整合、批次工作及支援 OpenAI 相容 API 的第三方應用程式使用。因為預設使用標準的 model 欄位,任何能設定 model 字串的客戶端皆可使用。

對於較大型團隊,預設提供一個版本化的位置來管理模型選擇、路由與提示。它取代散佈於多個倉庫中的常數。

若使用組織帳戶,所有成員皆可存取組織預設,這使其成為跨團隊分享最佳實踐的良好方式。

結論

三件事值得記住:

  • 預設將模型、系統提示、路由規則與抽樣設定存於同一名稱下。於任何請求中將其作為 @preset/name 使用。
  • 更新預設會改變所有使用它的應用程式,且不需重新部署。如有需要,可回復較早版本。
  • 相同的共用設定可為多個應用程式提供影像提示增強與 Fusion 面板的功能。

在 openrouter.ai/settings/presets 建立您的第一個預設。接著嘗試 預設增強影像食譜。

常見問題

如何在 OpenRouter 中更改模型?

在 openrouter.ai/settings/presets 中更改預設的模型。每個使用 @preset/your-preset-name 的呼叫在下一次請求時將使用新模型。若無預設,您必須在每個請求主體中更改 model 欄位。

OpenRouter 的模型使用方式為何?

我們為您提供一個 API 端點,涵蓋來自 Anthropic、OpenAI、Google、Meta 及其他供應商的數百個模型。每個請求可選擇模型或使用預設,然後按各模型的 token 率付費。檢視模型清單 以瞭解目前的選項與價格。

OpenRouter 的 API 限制為何?

速率限制因模型與供應商而異。預設不會改變它們。預設僅儲存設定、模型、提示、路由與抽樣設定。無論使用預設或直接在每個請求中設定引數,均適用相同限制。檢視限制檔案 以瞭解目前數字。

OpenRouter 與 OpenAI 相容嗎?

是的。我們提供 OpenAI 相容的 API。預設使用標準的 model 欄位,因此任何 OpenAI SDK 客戶端皆可透過設定 "model": "@preset/your-preset-name" 來使用。

預設能否包含備援模型?

可以。預設可包含一個有序的模型列表。若首個因速率限制、停機或上下文過多失敗,我們會嘗試下一個。您只需在預設中設定一次順序,而非在每個請求中。

我可以在每個請求中覆寫預設設定嗎?

可以。請求主體中的引數會覆寫預設值。合併為淺層合併,因此請求欄位會取代相符的預設欄位,而未包含的預設欄位將保留。工具會合併,請求工具會取代同名的預設工具。

預設是否只能在 Chatroom 使用,或也可透過 API 使用?

預設通過 OpenAI 相容 API 工作。您可以在模型欄位使用 @preset/slug,或在單獨的 preset 欄位設為 @preset/slug,亦或使用結合的 model@preset/slug 形式。

來源:openrouter blog · openrouter.ai