跳至主要內容

認證與 API 金鑰

以 Bearer token 認證,並在 Dashboard 管理金鑰的花費上限與模型白名單。

認證與 API 金鑰

所有請求都必須帶上 Authorization 標頭,使用 Bearer token:

Authorization: Bearer sk-inf-xxxxxxxxxxxxxxxxxxxxxxxx

金鑰一律以 sk-inf- 開頭。缺少標頭會得到 401 unauthorized;金鑰不存在或格式錯誤會得到 401 invalid_api_key;金鑰被停用會得到 403 api_key_disabled。

金鑰管理

在 Dashboard 的 API Keys 頁面,你可以:

動作說明
建立金鑰完整金鑰只顯示一次,之後只看得到前綴與後四碼。
停用/啟用停用後立即失效,後續請求回傳 api_key_disabled。
刪除金鑰永久移除,無法復原。
每月花費上限以美元計。當月累計成本達上限後回傳 spend_limit_reached,次月自動重置。
模型白名單限制此金鑰可用的模型。呼叫名單外的模型回傳 model_not_allowed。
用量檢視每把金鑰的請求數、token 數與成本。

建議依用途分開建立金鑰(例如 production、staging、local-dev),這樣可以獨立設定上限,出事時也能單獨停用。

使用範例

curl

curl https://api.alphacurve.io/v1/models \
  -H "Authorization: Bearer $INFERENCE_API_KEY"

Python

import os
from openai import OpenAI

client = OpenAI(
    base_url="https://api.alphacurve.io/v1",
    api_key=os.environ["INFERENCE_API_KEY"],
)

print([m.id for m in client.models.list().data])

Node / TypeScript

import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://api.alphacurve.io/v1",
  apiKey: process.env.INFERENCE_API_KEY!,
});

const models = await client.models.list();
console.log(models.data.map((m) => m.id));

驗證金鑰是否有效

最省成本的做法是打 GET /v1/models,它不消耗 token:

curl -i https://api.alphacurve.io/v1/models \
  -H "Authorization: Bearer sk-inf-does-not-exist"
HTTP/1.1 401 Unauthorized
Content-Type: application/json

{
  "error": {
    "code": "invalid_api_key",
    "message": "The provided API key is invalid."
  }
}

安全建議

  • 只在伺服器端使用金鑰。 不要放進瀏覽器、行動 App 或任何前端 bundle——那等同公開發布。如果前端需要呼叫 LLM,請自建後端代理。
  • 不要提交進版本控制。 使用環境變數或祕密管理服務;把 .env 加進 .gitignore。
  • 設定花費上限。 對外部署的金鑰務必設上限,這是金鑰外洩時的最後一道防線。
  • 定期輪替。 建立新金鑰、部署、確認流量轉移後再停用舊金鑰,可做到零停機輪替。
  • 金鑰外洩時立即停用。 停用是即時生效的。