You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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扩展核心代码

  1. 初始化扩展项目:用yo code生成基础TypeScript扩展结构
  2. 在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() {}
  1. 在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 12:02:32