简 | 繁 | EN
简 | 繁 | EN
简 | 繁 | EN
简 | 繁 | EN
简 | 繁 | EN
简 | 繁 | EN
简 | 繁 | EN
简 | 繁 | EN
简 | 繁 | EN

接入文件

渡口API 提供 OpenAI 相容的 HTTP 介面,現有程式碼通常只需替換 Base URL 與 API Key 即可接入。

Base URL

https://dukouapi.com

完整端點:

用途方法路徑
對話補全POST/v1/chat/completions
模型列表GET/v1/models
用量查詢GET/api/user/self
如果你用的是官方 OpenAI SDK,直接設 base_url = "https://dukouapi.com/v1" 即可,不要再手動拼 /v1。

鑑權

在控制檯「API 金鑰」頁建立金鑰,然後放進請求頭:

Authorization: Bearer sk-xxxxxxxxxxxxxxxx
  • 金鑰繫結分組,不同分組可用的模型和單價不同
  • 金鑰可以設定額度上限、過期時間與模型白名單
  • 不要把金鑰寫進前端程式碼或公開倉庫

第一次呼叫

建立金鑰後,用下面任意一種方式發出第一個請求。新註冊賬戶自帶體驗額度,可以直接開始測試。

cURL

curl https://dukouapi.com/v1/chat/completions \
  -H "Authorization: Bearer sk-xxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "deepseek-v4.1-flash",
    "messages": [{"role": "user", "content": "你好"}],
    "max_tokens": 300
  }'

Python(openai SDK)

from openai import OpenAI

client = OpenAI(
    api_key="sk-xxxxxxxxxxxxxxxx",
    base_url="https://dukouapi.com/v1",
)

resp = client.chat.completions.create(
    model="deepseek-v4.1-flash",
    messages=[{"role": "user", "content": "你好"}],
    max_tokens=300,
)
print(resp.choices[0].message.content)

已經裝了 openai 的話只需要改兩個引數:base_url 和 api_key。

Node.js

import OpenAI from "openai";

const client = new OpenAI({
  apiKey: "sk-xxxxxxxxxxxxxxxx",
  baseURL: "https://dukouapi.com/v1",
});

const resp = await client.chat.completions.create({
  model: "deepseek-v4.1-flash",
  messages: [{ role: "user", content: "你好" }],
  max_tokens: 300,
});
console.log(resp.choices[0].message.content);

流式輸出

加上 "stream": true 即返回 SSE:

stream = client.chat.completions.create(
    model="deepseek-v4.1-flash",
    messages=[{"role": "user", "content": "講個短故事"}],
    stream=True,
)
for chunk in stream:
    if chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="")
注意 max_tokens:部分模型(如 deepseek-v4.1-flash)會先進行內部推理。若 max_tokens 設得過小(例如 50),推理可能就把額度用光,導致返回內容為空。建議至少設為 256,長回答設 1000 以上。

Anthropic 協議

除 OpenAI 協議外,本站同時相容 Anthropic 的 Messages API,Claude 官方 SDK 可直接接入:

import anthropic

client = anthropic.Anthropic(
    api_key="sk-xxxxxxxxxxxxxxxx",
    base_url="https://dukouapi.com",
)

msg = client.messages.create(
    model="claude-fable-5",
    max_tokens=300,
    messages=[{"role": "user", "content": "你好"}],
)
print(msg.content[0].text)

端點:POST /v1/messages,鑑權頭同時接受 x-api-key 與 Authorization: Bearer。

模型與價格

可用模型取決於你金鑰所屬的分組。完整清單、各分組的倍率與實時單價見:

→ 模型廣場

呼叫 GET /v1/models 也可以列出當前金鑰可用的全部模型。

計費說明

計費方式
按 token 實際用量扣費,無月費、無最低消費
價格單位
元 / 百萬 token(輸入與輸出分別計價)
餘額
預付制。餘額不足時請求會被拒絕(錯誤碼 403)
用量明細
控制檯「日誌」頁可檢視每次請求的模型、token 數與扣費額

部分模型有分時定價:在非高峰時段單價會自動下調,此時按低價結算,頁面上顯示的是區間價。

實際扣費公式:
扣費 = (輸入token × 輸入單價 + 輸出token × 輸出單價) ÷ 1,000,000 × 分組倍率
你可以在日誌裡核對每一筆的明細。

錯誤碼

狀態碼含義處理方式
401金鑰無效或已刪除檢查金鑰是否複製完整
403餘額不足 / 模型不在該分組充值,或換用分組內的模型
429請求過於頻繁降低併發,或稍後重試
500 / 502上游異常稍後重試;持續出現請反饋
503當前分組無可用渠道換用其他模型,或聯絡支援

常見問題

返回內容為空,但呼叫是 200?

多數情況是 max_tokens 太小。部分模型會先做內部推理,推理 token 也計入 max_tokens。把它調到 256 以上通常即可解決。

提示「No available channel for model X under group Y」?

你金鑰所在的分組裡沒有支援該模型的渠道。在控制檯檢視該分組支援的模型,或另建一個其他分組的金鑰。

可以同時用 OpenAI 和 Anthropic 的 SDK 嗎?

可以。同一把金鑰既能調 /v1/chat/completions,也能調 /v1/messages,計費一致。

餘額怎麼查?

控制檯首頁顯示當前餘額與已用量;GET /api/user/self 也能讀取(需要同一把金鑰)。

怎麼充值?

控制檯「錢包」頁。支援銀行卡支付,按實時匯率折算。

響應慢或超時?

不同分組的通道穩定性和速度不同(價格也不同)。如果對延遲敏感,可以換用穩定通道對應的分組。