新闻详情

新闻详情

首页 / 资讯中心 / 详情

做一个可以聊天的 VS Code 插件:TaoToken 统一 Key 接入与 settings.json 配置骨架

发布时间:2026/9/29 4:25:26来源:尧图网络
做一个可以聊天的 VS Code 插件:TaoToken 统一 Key 接入与 settings.json 配置骨架
1. 从零做一个能聊天的 VS Code 插件卡点到底在哪VS Code 插件开发本身门槛不高yo code一把梭就能跑起来一个 Hello World。但当你真正想给插件塞进一个「聊天窗口」让它能调用大模型 API 时问题就来了Key 放哪、怎么在extension.ts里发请求、settings.json里该写哪些字段、WebView 和主进程怎么通信、请求发出去了但返回 401 怎么查。这些环节任何一个没打通插件就只是个摆设。这篇面向的是已经会写基础 VS Code 插件、但还没把「聊天能力」接进插件的开发者。核心目标很明确用 TaoToken 的统一 Key 和 API 通道把大模型调用接进插件并给出一份可以直接复制的settings.json配置骨架最后在插件里发一次真实对话请求验证配置是否生效。TaoToken 在这里扮演的角色是「统一入口」——你不用在插件里维护一堆不同厂商的 Key 和 endpoint一个 Key、一个 base URL 就能覆盖多种模型插件配置层会干净很多。适合谁看写过extension.ts、知道package.json里contributes是干嘛的、但还没在插件里跑通过一次大模型请求的人。如果你连插件项目都还没建建议先跑一遍yo code再回来。2. TaoToken 前置准备拿到统一 Key 和 API 通道在写任何配置之前先把「钥匙」和「门牌号」准备好。TaoToken 的官网入口是 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 通道地址是 https://taotoken.net/api 这个不加 UTM直接作为 base URL 用。你需要做两件事第一登录后在控制台创建一个 API Key。这个 Key 就是你插件里唯一要填的凭证格式通常是一串以sk-开头的字符串。创建入口在控制台的 API Keys 页面建议给这个 Key 起个能认出来的名字比如vscode-chat-plugin方便以后按项目区分和吊销。第二确认你要调用的模型名。TaoToken 的模型对话页面可以直观看到当前可用的模型列表选一个你打算在插件里默认使用的比如某个通用对话模型。模型名要原样记下来后面写进settings.json的model字段。注意Key 不要硬编码进extension.ts然后提交到 Git。正确做法是让插件从 VS Code 的配置系统读取用户在自己的settings.json里填。这也是下面配置骨架的设计原则。如果你打算长期在插件里做编码类 Agent 能力而不是单纯聊天可以顺带了解一下 Coding Plan它更适合高频、长上下文的编码场景只是做对话验证的话普通 API Key 就够了。3. 可复制的 settings.json 配置骨架VS Code 插件的配置分两层一层是插件在package.json里通过contributes.configuration声明「我有哪些配置项」另一层是用户在自己的settings.json里填具体值。下面这份骨架是插件侧声明 用户侧填写的完整对照。先在插件项目的package.json里加上配置声明{ contributes: { configuration: { title: Chat Plugin, properties: { chatPlugin.apiKey: { type: string, default: , description: TaoToken 统一 API Key }, chatPlugin.baseUrl: { type: string, default: https://taotoken.net/api, description: TaoToken API 通道地址 }, chatPlugin.model: { type: string, default: gpt-4o-mini, description: 默认对话模型名 }, chatPlugin.maxTokens: { type: number, default: 1024, description: 单次回复最大 token 数 } } } } }然后在用户侧的settings.jsonCtrlShiftP→ Open User Settings JSON里填{ chatPlugin.apiKey: sk-你的TaoToken密钥, chatPlugin.baseUrl: https://taotoken.net/api, chatPlugin.model: gpt-4o-mini, chatPlugin.maxTokens: 1024 }这样拆的好处是Key 永远不进代码仓库换模型只改配置不改代码团队里每个人可以用自己的 Key。插件代码里通过vscode.workspace.getConfiguration(chatPlugin)读取这些值即可。配置项作用建议值chatPlugin.apiKey身份凭证控制台创建的 KeychatPlugin.baseUrlAPI 通道https://taotoken.net/apichatPlugin.model默认模型按对话页可用列表选chatPlugin.maxTokens回复长度上限512–20484. 在 extension.ts 里发起一次真实对话请求配置写好了接下来验证它到底通不通。核心逻辑是在extension.ts里注册一个命令读取配置向 TaoToken 的 API 通道发一个标准的 chat completions 请求。import * as vscode from vscode; export function activate(context: vscode.ExtensionContext) { const disposable vscode.commands.registerCommand(chatPlugin.ask, async () { const cfg vscode.workspace.getConfiguration(chatPlugin); const apiKey cfg.getstring(apiKey); const baseUrl cfg.getstring(baseUrl); const model cfg.getstring(model); const maxTokens cfg.getnumber(maxTokens); if (!apiKey) { vscode.window.showErrorMessage(请先在 settings.json 配置 chatPlugin.apiKey); return; } const userInput await vscode.window.showInputBox({ prompt: 输入你的问题 }); if (!userInput) return; try { const res await fetch(${baseUrl}/v1/chat/completions, { method: POST, headers: { Content-Type: application/json, Authorization: Bearer ${apiKey} }, body: JSON.stringify({ model, max_tokens: maxTokens, messages: [{ role: user, content: userInput }] }) }); if (!res.ok) { const errText await res.text(); vscode.window.showErrorMessage(请求失败 ${res.status}: ${errText}); return; } const data await res.json(); const reply data.choices?.[0]?.message?.content ?? (空回复); vscode.window.showInformationMessage(reply); } catch (e) { vscode.window.showErrorMessage(网络异常: ${String(e)}); } }); context.subscriptions.push(disposable); }别忘了在package.json的contributes.commands里注册chatPlugin.ask并在activationEvents里加上onCommand:chatPlugin.ask。Node 18 自带fetchVS Code 新版运行时可以直接用如果你的环境较老换成https模块或axios即可。验证动作按 F5 启动扩展开发宿主窗口CtrlShiftP输入chatPlugin.ask敲一个问题。如果配置正确右下角会弹出模型回复如果 Key 或 base URL 有问题会直接弹出错误码和错误文本方便定位。5. 本篇常见错排查401 Unauthorized九成是 Key 没填对或没生效。检查settings.json里chatPlugin.apiKey是否真的写进去了注意别把 Key 写在插件项目的.vscode/settings.json里却以为改的是用户配置。改完配置后重启扩展宿主窗口再试。404 Not Foundbase URL 拼错了。正确写法是https://taotoken.net/api请求路径再拼/v1/chat/completions。如果你把 base URL 写成了带/v1的就会变成/v1/v1/...直接 404。模型名报错 model not foundchatPlugin.model填的模型名不在可用列表里。去模型对话页面确认一下当前可用的模型名原样复制注意大小写和连字符。fetch is not definedVS Code 运行时版本较老。把fetch换成axios或者用 Node 的https.request手写请求。也可以检查package.json里的engines.vscode版本适当调高。配置改了但插件读到的还是旧值getConfiguration有缓存行为。在开发调试时改完用户settings.json后重新加载窗口Developer: Reload Window最稳妥。请求发出去了但一直没返回先确认网络能正常访问 API 通道再检查maxTokens是不是设得过大导致响应慢。调试阶段建议设 512 左右快速拿到结果。6. 把配置跑通之后下一步往哪走配置骨架和验证请求跑通之后你手里其实已经有了一个最小可用的聊天插件内核。接下来可以做的把showInformationMessage换成 WebView 面板做一个真正的对话界面把多轮消息存进context.globalState实现上下文记忆把chatPlugin.ask拆成「选中代码解释」「生成注释」等多个命令每个命令走不同的 system prompt。如果你打算把这个插件往编码 Agent 方向做比如让它能读工作区文件、执行多步任务那 API Key 的调用频率和上下文长度都会上去这时候可以看看 Coding Plan 是否更适合你的用量模型。接入文档里有更完整的参数说明和错误码对照排障时对着查会快很多。Key 的管理和轮换在 API Keys 页面操作建议给插件单独建一个 Key别和别的项目混用。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

