BasicRouter 文件
快速入門
BasicRouter 為生產團隊提供一個穩定的 API,用於模型存取、路由、備援、使用量追蹤與基於積分的計費。LLM token 供應來自可信賴的企業雲端原廠帳號,閘道內建隱私保護、高穩定性與請求可追溯性。
https://api.basicrouter.ai/apihttps://api.basicrouter.ai/api/v1https://api.basicrouter.ai/api/v1Authorization: Bearer <key>建立 API 密鑰
在控制台中建立 BasicRouter API 密鑰。請將密鑰保存在您的伺服器上,切勿在瀏覽器或行動用戶端程式碼中暴露。
建議的密鑰策略:
| 密鑰類型 | 建議用途 |
|---|---|
| 開發密鑰 | 本地開發、預備環境、測試與原型。 |
| 生產密鑰 | 僅用於後端生產環境工作負載。 |
| 整合密鑰 | 用於 Cursor、Claude Code、Codex、Hermes 或 OpenClaw 等工具的專用密鑰。 |
| 客戶/租戶密鑰 | 為企業客戶、租戶流量或業務單位提供可選的密鑰隔離。 |
當團隊存取權限變更時請輪替密鑰。撤銷不再使用的密鑰。
將您的 SDK 指向 BasicRouter
大多數 OpenAI 相容用戶端只需要新的 base URL 與 API 密鑰。
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.BASICROUTER_API_KEY,
baseURL: "https://api.basicrouter.ai/api/v1"
});傳送聊天補全
curl --request POST \
--url https://api.basicrouter.ai/api/v1/chat/completions \
--header "Authorization: Bearer $BASICROUTER_API_KEY" \
--header "Content-Type: application/json" \
--data '{
"model": "claude-sonnet-5",
"messages": [
{ "role": "user", "content": "Explain BasicRouter in one sentence." }
]
}'查看使用量與餘額
curl --request GET \
--url https://api.basicrouter.ai/api/v1/billing/balance \
--header "Authorization: Bearer $BASICROUTER_API_KEY"模型發現
使用模型頁面或模型 API 來檢視可用的文字模型。模型中繼資料包含供應商、服務提供商、模態、上下文長度、支援的 API 家族、支援的能力、可用性、帳號層級限制與積分定價。
端點: GET /v1/models 用途:列出當前帳號可用的模型。
curl --request GET \
--url https://api.basicrouter.ai/api/v1/models \
--header "Authorization: Bearer $BASICROUTER_API_KEY"能力矩陣
| 能力 | 說明 | 常見使用者 |
|---|---|---|
streaming | 支援伺服器推送事件串流。 | 聊天應用、程式碼代理、即時 UX。 |
tool_calling | 支援工具或函式呼叫。 | 代理、工作流程自動化、程式碼助手。 |
structured_outputs | 支援結構描述限制或 JSON 輸出。 | 資料萃取、工作流程自動化、企業應用。 |
json_mode | 可回傳 JSON 格式輸出。 | 輕量級結構化回應。 |
vision | 接受圖像輸入。 | 多模態聊天、UI 分析、文件截圖。 |
prompt_caching | 支援快取輸入或上下文重用。 | 長上下文代理、重複的系統提示。 |
reasoning | 在可用時支援明確的推理控制。 | 複雜規劃、程式碼、分析工作流程。 |
logprobs | 支援 token 機率輸出。 | 評估、排序、進階 NLP 工作流程。 |
API 家族相容性矩陣
| API 家族 | 文字 | 視覺輸入 | 工具呼叫 | 結構化輸出 | 串流 | 備註 |
|---|---|---|---|---|---|---|
| OpenAI Chat Completions | 是 | 視模型而定 | 視模型而定 | 視模型而定 | 是 | OpenAI 相容代理與 SDK 的最佳預設。 |
| OpenAI Responses | 是 | 視模型而定 | 視模型而定 | 視模型而定 | 是 | 建議用於較新的 OpenAI 風格代理工作流程。 |
| Anthropic Messages | 是 | 視模型而定 | 視模型而定 | 視模型而定 | 是 | 最適合 Claude 相容用戶端與 Claude Code。 |
| BasicRouter image generation | 否 | 視模型而定 | 否 | 否 | 否 | 使用非同步任務輪詢或 webhook。 |
| BasicRouter video generation | 否 | 視模型而定 | 否 | 否 | 否 | 使用非同步任務輪詢或 webhook。 |
驗證
每個 API 請求都使用 bearer token。請將密鑰儲存在伺服器端環境變數中,在團隊存取權限變更時輪替,並記錄請求 ID 以供除錯。
| 標頭 | 值 | 備註 |
|---|---|---|
Authorization | Bearer YOUR_API_KEY | 每個請求都需要。 |
Content-Type | application/json | JSON 請求主體需要。 |
密鑰安全建議
- 將 API 密鑰保存在伺服器上。切勿在瀏覽器或行動用戶端程式碼中暴露密鑰。
- 為開發、預備、生產與第三方整合使用不同的密鑰。
- 在可用時依環境、服務、客戶或租戶為密鑰設定範圍。
- 在員工離職、供應商存取權限變更或疑似洩漏後輪替密鑰。
- 將密鑰儲存在密鑰管理器或環境變數中,而非原始碼中。
使用控制台
BasicRouter 控制台是 API 存取、模型可用性、路由策略、使用量可見性與帳單管理的營運控制平面。它為帳號管理員提供密鑰、模型、請求、積分與帳號層級控制的集中檢視,用於生產模型流量。
管理 API 密鑰
從控制台建立、輪替、撤銷與標記 API 密鑰。為開發、預備、生產與個別服務使用不同的密鑰,以便使用量可被稽核並依環境或應用隔離。
| 做法 | 說明 |
|---|---|
| 區隔環境 | 為開發、預備與生產流量使用不同的 API 密鑰。 |
| 使用描述性標籤 | 依應用、服務、環境或整合為密鑰加上標籤。 |
| 定期輪替 | 在存取權限變更或憑證可能已暴露時輪替密鑰。 |
| 避免用戶端暴露 | 僅將 API 密鑰保存在伺服器端系統。切勿在瀏覽器或行動用戶端程式碼中暴露密鑰。 |
| 監控密鑰使用量 | 依密鑰檢視請求量、積分消耗與錯誤模式。 |
模型列表
使用模型頁面檢視帳號可用的模型。每個模型項目可能包含供應商、服務提供商、模態、支援的 API 家族、上下文長度、能力旗標、可用性狀態與定價資訊。
| 篩選器 | 用途 |
|---|---|
| 供應商 | 依模型供應商篩選,如 OpenAI、Anthropic、Google、Qwen、DeepSeek 或其他提供商。 |
| 提供商 | 依服務提供商或雲端提供商篩選。 |
| 模態 | 依文字、圖像、影片、嵌入、音訊或多模態支援篩選。 |
| 能力 | 依串流、工具呼叫、結構化輸出、視覺、提示快取或推理支援篩選。 |
| 可用性 | 識別當前帳號可用的模型。 |
對於生產應用,在啟用流量前請驗證模型能力。部分參數與功能視模型而定,可能無法在所有 API 家族中支援。
使用量與日誌
使用量與日誌檢視提供 API 流量的營運可見性。團隊可以檢視請求量、選定的模型、解析的路由目標、積分消耗、延遲、錯誤碼與請求 ID。
- 疑難排解失敗的請求。
- 識別高成本工作負載。
- 比較跨應用與環境的模型使用量。
- 驗證路由與備援行為。
- 調查延遲或提供商可用性問題。
- 聯繫支援時提供請求 ID。
每個 API 回應包含或暴露 BasicRouter 請求 ID。請將此 ID 儲存在您的應用日誌中,以提升生產除錯與支援升級效率。
備援
備援是 BasicRouter 的韌性機制。當主要模型或路由策略失敗時,系統會自動切換到備援模型以繼續處理請求。這讓您的應用保持回應能力並將服務中斷風險降至最低。
備援就像安全網,即使發生模型故障、配額限制或網路波動,也能讓您的應用順利運行。
為何備援很重要
在生產環境中,模型服務可能遇到許多無法預測的問題:
- 模型服務故障:上游 API 暫時不可用或逾時。
- 效能波動:模型高負載導致回應緩慢或失敗。
- 路由失敗:智慧路由選擇的所有候選模型都不可用。
備援透過提供可靠的備援路徑來保持您的應用可用。
核心優勢
| 優勢 | 說明 |
|---|---|
| 高可用性 | 自動故障轉移讓服務持續運行並減少中斷影響。 |
| 透明切換 | 系統自動切換模型 — 無需變更應用程式碼。 |
| 彈性設定 | 支援每個請求與帳號層級設定,以適應不同使用情境。 |
| 成本最佳化 | 選擇更具成本效益的模型作為備援以控制緊急成本。 |
| 集中管理 | 在帳號層級設定一次,即自動套用至每個請求。 |
全域備援模型設定
BasicRouter 支援從控制台後端設定全域備援模型。所有請求在失敗時自動使用此模型作為備援。
如何設定:
- 前往 BasicRouter 策略設定頁面。
- 找到預設備援模型設定。
- 從下拉清單中選擇您的全域備援模型。
- 儲存設定以立即套用。
全域設定的優勢:
- 無需程式碼變更:設定一次即全域套用,無需在每個請求上重複設定。
- 集中管理:在一處管理備援策略,便於調整與監控。
- 簡化維護:降低程式碼複雜度與設定錯誤的機率。
- 彈性覆寫:請求層級備援設定具有優先權,可為特定情境覆寫全域設定。
請求層級備援設定
對於特定業務情境,您可以在個別請求上指定備援模型以覆寫全域設定。
使用 router.fallBackModels 參數指定備援模型:
{
"model": "claude-sonnet-4",
"messages": [
{
"role": "user",
"content": "Explain what quantum computing is"
}
],
"router": {
"fallBackModels": ["glm-5.2"]
}
}優先權規則
當存在多個備援設定時,優先權從高到低為:
- 請求層級
router.fallBackModels:在個別請求上指定的備援模型。 - 全域預設備援模型:在控制台設定的全域備援模型。
- 無備援:若兩者皆未設定,請求失敗時回傳錯誤。
- 若所有備援模型都失敗,系統會回傳最後嘗試模型的失敗原因。
- 發生備援時,回應會指出實際使用的模型,便於監控與分析。
帳號管理
依帳號類型而定,控制台可能包含帳號層級模型啟用、經銷商或分銷商控制、帳單設定與存取設定。管理員可使用這些控制,使模型存取、使用量可見性與帳單責任與應用、客戶帳號或業務單位一致。
生產營運檢查清單
| 項目 | 建議 |
|---|---|
| API 密鑰 | 使用具有清晰標籤的專用生產密鑰。 |
| 模型 | 確認模型可用性、定價、上下文長度與所需能力。 |
| 路由 | 為關鍵工作負載設定路由別名或備援策略。 |
| 日誌 | 確保請求 ID 被擷取到應用日誌中。 |
| 帳單 | 確認錢包餘額、方案狀態與積分扣費規則。 |
| 速率限制 | 檢視帳號層級 RPM、TPM、併發與媒體任務限制。 |
| 警示 | 監控使用量成長、積分餘額、錯誤與提供商可用性。 |
帳單與積分
BasicRouter 在文字、圖像、影片與其他支援的模型工作負載中使用基於積分的計費模型。積分為多模型與多提供商使用量提供統一單位,讓團隊能跨模態與 API 家族一致地管理消耗。
詳細的模型定價可在模型頁面或透過模型中繼資料 API 取得。定價可能因模型、提供商、模態、解析度、token 類型、輸出長度、任務時長、帳號類型與商業協議而異。
儲值與錢包
帳號可新增按量付費錢包積分以獲得彈性使用量。除非帳號套用了自訂帳單規則,否則錢包積分會在月費方案積分與資源包消耗完畢後使用。
除非適用的商業條款另有規定,錢包積分不會過期。儲值按量付費錢包時會收取服務費。
月費方案與資源包
每個使用者或帳號可選擇一個有效的月費方案。月費方案為計費週期提供定義的使用量容量、商業條款與帳號層級存取設定。
使用者也可購買多個資源包以獲得額外使用量容量。資源包可將承諾使用量與按量付費錢包餘額分開,適用於大量文字、圖像、影片或專用工作負載使用量。
扣費順序
除非設定了自訂帳單規則,否則積分按以下順序扣費:
| 優先順序 | 積分來源 | 說明 |
|---|---|---|
| 1 | 月費方案 | 包含的月度使用量容量最先消耗。 |
| 2 | 資源包 | 額外購買的包在月費方案積分之後消耗。 |
| 3 | 按量付費錢包 | 錢包餘額在方案與資源包積分之後消耗。 |
對於具有自訂商業條款的帳號,扣費順序、過期規則、包含的使用量與定價可能不同。帳號專屬規則會顯示在控制台或透過商業協議提供。
自訂定價
可為每個使用者或帳號自訂定價。企業客戶、經銷商帳號、分銷商帳號與高用量客戶可能符合自訂定價資格。請聯繫業務團隊取得報價。
自訂定價可依帳號、模型、提供商、模態、地區、使用量或商業協議設定。啟用自訂定價時,控制台與帳單 API 會在可用時反映帳號專屬定價與扣費規則。
定價單位
不同模型模態使用不同的計量單位。BasicRouter 依據模型的定價規則將這些單位轉換為積分。
| 模態 | 常見計價基礎 |
|---|---|
| 文字 | 輸入 token、輸出 token、快取讀取 token、快取寫入 token、推理 token 或模型專屬 token 類別。 |
| 圖像 | 模型、解析度、生成圖像數量、輸入圖像使用量、編輯模式或品質設定。 |
| 影片 | 模型、輸出解析度、生成秒數、寬高比、輸入圖像或影片使用量與任務類型。 |
| 嵌入 | 輸入 token 或嵌入記錄數量。 |
| 音訊 | 輸入時長、輸出時長、轉錄長度或模型專屬音訊單位。 |
定價單位可能因模型而異。在生產環境中啟用模型前,請務必參考模型詳情頁或定價中繼資料。
使用量歸因
BasicRouter 使用量可依帳號、API 密鑰、模型、模態或時間範圍檢視。這讓團隊能將成本歸因於應用、環境、客戶或內部業務單位。
| 維度 | 說明 |
|---|---|
| API 密鑰 | 依應用、服務或環境分組使用量。 |
| 模型 | 依選定模型比較成本與量。 |
| 解析後模型 | 檢視路由或備援後實際使用的模型。 |
| 模態 | 區分文字、圖像、影片、嵌入與音訊使用量。 |
| 時間範圍 | 檢視每日、每月或自訂報告週期。 |
| 中繼資料 | 依自訂請求中繼資料(如客戶 ID、租戶 ID、使用者 ID 或環境)分組使用量。 |
積分餘額
查看您帳號中可用的積分數量。餘額分為三個按順序扣費的錢包:月費方案積分、購買的資源包與按量付費錢包。另提供合併資源總額(月費方案 + 資源包,不含按量付費),以便將包含使用量與儲值支出分開追蹤。
若要以程式方式取得此資訊,請參見 API 參考中的 GET /v1/billing/balance。
使用量詳情
檢視個別使用量記錄的分頁時間序列清單,用於報告、監控與內部成本分攤。每筆記錄顯示模型、模型類型(文字、圖像或影片)、扣減的積分,以及每筆扣費從哪個錢包提取的明細。結果可篩選至特定時間範圍。
若要以程式方式取得此資訊,請參見 API 參考中的 GET /v1/usage。
交易紀錄
使用交易紀錄檢視積分變動,包含儲值、方案分配、資源包授予、使用量扣費、調整與管理修正。
若要以程式方式取得此資訊,請參見 API 參考中的 GET /v1/billing/transactions。
失敗請求與退款
驗證錯誤、身分驗證錯誤與權限錯誤通常不予計費,因為未發生模型執行。到達上游模型或產生部分輸出的請求可能會消耗積分,視模型、提供商與回應狀態而定。
對於非同步圖像與影片任務,計費行為取決於任務是否已被接受、啟動、完成、失敗或取消。任務詳情回應在已消耗積分時包含使用量資訊。
儲值、月費方案、資源包與已消耗積分不可退費,除非適用的商業協議另有規定或法律要求。
營運
錯誤
BasicRouter 回傳穩定的錯誤代碼,方便應用程式一致地處理重試、後援、帳務問題與除錯。
相容供應商的端點會盡可能保留原始 API 家族的錯誤結構。BasicRouter 原生端點使用 BasicRouter 錯誤物件。
HTTP 狀態與錯誤代碼對應
| HTTP 狀態 | 錯誤類型 | 範例代碼 | 重試 |
|---|---|---|---|
| 400 | invalid_request_error | invalid_request, unsupported_parameter, invalid_messages, invalid_image_url | 否 |
| 401 | authentication_error | missing_api_key, invalid_api_key | 否 |
| 402 | billing_error | insufficient_credits, payment_required, quota_exceeded | 否 |
| 403 | permission_error | model_access_denied, endpoint_access_denied, key_scope_denied | 否 |
| 404 | not_found_error | model_not_found, response_not_found, task_not_found | 否 |
| 408 | timeout_error | gateway_timeout, provider_timeout | 是 |
| 409 | conflict_error | idempotency_conflict, task_already_cancelled | 視情況 |
| 422 | validation_error | schema_validation_failed, unsupported_modality | 否 |
| 429 | rate_limit_error | account_rpm_exceeded, account_tpm_exceeded, provider_rate_limited | 是 |
| 500 | internal_error | internal_error | 是 |
| 502 | provider_error | provider_bad_gateway, provider_invalid_response | 是 |
| 503 | service_unavailable | model_unavailable, provider_unavailable, insufficient_capacity | 是 |
| 504 | timeout_error | provider_timeout, gateway_timeout | 是 |
常見錯誤代碼
| 代碼 | 含義 | 建議操作 |
|---|---|---|
missing_api_key | 未提供 API 金鑰。 | 加上 Authorization 標頭。 |
invalid_api_key | API 金鑰無效或已撤銷。 | 建立或輪替 API 金鑰。 |
model_not_found | 模型 ID 不存在或未為該帳戶啟用。 | 檢查模型頁面或呼叫 GET /v1/models。 |
model_access_denied | API 金鑰或帳戶沒有該模型的存取權限。 | 啟用模型或聯繫管理員。 |
unsupported_parameter | 請求包含所選端點或模型不支援的參數。 | 移除該參數或改用相容的模型。 |
unsupported_modality | 所選模型不支援該輸入或輸出模態。 | 改用支援該模態的模型。 |
account_rpm_exceeded | 超過帳戶每分鐘請求數上限。 | 退避重試或申請提高上限。 |
account_tpm_exceeded | 超過帳戶每分鐘 token 數上限。 | 退避重試、減少 token 數,或申請提高上限。 |
provider_rate_limited | 上游供應商對請求進行限流。 | 重試或啟用後援。 |
insufficient_credits | 帳戶積分不足。 | 錢包儲值、購買資源包,或升級方案。 |
provider_timeout | 上游供應商未及時回應。 | 重試或啟用後援。 |
model_unavailable | 模型暫時不可用。 | 重試或使用路由別名。 |
content_policy_error | 請求或輸出被安全策略攔截。 | 修改輸入或改用合適的工作流程。 |
