你需要的三個值
每個與 OpenAI 相容的用戶端都需要相同的三個值。以下是此服務的相關資訊。
| 設定 | 值 |
|---|---|
| Base URL | https://api.getcodexapi.com/v1 |
| API 金鑰 | 來自 API 金鑰頁面 的金鑰 |
| 模型 | uncensored |
金鑰以 Authorization: Bearer YOUR_KEY 傳送。您可以呼叫的兩個端點是 POST /v1/chat/completions 和 GET /v1/models。這是一個獨立服務,運行一個開放權重模型,並非 OpenAI 的 Codex,因此不要將 OpenAI 自己的端點或 OpenAI 金鑰貼到相同的設定中。
使用 curl 檢查連線
在你編輯任何應用程式設定之前,請先確認金鑰和 URL 在終端機中能正常運作。列出模型是最便宜的檢查方式,因為它不需要提示詞:
curl https://api.getcodexapi.com/v1/models \
-H "Authorization: Bearer YOUR_API_KEY"
你應該會得到一個包含模型 uncensored 的 JSON 清單。然後發送一次實際的補全請求:
curl https://api.getcodexapi.com/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "Say hello in five words."}]
}'
如果兩個呼叫都運作正常,則後續失敗的問題出在你的用戶端設定,而非服務。回應標頭包含 X-Request-Id,若你需要追蹤特定呼叫,保留此標頭很有用;以及 X-Balance-USD,顯示你剩餘的額度。
Python 搭配 OpenAI SDK
官方的 openai 套件在用戶端建構子中接受 base URL。你的程式碼其他部分無需更改。
from openai import OpenAI
client = OpenAI(
base_url="https://api.getcodexapi.com/v1",
api_key="YOUR_API_KEY",
)
resp = client.chat.completions.create(
model="uncensored",
messages=[
{"role": "system", "content": "You are a concise assistant."},
{"role": "user", "content": "Explain what a base URL is in two sentences."},
],
)
print(resp.choices[0].message.content)
如果您希望將設定與程式碼分開,SDK 也會從環境中讀取 OPENAI_BASE_URL 和 OPENAI_API_KEY:
export OPENAI_BASE_URL="https://api.getcodexapi.com/v1"
export OPENAI_API_KEY="YOUR_API_KEY"
設定好這些值後,OpenAI() 無需參數即可讀取它們。這很方便,因為許多基於 SDK 的第三方工具會繼承相同的變數,無需任何程式碼變更。
Node.js
JavaScript SDK 使用相同的選項名稱,拼寫為 baseURL。
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.getcodexapi.com/v1",
apiKey: process.env.API_KEY,
});
const stream = await client.chat.completions.create({
model: "uncensored",
messages: [{ role: "user", content: "Write a haiku about version control." }],
stream: true,
});
for await (const chunk of stream) {
process.stdout.write(chunk.choices[0]?.delta?.content ?? "");
}
串流以伺服器傳送事件形式回傳,帶有 stream: true,用量資訊包含在結尾。請注意,串流請求會佔用一個並行請求槽位,直到串流結束;若你放棄串流但未關閉,它仍會計入限制。
具有設定畫面的應用程式
桌面工具和編輯器通常會以下列三種方式之一標記欄位:「Base URL」、「API Base」或「OpenAI-compatible endpoint」。它們都需要相同的字串。以下幾點注意事項可節省時間:
- 選擇 OpenAI 或「custom OpenAI-compatible」供應商類型,而非特定供應商的類型。
- 如果應用程式有自由文字方塊,請手動輸入模型名稱。
uncensored是確切的 ID。 - 如果應用程式有「測試連線」按鈕,它通常會呼叫模型清單,此 API 支援此功能。
- 某些應用程式會快取來自先前供應商的模型清單。如果下拉選單看起來不正確,請移除舊項目並新增新項目。
如需特定編輯器的工作範例,請參閱連線 Cursor 指南,或查看 coding API 頁面 以了解整體情況。完整參數參考請見 API 文件。
一旦連線成功,請將確切的值保存在您可以再次找到的地方:URL、模型名稱以及建立金鑰的日期。團隊經常在後來因配置副本仍包含舊值而浪費一小時。在儲存庫中使用單一共用範例檔案,並使用佔位符而非真實金鑰,可防止此情況發生。
常見錯誤與修復方法
URL 變成 /v1/v1
某些客戶端會自行附加 /v1。如果您的請求失敗且客戶端日誌顯示路徑為 /v1/v1/chat/completions,請從您輸入的 base URL 中刪除 /v1。反之亦然:未添加它的客戶端需要在您的設定中包含它。請求路徑的日誌可快速解決此問題。
您將完整的端點放入 base URL
base URL 以 /v1 結束。不要在該處輸入 /chat/completions。SDK 會為每次呼叫添加路徑。
尾隨斜線或主機中的打字錯誤
大多數 SDK 容忍尾隨斜線,但一些較舊的工具透過純字串串接建立路徑,導致出現雙斜線。如果您看到奇怪的 404 回應,請將其刪除。
金鑰錯誤,或使用了其他服務的金鑰
OpenAI 金鑰在此無法使用,而我們的金鑰在其他地方也無法使用。API 金鑰錯誤幾乎總是意味著複製貼上問題,例如遺漏字元或末尾有空格。
curl 有效,但您的應用程式無效
如果 curl 成功且應用程式使用相同的 URL 和金鑰失敗,差異在於環境。檢查應用程式是否在代理伺服器後面運行或在沒有外部訪問權限的容器中運行,是否讀取了來自其他專案的舊環境變數(如過時的 OPENAI_BASE_URL),以及設定檔是否覆蓋了您在程式碼中設定的值。在請求之前列印客戶端將呼叫的最終 URL,可在一分鐘內解決大多數此類情況。
HTTP 429
這表示已達到限制。錯誤代碼 rate_limited 代表每分鐘請求數,concurrency 代表同時請求過多。完整金鑰允許 8 個並行請求和每分鐘 300 個請求;試用金鑰允許 2 個和 60 個。在暫時過載時,你也會收到帶有 Retry-After: 5 標頭的 429 錯誤,因此請等待五秒後再試。
LangChain 並將 URL 保持在單一位置
基於 OpenAI 客戶端構建的框架接受相同的值。在 LangChain 的 OpenAI 整合中,參數名稱如下:
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(
model="uncensored",
base_url="https://api.getcodexapi.com/v1",
api_key="YOUR_API_KEY",
)
print(llm.invoke("Name three uses of a base URL.").content)
無論使用哪個框架,都不要將 URL 分散在程式碼中。將其放在一個環境變數或一個設定檔中,並從那裡讀取。這樣,在測試金鑰和生產金鑰之間切換,或在機器之間切換時,只需更改一行。這也能將金鑰保留在您的儲存庫之外:將金鑰存儲在環境變數或金鑰管理員中,切勿存儲在已提交的檔案中。
如果您正在尋找 OpenAI 其 Codex 產品的官方端點,這不是。它們的 base URL 和API 金鑰由 OpenAI 記錄,因此請遵循它們當前的文件。此頁面上的地址屬於獨立服務,僅接受在此發行的金鑰。
連接後可傳送的內容
端點支援串流輸出、函式呼叫(tools、tool_choice,結果以 role: "tool" 訊息回傳)以及透過 response_format: {"type": "json_object"} 的 JSON 模式。參數 temperature、top_p、stop、seed 和懲罰因子會直接傳遞。上下文視窗為 100,000 token,用於提示詞與補全合計,最大請求主體為 8 MB。
僅支援文字。不支援影像或語音生成、嵌入(embeddings)與微調(fine-tuning),因此依賴這些功能的用戶端功能在此 Base URL 下將無法運作。用量按 token 計費,輸入每 1M token 為 $0.15,輸出每 1M token 為 $0.50;定價頁面提供實際計算範例。
