VSCodium GPT 插件配置 API2D 指北

全文也挺短就不放 ToC 了。简单来说,vscodium 就是移除了遥测的 VSCode,同时默认的插件源从 M$ 官方 Marketplace 换为 Open VSX,少了几个由于专有协议只能出现在 Marketplace 的插件,其他基本通用。

API2D (aff 链接) 是按量计费的 OpenAI API 兼容层,可以使用国内付款方式,并且不需要月费就能使用 GPT-4,还不会因为 IP 受到 OpenAI 各种莫名其妙的限制。

我在早期通过 API 使用 ChatGPT 更划算的时期就尝试了,现在用习惯也懒得换成遵守 GDPR 的 Azure OpenAI API。反正 CloseAI 账号是不可能注册的,只有用第三方兼容层才能勉强维持最低限度的隐私。

API2D 推荐的 chatgpt-vscode 虽然也上了 Open VSX,但仓库都一年多没更新了,一直嫌弃没有尝试。上个月看到 continue 感觉挺不错,除了 VSCode 还支持 JetBrains,并且支持一系列本地部署的 LLM,现在还在测试通过 OllamaStarCoder 的自动补全,不过看到模型 1.8G 就不想下载了……只是简单在 Continue 中尝试性配置 API2D,后面可能就待在 Continue 官方提供的 free trial 养老,不知道有没有 rate limit。

配置部分直接参考 Continue 文档中的 OpenAI compatible servers / APIs 和 API2D 开发文档中的 聊天接口 /v1/chat/completions,写完大概这样:

// Linux: $HOME/.continue/config.json
// Windows: %USERPROFILE%\.continue\config.json
{
  "models": [
    {
      "title": "API2D",
      "provider": "openai",
      "model": "gpt-3.5-turbo",
      "apiKey": "fk...", // 替换成自己的 key
      "apiBase": "https://oa.api2d.net",
      "requestOptions": {
        "headers": {
          "Authorization": "Bearer fk...", // 同上,但保留 Bearer
          "Content-Type": "application/json"
        }
      }
    }
  ],
  ...
}

Continue 文档某个地方还写了 X-Authorization 之类的 body,其实并不需要。 然后快乐运行,喜提报错:

Continue error: HTTP 403 Forbidden from https://oa.api2d.net/chat/completions  {"object":"error","message":"Only /v1/chat/completions && /v1/embeddings allowed now , your path {/chat/completions}","code":40301,"requestId":"xxx"}

看来看去,好像问题也只能出在请求地址上,所以补充上缺失的 /v1 即可(所以为什么 Chat 酱NextChat 都能用= =),同时固定使用的 model 为最新的 gpt-3.5-turbo-0125

{
  "models": [
    {
      "title": "API2D",
      "provider": "openai",
      "model": "gpt-3.5-turbo-0125",
      "apiKey": "fk...",
      "apiBase": "https://oa.api2d.net/v1",
      "requestOptions": {
        "headers": {
          "Authorization": "Bearer fk...",
          "Content-Type": "application/json"
        }
      }
    }
  ]
}

也可以参考 API2D 开发文档和 OpenAI 文档 自定义 body,比如设置最大 token 和发散度:

{
  "models": [
    {
      "title": "API2D",
      "provider": "openai",
      "model": "gpt-3.5-turbo-0125",
      "apiKey": "fk...",
      "apiBase": "https://oa.api2d.net/v1",
      "max_tokens": 1000,
      "temperature": 0.1,
      ...
    }
  ]
}

没有测试更多配置,比如流式传输、历史上下文等功能,瞥了几眼 Continue 源码倒是默认会生成会话标题和做一些处理,我就不过度优化了。顺带一提,API2D 前几天也兼容了 Claude,把接口改成 https://oa.api2d.net/claude 即可(这个应该不用加 v1),所有 GPT-3 模型会被映射为 claude-3-sonnet-20240229,所有 GPT-4 模型会被映射为 claude-3-opus-20240229。不过我粗略试了一下 claude3-sonnet-20240229,感觉智商还是太低,ChatGPT, Bible Tower and Chinese Room 中的三个问题一个都过不了。目前的 LLM 中只有 Copilot 能够通过,并且也是唯一一个全部通过的。

Vinfall's Geekademy

Sine īrā et studiō


待在移除遥测 VSCodium 的我想通过 API2D 使用 GPT 该如何是好

发布 2024-03-18
更新 2024-03-19
全文 981 字
签名 html asc

#api #llm #plugin #setup