如何在VS Code控制台程序中实时调用ChatGPT并获取响应?
可行方案与代码示例
方案一:使用VS Code第三方插件
直接用成熟插件是最省心的方式,推荐几个适配需求的:
- ChatGPT - Genie AI:支持在VS Code终端或侧边栏输入prompt,实时返回响应,还能整合代码编辑场景做补全、解释
- CodeGPT:可在终端窗口发起对话,响应实时加载,支持自定义模型参数
- GitHub Copilot Chat:微软官方出品,内置在VS Code中,打开终端下方的"Chat"面板即可直接提问,响应即时同步
方案二:自定义VS Code扩展+ChatGPT API调用(替代网页Dev Console方案)
网页版ChatGPT的Dev Console爬取方式易触发反爬,且DOM结构不稳定,更可靠的是直接调用OpenAI官方API,编写简单扩展实现终端交互:
步骤1:准备OpenAI API密钥
在OpenAI平台创建并保存API密钥(注意保密,不要泄露)
步骤2:编写VS Code扩展核心代码
- 初始化扩展项目:用
yo code生成基础TypeScript扩展结构 - 在
extension.ts中添加终端交互与API调用逻辑:
import * as vscode from 'vscode'; import { OpenAI } from 'openai'; export function activate(context: vscode.ExtensionContext) { // 创建自定义终端 const terminal = vscode.window.createTerminal({ name: 'ChatGPT Terminal' }); terminal.show(); // 监听终端输入(简化版,可优化为更完善的输入处理) let inputPrompt = ''; const disposable = vscode.window.onDidWriteTerminalData((data) => { if (data.includes('\r') || data.includes('\n')) { if (inputPrompt.trim()) { callChatGPTAPI(inputPrompt, terminal); } inputPrompt = ''; } else { inputPrompt += data; } }); context.subscriptions.push(disposable, terminal); } async function callChatGPTAPI(prompt: string, terminal: vscode.Terminal) { const apiKey = vscode.workspace.getConfiguration().get('chatgpt.apiKey') as string; if (!apiKey) { terminal.sendText('请先在设置中配置ChatGPT API密钥:chatgpt.apiKey'); return; } const openai = new OpenAI({ apiKey }); try { terminal.sendText(`> 提问:${prompt}`); terminal.sendText('正在获取响应...'); // 开启流式响应,实现实时输出 const response = await openai.chat.completions.create({ model: 'gpt-3.5-turbo', messages: [{ role: 'user', content: prompt }], stream: true }); // 流式输出响应内容 for await (const chunk of response) { const content = chunk.choices[0]?.delta?.content || ''; terminal.sendText(content, true); // true表示追加到当前行 } } catch (error) { terminal.sendText(`错误:${(error as Error).message}`); } } export function deactivate() {}
- 在
package.json中添加依赖与配置项:
{ "dependencies": { "openai": "^4.0.0" }, "contributes": { "configuration": { "title": "ChatGPT Terminal", "properties": { "chatgpt.apiKey": { "type": "string", "description": "OpenAI API密钥" } } }, "commands": [ { "command": "chatgpt-terminal.start", "title": "Start ChatGPT Terminal" } ] } }
步骤3:安装依赖并测试
- 运行
npm install安装openai库 - 按F5启动扩展开发窗口,执行命令
Start ChatGPT Terminal打开自定义终端 - 在VS Code设置中配置API密钥后,输入prompt按回车即可实时获取响应
不推荐Dev Console方案的原因
- 网页版ChatGPT有反爬机制,频繁脚本操作易被封号或限制访问
- 页面DOM结构随时可能更新,维护成本极高
- 无法稳定实现实时流式响应的传递,体验远不如API调用
内容的提问来源于stack exchange,提问作者Anish Kommireddy
相关产品推荐
相关产品推荐

