LLM Gateway

後端狀態

全域模型衝突

Backends

名稱類型Base URLModels優先級 檢查間隔已啟用操作

對外可見 Models

ModelContext能力Backend狀態分流能力設定

Aliases

新增 Alias

Alias目標 Model綁定 Backend操作

API Keys

名稱Prefix允許 Models已啟用 建立時間最後使用請求數操作

API 接入資訊

以下連接資訊可直接複製派發畀 API 用戶,配合「API Keys」分頁建立的 key 使用。

OpenAI 相容 Base URL

https://llm.chatpilot.hk/v1
適用 OpenAI SDK 及任何 OpenAI 相容工具(chat completions、embeddings、models)。

Anthropic 相容 Base URL

https://llm.chatpilot.hk
適用 Anthropic SDK / Claude Code;messages 端點為 /v1/messages。

認證(Authentication)

Authorization: Bearer gw-xxxx
OpenAI 相容端點用 Authorization: Bearer header。
x-api-key: gw-xxxx
anthropic-version: 2023-06-01
Anthropic 端點用 x-api-key header,建議同時帶 anthropic-version: 2023-06-01。API key 喺「API Keys」分頁建立,明文只顯示一次。

端點

方法端點說明
GET /v1/models 列出可用 model(含 max_model_len 同 capabilities)
POST /v1/chat/completions OpenAI Chat Completions(支援 stream SSE)
POST /v1/embeddings OpenAI Embeddings
POST /v1/messages Anthropic Messages 格式(支援 stream SSE)

可用 Model 清單

以下係對外 /v1/models 實際回應嘅 model(已套用白名單);harness 要人手填 model 名就直接喺度複製。

載入中…

代碼範例

將 MODEL-NAME 換成任何對外 model 名(可用 /v1/models 查詢);gw-你的key 換成 API Keys 分頁建立的 key。

curl — chat(非串流)

curl https://llm.chatpilot.hk/v1/chat/completions \
  -H "Authorization: Bearer gw-你的key" \
  -H "Content-Type: application/json" \
  -d '{"model": "MODEL-NAME", "messages": [{"role": "user", "content": "Hello"}]}'

curl — chat(串流)

curl https://llm.chatpilot.hk/v1/chat/completions \
  -H "Authorization: Bearer gw-你的key" \
  -H "Content-Type: application/json" \
  -d '{"model": "MODEL-NAME", "messages": [{"role": "user", "content": "Hello"}], "stream": true}'

SSE 逐 chunk 回傳;Gateway 對上游 read timeout 無限,慢 prefill 唔會斷線。

Python(OpenAI SDK)

from openai import OpenAI
client = OpenAI(base_url="https://llm.chatpilot.hk/v1", api_key="gw-你的key")
resp = client.chat.completions.create(model="MODEL-NAME", messages=[{"role": "user", "content": "Hello"}])
print(resp.choices[0].message.content)

client.models.list() 會見到 max_model_len 同 capabilities 額外欄位。

Node.js(OpenAI SDK)

import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://llm.chatpilot.hk/v1", apiKey: "gw-你的key" });
const resp = await client.chat.completions.create({ model: "MODEL-NAME", messages: [{ role: "user", content: "Hello" }] });

Python(Anthropic SDK)

from anthropic import Anthropic
client = Anthropic(base_url="https://llm.chatpilot.hk", api_key="gw-你的key")
msg = client.messages.create(model="MODEL-NAME", max_tokens=1024, messages=[{"role": "user", "content": "Hello"}])

Claude Code 環境變數

export ANTHROPIC_BASE_URL=https://llm.chatpilot.hk
export ANTHROPIC_AUTH_TOKEN=gw-你的key

curl — Anthropic /v1/messages

curl https://llm.chatpilot.hk/v1/messages \
  -H "x-api-key: gw-你的key" \
  -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{"model": "MODEL-NAME", "max_tokens": 1024, "messages": [{"role": "user", "content": "Hello"}]}'

使用注意

  • 每條 API key 可以限定可用 model;用量喺「用量」分頁按 key/model 統計。
  • /v1/models 額外欄位:max_model_len(context size)、capabilities.vision / capabilities.reasoning(true/false/null)。
  • 建議 client 將 read timeout 設長(或者無限):本機 inference 慢 prefill 時 Gateway 唔會主動斷線,client 都唔應該斷。
  • 錯誤格式:OpenAI 端點跟 OpenAI error JSON;/v1/messages 跟 Anthropic error JSON。

用量統計

每日請求量

Per Key

Key請求數平均延遲 (ms)Prompt TokensCompletion Tokens

Per Model

Model請求數平均延遲 (ms)Prompt TokensCompletion Tokens

異常請求監察

按 Key × Model 分行偵測行緊 loop/失控嘅 client(同一條 key 可以既有正嘢 agent 又有一個怪 loop 打緊另一個 model):爆量=10 分鐘內 ≥30 個請求;不停loop=過去 2 小時 ≥10 個 10 分鐘窗口有請求兼總數 ≥60。邊個 model 「唔應該有 traffic」由你判斷。

API KeyModel10分鐘1小時24小時活躍窗口 / 12狀態

登入封禁

被封禁 IP 列表

IP原因封禁至開始時間操作