TokenLab

程式工具

Visual Studio Code

透過 Custom Endpoint 提供者在 VS Code 聊天中使用 TokenLab 模型

概覽

VS Code 聊天可以透過 Custom Endpoint(自備金鑰,BYOK)接入你自己的模型提供者。本頁透過 Chat Completions API 接入 TokenLab。

  • 聊天不需要 Copilot 方案。 VS Code 的 BYOK 模型不必登入 GitHub 即可使用。
  • 部分功能仍需要 GitHub: 行內建議(程式碼補全)、語意搜尋以及其他以 embedding 為基礎的功能不由 BYOK 模型提供,TokenLab 金鑰無法取代它們。
  • Copilot Business 或 Enterprise 使用者:需要管理員允許 Bring Your Own Language Model Key in VS Code 原則。

需求

  • 具備 Chat 檢視的最新穩定版 VS Code。
  • 一組 TokenLab API key(取得)。
  • 一個接受 openai_chat_completions 且支援工具呼叫的模型(Agent 模式只列出支援工具呼叫的模型)。模型詳情頁會同時寫明這兩點:API 格式中有 Chat Completions API,能力中有 Tool use,例如 GPT-5.6 Luna。

新增 TokenLab

  1. 在 Chat 檢視中開啟模型選擇器,選擇 Manage Language Models(齒輪圖示);或在命令選擇區中執行 Chat: Manage Language Models。
  2. 選擇 Add Models → Custom Endpoint。
  3. VS Code 會要求填寫 Group Name。輸入框預設填入 Custom Endpoint,請改成 TokenLab 並按 Enter。
  4. 接著會直接跳出標題為 TokenLab: API Key 的輸入框。貼上你的 TokenLab API key 並按 Enter。VS Code 會將金鑰保存在其祕密儲存區(secret storage)中。
  5. 如果 VS Code 詢問 API 類型,請選擇 Chat Completions。這一步可能不會出現;下方檔案中的 apiType 同樣會設定它。
  6. VS Code 會開啟 chatLanguageModels.json。保留精靈產生的 apiKey 那一行(它指向祕密儲存區中的金鑰),確認 apiType 為 chat-completions,並將 models 清單改成下方的內容,然後儲存。

請在精靈中輸入金鑰。直接寫進 chatLanguageModels.json 的金鑰不會被送出,請求會因缺少 Authorization 標頭而失敗。

[
  {
    "name": "TokenLab",
    "vendor": "customendpoint",
    "apiKey": "${input:tokenlabApiKey}",
    "apiType": "chat-completions",
    "models": [
      {
        "id": "gpt-5.6-luna",
        "name": "GPT-5.6 Luna (TokenLab)",
        "url": "https://api.tokenlab.sh/v1/chat/completions",
        "toolCalling": true,
        "vision": true,
        "maxInputTokens": 200000,
        "maxOutputTokens": 32000
      },
      {
        "id": "claude-sonnet-5-5",
        "name": "Claude Sonnet 5.5 (TokenLab)",
        "url": "https://api.tokenlab.sh/v1/chat/completions",
        "toolCalling": true,
        "vision": true,
        "maxInputTokens": 200000,
        "maxOutputTokens": 32000
      },
      {
        "id": "gpt-6.1-sol",
        "name": "GPT-6.1 Sol (TokenLab)",
        "url": "https://api.tokenlab.sh/v1/chat/completions",
        "toolCalling": true,
        "vision": false,
        "maxInputTokens": 200000,
        "maxOutputTokens": 32000
      }
    ]
  }
]

說明:

  • URL 要寫完整,包含 /chat/completions。帶有明確 API 路徑的 URL,VS Code 會原樣使用。
  • 使用 Chat Completions 類型時,VS Code 會送出 Authorization: Bearer <key>,這正是 TokenLab 所需要的。不要另外加入自訂驗證標頭。
  • id 是請求中送出的 TokenLab 模型 ID。任何 accepted_request_formats 包含 openai_chat_completions 的上架模型都可以使用。
  • Token 上限:VS Code 將 maxInputTokens + maxOutputTokens 視為上下文視窗。上方數值較保守,你可以依模型詳情頁上的上限調高。上下文越大,每次請求的費用越高。
  • 如果模型沒有出現在選擇器中,請重新啟動 VS Code。

未登入 GitHub 時

標題產生、提交訊息等背景「utility」工作預設使用 GitHub Copilot 模型。未登入 Copilot 時,請將 chat.utilityModel 與 chat.utilitySmallModel 設為 TokenLab 模型(small 選一個快速、便宜的模型),或將 chat.byokUtilityModelDefault 設為 Main Agent Model。這些背景呼叫會從你的 TokenLab 餘額扣款。

驗證

  1. 在模型選擇器中選擇 GPT-5.6 Luna (TokenLab)(低成本模型,適合第一次測試)。
  2. 先問一個唯讀問題,例如:Summarize the top-level structure of this workspace. Do not modify files.
  3. 在執行 Agent 工作之前,核對回覆以及對應的請求紀錄。

儲存設定或列出模型並不能證明金鑰可用。送出一次提示會消耗 TokenLab 餘額。

疑難排解

  • 缺少 Authorization 標頭: 金鑰不在祕密儲存區中。重新執行 Add Models → Custom Endpoint,在精靈中輸入金鑰,而不是寫在 JSON 檔案裡。
  • 401 / 驗證失敗: 在 Manage Language Models → TokenLab 群組旁的齒輪圖示中重新輸入金鑰。
  • 找不到模型: id 必須是正確的 TokenLab 模型 ID;請查看模型詳情頁。
  • Agent 模式中看不到模型: 設定 "toolCalling": true,並使用支援工具呼叫的模型。
  • Messages 或 Responses API 類型: 本頁尚未涵蓋,請使用 Chat Completions。

不要將 API key 提交到 chatLanguageModels.json 或任何受 Git 追蹤的檔案;檔案中保留 ${input:...}。

本頁內容