後端狀態
全域模型衝突
Backends
| 名稱 | 類型 | Base URL | Models | 優先級 | 檢查間隔 | 已啟用 | 操作 |
|---|
對外可見 Models
| Model | Context | 能力 | 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 Tokens | Completion Tokens |
|---|
Per Model
| Model | 請求數 | 平均延遲 (ms) | Prompt Tokens | Completion Tokens |
|---|
異常請求監察
按 Key × Model 分行偵測行緊 loop/失控嘅 client(同一條 key 可以既有正嘢 agent 又有一個怪 loop 打緊另一個 model):爆量=10 分鐘內 ≥30 個請求;不停loop=過去 2 小時 ≥10 個 10 分鐘窗口有請求兼總數 ≥60。邊個 model 「唔應該有 traffic」由你判斷。
| API Key | Model | 10分鐘 | 1小時 | 24小時 | 活躍窗口 / 12 | 狀態 |
|---|
登入封禁
被封禁 IP 列表
| IP | 原因 | 封禁至 | 開始時間 | 操作 |
|---|