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


從一行測試開始
在修改應用程式之前,先將客戶端排除在外。一個 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 測試以區分這兩個問題。
五分鐘內可執行的檢查清單
- 執行 curl 測試並記錄狀態碼。
- 建立一個新的金鑰並測試。如果新金鑰有效,舊金鑰可能是複製錯誤或已撤銷。
- 檢查餘額和額度的任何過期日期。
- 將 Base URL 和模型 ID 與供應商的文件逐字比較。
- 發送一個沒有串流、沒有工具且提示詞短的請求。逐一添加功能。
- 檢查並行呼叫。如果你的應用程式同時發送多個請求,請降低並行度。
- 嘗試另一個網路或關閉 VPN。
- 查看回應標頭,包括任何請求 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。這就是整個設定過程。