常見問題
故障排查
按症狀排查認證、模型、串流、任務和限流問題。
先從症狀開始,再依修正方式處理。多數失敗來自 base URL、key、模型 ID 或餘額。
症狀對照表
| 症狀 | 可能原因 | 修正 |
|---|---|---|
401 UNAUTHORIZED | Key 缺少、錯誤、已撤銷,或未送出 | 送出 Authorization: Bearer $FELO_API_KEY;若已撤銷請建立新 key |
402 INSUFFICIENT_CREDITS | 餘額不足以支付呼叫 | 在 Console Billing 儲值 |
| 每個請求都回 404 | Base URL 包含了 endpoint 已自帶的路徑 | OpenAI 用戶端用 https://openapi.felo.ai/api/v1,Anthropic 用戶端用 https://openapi.felo.ai/api |
| 單一模型回 404 | 模型 ID 未公開,或該 endpoint 不提供此模型 | 在模型頁面與 endpoint 文件確認模型 ID |
400 model 或 max_tokens 錯誤 | 缺少必填欄位,或模型不接受該請求形狀 | Messages 請加上 max_tokens;移除不支援的欄位 |
| 429 | 限流,或上游供應商限制 | 讀取 Retry-After;參閱錯誤、限流與重試 |
| 5xx | 上游或服務故障 | 以退避方式重試;持續發生請附上 request_id |
| 串流連上但沒有內容 | 代理正在緩衝回應,或事件解析器預期錯誤格式 | 增量讀取串流;在代理中關閉回應緩衝 |
| 任務永遠不結束 | 輪詢錯 endpoint,或未處理終態 | 輪詢任務自己的狀態 endpoint,並在終態時停止 |
| 工具呼叫被忽略 | 模型未宣告該能力 | 檢查目錄中的 supported_parameters |
| Data API 回傳 404 | /v1/beta 前綴被加了兩次 | 完全照參考文件中的路徑使用 |
認證
已撤銷的 key 會回傳指名 key 前綴的訊息:
{
"status": 401,
"code": "UNAUTHORIZED",
"message": "API Key has been revoked (keyPrefix=...)"
}檢查清單:
- Model API 與 Felo APIs 的標頭是
Authorization: Bearer <key>。 - Data API 也接受
X-API-Key: <key>。 - Key 沒有被引號包住,複製環境變數時也沒有殘留換行。
- 部署環境確實設定了該變數;本機可用的 key 可能在正式環境中不存在。
- Key 未被刪除或輪替。已刪除或輪替的 key 無法再次顯示;請建立新的。
建立 key 與相關限制請參閱認證。
Base URL 陷阱
| 用戶端 | 正確的 base URL |
|---|---|
| OpenAI SDK | https://openapi.felo.ai/api/v1 |
| Anthropic SDK | https://openapi.felo.ai/api |
| 直接呼叫模型 endpoint | https://openapi.felo.ai/api/v1/chat/completions、/responses 或 /messages |
| Data API | https://openapi.felo.ai/v1/beta |
Felo /v2 APIs | https://openapi.felo.ai/v2 |
兩個常見錯誤:
- 在 SDK 已會延伸的 base URL 後面又加上
/chat/completions。 - 把 Anthropic base URL 設成
https://openapi.felo.ai/api/v1。SDK 會接上/v1/messages,請求就變成/api/v1/v1/messages。
模型 ID 問題
模型 ID 是目錄中的公開 ID,不是上游供應商的內部名稱或顯示名稱。
- 在模型頁面或
GET /api/v1/models查詢 ID。 - 確認模型支援你要呼叫的協議(
supported_protocols)。 - 若你固定了通道,請確認該通道對這個模型已公布且可執行。不可用的通道不是 fallback。
請參閱通道與供應商路由。
串流問題
- 在請求內容中設定
stream: true,不要當成 query 參數。 - 以串流方式讀取回應內容。等待完整回應會讓串流失去意義。
- 部分代理與 serverless 平台會緩衝回應。請對代理該請求的路由關閉緩衝。
- Chat Completions 串流的是
choices[0].delta,不是choices[0].message。最終內容會分散在許多 chunks 中送達。 - 連線中斷時,串流可能沒有乾淨的終止事件。請把斷線視為不完整的回應。
非同步任務問題
- 輪詢屬於該任務家族的狀態 endpoint。Felo 工作流程使用
GET /v2/tasks/{task_id}/status;模型的影片與圖像任務使用各自的生成 endpoint。 - 在每個終態停止,包括失敗與過期,不只是成功。
- 影片與圖像 callback 目前會被忽略。不要等待 webhook。
- 結果 URL 可能很短命。下載過期時,向狀態 endpoint 要求新的 URL。
- 重新提交前先檢查任務。對執行中的任務重新提交會產生重複任務,兩者都會計費。
請參閱非同步任務。
Data API 問題
- 保留 Data API 參考 中的確切 method 路徑。
- 請求內容依供應商而異。對某個供應商有效的欄位,不保證對另一個有效。
- 供應商錯誤可能出現在 4xx 回應中,並帶有供應商專屬訊息。請記錄
request_id與回應內容。
安全提醒
- 絕不要把 API key 放進瀏覽器程式碼、行動 App 打包檔或公開儲存庫。請留在伺服器上並代理請求。
- 不要記錄完整 key。需要辨識時記錄前綴即可。
- 若懷疑 key 已外洩,請立即輪替。
聯絡支援前
請收集:
- Endpoint 與 HTTP method。
- HTTP 狀態、
code與request_id。 - 模型 ID 或任務 ID。
- 含時區的時間戳。
- 移除機密後的最小請求內容。
連同帳號 email 寄給支援。不要附上完整的 API key。