繁中 ▾
取得 API 金鑰

VS Code LLM API:將編輯器連接到你自己的金鑰

你可以透過提供擴充功能三個值,將 VS Code 指向任何 OpenAI 相容的端點:base URL、API 金鑰和模型 ID。本頁顯示這些值的位置以及如何先進行測試。

更新於

抽象的程式碼編輯器透過電纜連接到發光的伺服器立方體,代表 VS Code LLM API 連線

重點摘要

  • 在調整編輯器之前,先用 curl 測試金鑰,這樣你就知道是哪一邊出了問題。
  • Continue 和 Cline 等擴充功能需要相同的三個值:base URL、金鑰、模型 ID。
  • 使用模型 ID uncensored 與基礎 URL https://api.codingllmapi.com/v1
  • API 僅提供聊天完成服務,因此需要單獨完成端點的功能可能無法運作。

開始前你需要準備的

VS Code LLM API設定沒有魔法。VS Code 本身不會與語言模型通訊。擴充功能會,且該擴充功能需要知道請求要送到哪裡以及如何識別你。任何支援自訂 OpenAI 相容供應商的擴充功能都可以使用此服務。

先收集這三個值。

  • Base URL: https://api.codingllmapi.com/v1
  • 模型 ID: uncensored
  • API 金鑰: 在 API 金鑰頁面 建立。註冊後,你可以一鍵領取 $0.50 的免費試用額度,有效期 7 天且無需信用卡。

金鑰會以 Authorization: Bearer <key> 的形式放入請求中。一旦你將金鑰貼到擴充功能的設定中,擴充功能就會自動新增該標頭。

步驟 1:在編輯器外部測試金鑰

在擴充功能中除錯比在終端機中慢。在 VS Code 中開啟終端機(Windows 和 Linux 使用 Ctrl+`,macOS 使用 Cmd+`),將金鑰儲存為環境變數,然後執行兩次呼叫。第一次列出模型。第二次發送一個小型聊天請求。

export LLM_API_KEY="paste-your-key-here"

curl -s https://api.codingllmapi.com/v1/models \
  -H "Authorization: Bearer $LLM_API_KEY"

curl -s https://api.codingllmapi.com/v1/chat/completions \
  -H "Authorization: Bearer $LLM_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"uncensored","messages":[{"role":"user","content":"Reply with the word ready."}],"max_tokens":10}'

如果第二次呼叫返回包含訊息的 JSON,表示金鑰、URL 和模型 ID 都正確。之後出現的任何問題都是擴充功能的設定問題,而不是你的帳戶問題。如果你在此處收到身份驗證錯誤,請檢查你是否複製了完整的金鑰,以及是否有殘留的引號或空白。

步驟 2:設定擴充功能

擴充功能設定會隨版本變更,因此請將下方的欄位名稱視為指南,如果標籤不同,請檢查擴充功能本身的文件。這三個值始終相同。

Continue

Continue 是適用於 VS Code 和 JetBrains 的開源助手。它會從你的主目錄讀取設定檔。較新版本使用 YAML 檔案,較舊版本使用 config.json。模型條目在兩種格式中都包含相同的欄位。JSON 格式如下所示:

{
  "models": [
    {
      "title": "Uncensored",
      "provider": "openai",
      "model": "uncensored",
      "apiBase": "https://api.codingllmapi.com/v1",
      "apiKey": "paste-your-key-here"
    }
  ]
}

由於線路格式為 OpenAI 格式,因此供應者為 openai。僅有 apiBase 會指示 Continue 連接到不同的伺服器。儲存後重新載入視窗,並從聊天面板的下拉選單中選擇模型。

Cline

Cline 是一個代理擴充功能,可以讀取檔案、編輯檔案並在獲得你批准的情況下執行終端機命令。開啟其設定並選擇名為 OpenAI Compatible 的提供者。填入 Base URL、API Key 和 Model ID。貼上 https://api.codingllmapi.com/v1、你的金鑰和 uncensored。儲存、開始任務並批准其第一次工具呼叫。

其他擴充功能

許多工具遵循相同的模式,名稱類似「自訂端點」、「OpenAI 相容」或「帶入你自己的金鑰」。尋找接受 base URL 的欄位。如果擴充功能僅提供固定的供應商列表且沒有 URL 欄位,則無法將其指向此 API。

哪些功能可用,哪些可能無法使用

此 API 實作了 POST /v1/chat/completions 和 GET /v1/models。這涵蓋了聊天面板、編輯命令、解釋程式碼動作和代理循環。它並未涵蓋編輯器可能要求的所有功能。

編輯器功能預期結果
關於開啟檔案的聊天運作正常
選取程式碼並要求編輯運作正常
帶有工具呼叫的代理任務如果擴充功能使用標準 tools 欄位或其自身的提示詞格式,則可運作
內嵌 Tab 自動完成取決於擴充功能。如果需要單獨的完成或填補中間端點,此 API 並未提供
程式碼庫嵌入和索引此處不可用,因為沒有嵌入端點。請使用不同的嵌入來源或關閉索引
影像輸入或生成不可用,API 僅限文字

如果擴充功能在表格中列出的某項功能上失敗,請在設定中關閉該項功能,而非假設你的金鑰有誤。若要了解此模型在程式開發方面的表現,請參閱 用於程式開發代理的無審查模型頁面。

擴充功能之外:從編輯器執行的腳本

擴充功能並非從 VS Code 使用金鑰的唯一方式。許多開發人員在專案中保留一個小型腳本,將檔案發送給模型並列印答案,然後從整合式終端機執行它或將其綁定到任務。這讓你完全掌控提示詞,並避免擴充功能隱藏指令帶來的意外。

