繁中 ▾
取得 API 金鑰

更新於

DeepSeek API 金鑰無法運作:原因與解決方法

當出現「deepseek API 金鑰無法使用」的錯誤時,金鑰本身的問題通常沒有你想像的那麼多。大多數失敗來自 Base URL、餘額為零、模型名稱錯誤,或是客戶端將金鑰放在錯誤的位置。

金鑰被阻塞在管道中,備用管道繞過它,說明 API 金鑰故障排除
舞台插圖,懸浮的面具連接到伺服器,代表 SillyTavern 中透過 API 進行的角色扮演對話

從一行測試開始

在修改應用程式之前,先將客戶端排除在外。一個 curl 呼叫可以告訴你金鑰、URL 和模型名稱是否能一起運作。將佔位符替換為供應商儀表板和文件中的值。

curl -i https://YOUR-PROVIDER/v1/chat/completions \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"YOUR-MODEL","messages":[{"role":"user","content":"ping"}]}'

-i 旗標會列印狀態行和標頭,這比主體更重要。如果 curl 運作正常但應用程式不行,問題出在應用程式的設定。如果 curl 也失敗,問題出在金鑰、帳戶或端點。

先讀取狀態碼

狀態碼常見含義要檢查的內容
401金鑰被拒絕複製錯誤、額外空格、已撤銷或已刪除的金鑰、來自不同供應商的金鑰
402 或餘額訊息沒有剩餘額度帳戶餘額和帳單頁面
404路徑或模型錯誤Base URL、尾隨的 /v1、模型名稱拼寫
429請求過多每分鐘請求數、並行呼叫、重試標頭
5xx 或逾時供應商端或網路問題供應商狀態頁面、稍後重試、區域路由

這些是類 OpenAI 供應商常見的語意。每位供應商的文件都會記錄其確切的程式碼,因此請查閱他們當前的文件以取得詳細資訊。

金鑰本身

金鑰是長字串,它們會以枯燥的方式出錯。將金鑰貼到純文字編輯器中,檢查是否有尾隨空格或換行、開頭的引號,或是聊天應用程式加入的換行。確保標頭讀作 Authorization: Bearer KEY,且 Bearer 後有一個空格。如果你在環境變數中設定金鑰,請在應用程式中列印其長度(而非其值)以確認它已載入。

另外兩種常見情況。第一,你建立了金鑰、關閉頁面,並複製了遮蔽後的版本。大多數儀表板只會顯示一次金鑰,因此請建立新的金鑰。第二,你正在將一個服務的金鑰用於另一個服務的 URL。金鑰僅對發行該金鑰的供應商有效。

餘額、帳單和免費額度

許多 API 金鑰僅在帳戶有額度時有效。餘額不足可能看起來像是金鑰損壞。開啟供應商的帳單頁面,確認你有資金、儲值已實際清除,且任何推廣額度尚未過期。加密貨幣和信用卡儲值可能需要幾分鐘才能顯示。

如果你想比較其他預付服務如何處理此情況,我們的模型很簡單:你購買額度,呼叫會消耗額度,費率為每 1M 輸入 token $0.15 和每 1M 輸出 token $0.50,失敗或被拒絕的請求不會收費,且額度永不過期。你可以透過 GET /v1/balance 或每個回應中的 X-Balance-USD 標頭來讀取餘額。

Base URL 和模型名稱

在 SillyTavern、Janitor AI 和編輯器外掛等工具中,最常見的原因是 Base URL 輸入有誤。常見錯誤:缺少 /v1、重複的 /v1/v1、使用 http 而非 https,或將完整路徑 /chat/completions 貼入已自動添加該路徑的欄位。模型欄位是另一個陷阱。它必須與供應商列出的模型 ID 匹配。如果供應商支援,請使用 GET /v1/models 列出它們,或閱讀當前文件。

特定工具的設定指南位於此網站:在 SillyTavern 中使用金鑰、在 Janitor AI 中 和 在 VS Code 中。

速率限制與並行請求