假设检验实战:理解p值与A/B测试,判断差异是否真实 2026/9/29 8:49:16

假设检验实战:理解p值与A/B测试,判断差异是否真实

先说说背景。做数据分析、做产品、做运营的同学,多多少少都会遇到这种场景:新版页面上线后,转化率从 2.0% 涨到 2.5%;优化了推荐算法后,用户点击量上升了 8%;我们换了一种文案,A/B 测试里用户停…

阅读更多 →
Snowflake收购Observe:数仓与可观测性边界正在消失 2026/9/29 8:49:15

Snowflake收购Observe:数仓与可观测性边界正在消失

1. Observe是谁:一家把“日志当数据”卖的公司,为什么能值10亿先交代一下背景。上周看到Snowflake被曝出以10亿美元左右收购可观测性初创公司Observe的消息,圈子里讨论得挺热闹。很多人第一反应是“Snowflake买监控工具干什么”,第…

阅读更多 →
远控电脑用什么软件 怎么远程操作电脑 2026/9/29 8:49:09

远控电脑用什么软件 怎么远程操作电脑

远控电脑是日常办公、设备维护、异地取档的常用操作,很多人想找到一款好用的远控电脑软件。远控电脑想要省心高效、兼顾画质与适配性,不用花费时间钻研复杂设置,无界趣连2.0就是贴合普通用户与职场人群的优质选择,专为远控电脑场景…

阅读更多 →
iOS企业证书免上架分发指南:P12与描述文件申请全流程 2026/9/29 8:49:08

iOS企业证书免上架分发指南:P12与描述文件申请全流程

简介:面向需要实现苹果iOS应用内部分发的开发者,这份PDF教程系统讲解了企业证书(即P12格式)与描述文件的完整申请流程,适用于企业级App免上架App Store直接安装到iPhone上的场景。教程以Appuploader工具为主线&#xf…

阅读更多 →
工业级Embedding实战:从语义建模到生产部署 2026/9/29 8:49:08

工业级Embedding实战:从语义建模到生产部署

1. 这不是调个API就完事的“智能问答”——它是一套需要亲手拧紧每颗螺丝的工业级流水线 你肯定见过那种“三分钟上线问答机器人”的宣传页:点几下鼠标,上传PDF,填个API Key,然后弹出个对话框说“您好,我是您的知识助…

阅读更多 →
TensorFlow核心原理与工业级部署实战指南 2026/9/29 8:49:08

TensorFlow核心原理与工业级部署实战指南

1. 这不是“装个库”那么简单:TensorFlow到底在解决什么问题?你搜“tensorflow安装”,页面跳出的全是pip install命令、CUDA版本匹配表、GPU驱动报错截图——但真正卡住人的,从来不是那行命令本身。我带过三届AI方向的实习生&…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