以下是一段 Python 腳本,用於檢視你傳入的任何檔案路徑。它從環境變數讀取金鑰,因此不會有任何機密資訊落入你的儲存庫中。

import os
import sys
from openai import OpenAI

client = OpenAI(
    base_url="https://api.codingllmapi.com/v1",
    api_key=os.environ["LLM_API_KEY"],
)

path = sys.argv[1]
with open(path, encoding="utf-8") as f:
    source = f.read()

resp = client.chat.completions.create(
    model="uncensored",
    messages=[
        {"role": "system", "content": "Review the code. List bugs first, then style issues. Be brief."},
        {"role": "user", "content": source},
    ],
    temperature=0.2,
)
print(resp.choices[0].message.content)

使用 python review.py src/app.py 執行它。大型檔案在 100,000-token 上下文視窗限制內均可處理,但較小的提示詞回應速度更快且成本更低。若希望答案即時顯示,請傳遞 stream=True 並在收到時列印每個區塊的 delta.content。

相同的概念可以作為 .vscode/tasks.json 中的 VS Code 任務運作:定義一個命令為此腳本且以目前檔案為引數的任務,並從命令面板觸發它。設定量很小,結果是一個你完全理解的審查命令。

修復常見錯誤

大多數問題歸因於少數幾個原因。請按照此列表的順序進行排查。

  1. 401 或「API 金鑰無效」。金鑰貼上時帶有尾隨空格,或是你使用了屬於其他網站的金鑰。請建立新的金鑰並再次貼上。
  2. 404 或「找不到模型」。 模型 ID 拼寫錯誤,或是 Base URL 缺少 /v1 或重複了兩次。正確的 ID 為 uncensored。執行 /v1/models 呼叫即可查看伺服器回報的內容。
  3. 429 且帶有 rate_limited。你已超過每分鐘請求數限制:完整金鑰為 300,試用金鑰為 60。快速迴圈的代理程式容易觸及此限制。請等待後重試,或降低自動步驟的數量。
  4. 429 且帶有 concurrency。同時請求過多:完整金鑰為 8,試用金鑰為 2。某些擴充功能會為單一任務並行發出多個呼叫。串流輸出會佔用槽位直到結束,因此卡住的串流可能會阻擋新的呼叫。
  5. 429 且帶有 Retry-After: 5 標頭。暫時過載。擴充功能應在五秒後重試。如果沒有重試,請手動重試。
  6. 請求因過大而被拒絕。 主體限制為 8 MB,上下文視窗為 100,000 token(包含提示詞與回答)。附加多個檔案的代理可能會超出此限制。縮小上下文或清除對話記錄。

當請求支援協助時,請包含 X-Request-Id 回應標頭的值。你可以使用 curl -i 查看。

保持成本可見

編輯器代理會傳送大量文字,因為每個步驟通常都會包含檔案和目前的歷史記錄。定價為每 1M 輸入 token $0.15,每 1M 輸出 token $0.50,這使得單一請求的成本保持較低,但迴圈累積起來會變高。

範例:一個包含 30,000 輸入 token 和 1,000 輸出 token 的代理步驟,輸入成本為 30,000 x $0.15 / 1,000,000 = $0.0045,輸出成本為 1,000 x $0.50 / 1,000,000 = $0.0005,因此每個步驟成本為 $0.005。40 個此類步驟的任務成本為 $0.20。這僅是粗略估算,並非保證,因為實際步驟的大小會有所不同。

  • 在呼叫後,請檢查回應標頭中的 X-Balance-USD 以查看你的剩餘額度。
  • 在新對話中開始新任務,以免舊的歷史記錄一直累積。
  • 如果擴充功能有設定,請設定步驟或請求限制。

額度為預付制,因此當餘額耗盡時即停止使用,且永不失效。儲值金額範圍為 $20 至 $500 的整數,並享有贈額:$50 起贈 5%,$100 起贈 10%,$200 起贈 15%。接受信用卡(Visa、Mastercard、Apple Pay、Google Pay)和加密貨幣(TRC20 上的 USDT、Base 上的 USDC)。詳細資訊請見 定價頁面,文件列出了所有支援的參數。

關於隱私與使用的注意事項

你傳送的程式碼會傳送至供應者的伺服器,因此請勿將生產環境金鑰、密碼或客戶資料等機密資訊貼入提示詞。此服務的提示詞不會用於訓練。該模型經過調整,可在合法成人用途下無內容審查地回答,這意味著它不會就安全測試或深色主題遊戲腳本對你進行說教,但你仍需對要求它執行的內容負責。涉及未成年人的性內容一律禁止。

問答

我可以在 VS Code 的 GitHub Copilot 中使用此 API 嗎?

Copilot 綁定於其自身的服務,因此此金鑰無法取代它。請使用接受自訂端點的擴充功能,例如 Continue 或 Cline。

我應該輸入哪個模型 ID?

輸入 uncensored。你可以使用你的金鑰呼叫 GET /v1/models 來確認。

為什麼編輯器顯示連線失敗?

先執行 curl 測試。如果 curl 運作正常,請重新檢查擴充功能中的 Base URL,包含結尾的 /v1 以及沒有額外的空格。

內嵌自動完成功能可用嗎?

僅當擴充功能能使用純聊天完成功能來處理時才有效。此 API 沒有單獨的完成端點,因此請檢查擴充功能的自動完成設定。

有免費方式可以測試嗎?

新用戶可在註冊後於 API 金鑰頁面領取 $0.50 的免費試用額度。無需信用卡,有效期為 7 天,且每人限領一次。

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

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

取得 API 金鑰