並行請求的爆發可能會觸發 429,即使金鑰有效也是如此。尋找 Retry-After 標頭並退避。Python 中的最小重試如下所示:

import time
from openai import OpenAI, RateLimitError

client = OpenAI(base_url="https://api.deepseekapikey.com/v1", api_key="YOUR_KEY")

def ask(prompt):
    for attempt in range(4):
        try:
            r = client.chat.completions.create(
                model="uncensored",
                messages=[{"role": "user", "content": prompt}],
            )
            return r.choices[0].message.content
        except RateLimitError:
            time.sleep(5 * (attempt + 1))
    raise RuntimeError("still rate limited")

在我們的端點上,完整金鑰允許 8 個並行請求和每分鐘 300 個請求。串流請求會佔用其連線槽位直到串流結束。錯誤代碼為 rate_limited 或 concurrency,暫時過載會返回 429 並帶有 Retry-After: 5。

網路和區域問題

如果 curl 掛起或重置,問題可能出在你和供應商之間:企業代理、VPN、DNS 或區域封鎖。嘗試不同的網路,檢查代理是否傳遞 Authorization 標頭,並為長生成提高客戶端逾時。串流回應也可能被緩衝的代理截斷;使用 stream: false 測試以區分這兩個問題。

五分鐘內可執行的檢查清單

  1. 執行 curl 測試並記錄狀態碼。
  2. 建立一個新的金鑰並測試。如果新金鑰有效,舊金鑰可能是複製錯誤或已撤銷。
  3. 檢查餘額和額度的任何過期日期。
  4. 將 Base URL 和模型 ID 與供應商的文件逐字比較。
  5. 發送一個沒有串流、沒有工具且提示詞短的請求。逐一添加功能。
  6. 檢查並行呼叫。如果你的應用程式同時發送多個請求,請降低並行度。
  7. 嘗試另一個網路或關閉 VPN。
  8. 查看回應標頭,包括任何請求 ID。支援團隊可以從該 ID 找到你的呼叫。

第五步發現了驚人數量的錯誤。稍微無效的工具定義、非常大的 max_tokens 值,或超過大小限制的請求主體都可能返回看起來像金鑰問題的錯誤。在我們的端點上,請求主體限制為 8 MB,每個回應都帶有 X-Request-Id 標頭,你可以引用它來獲得支援。

設定備用端點

任何供應商都可能發生停機或達到限制,因此請在設定檔中保留第二個 OpenAI 相容的端點。我們提供的是託管的開放權重模型,針對合法成人用途進行微調,可無內容審查地回答問題。這並非 DeepSeek 的官方 API,也不是路由服務,因此預期會有不同的回答與行為。切換只需修改兩個設定:base URL https://api.deepseekapikey.com/v1 與模型 uncensored。

curl https://api.deepseekapikey.com/v1/chat/completions \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"uncensored","messages":[{"role":"user","content":"ping"}]}'

新用戶可以在 API 金鑰頁面 上一鍵領取 $0.50 的試用額度,有效期為 7 天。儲值金額從 $20 到 $500 不等,可透過加密貨幣進行;請參閱 定價頁面 和 文件 以取得詳細資訊。

問答

為什麼我的金鑰在 curl 中能運作,但在應用程式中卻不行?

應用程式可能設定了錯誤的 base URL、錯誤的模型名稱,或是金鑰的舊副本。請將其設定與能正常運作的 curl 呼叫逐字比對。

有效的金鑰是否保證請求一定會成功?

不會。餘額不足、速率限制或未知的模型名稱,即使金鑰完全正確也可能導致請求失敗。

我能否將相同的程式碼用於其他供應商?

如果兩者都相容於 OpenAI,則可以。只需更改 base URL、金鑰與模型 ID 即可。

你們的端點使用的是與 DeepSeek 相同的模型嗎?

不是。這是由獨立供應商運營的開放權重模型,並非任何廠商的官方 API。

只差一張表單,即可取得金鑰

建立帳號、複製金鑰、更改 base URL。這就是整個設定過程。

取得 API 金鑰