当前位置: 首页 > news >正文

开发也可以很快乐,让VSCode和CodeGPT带给你幸福感

77d3930df23182b2d52343bdba74b9a3.jpeg

CodeGPT 是一款 Visual Studio Code 扩展,可以通过官方的 OpenAI API 使用 GPT-3 (预训练生成式转换器) 模型,在多种编程语言中生成、解释、重构和文档化代码片段。CodeGPT 可用于各种任务,例如代码自动完成、生成和格式化。它还可以集成到代码编辑器和集成开发环境 (IDE) 中,为开发人员提供人工智能辅助编码功能。本文将教你如何在广泛使用的代码编辑器 Visual Studio Code 中设置和使用 CodeGPT。

在 Visual Studio Code 中设置

CodeGPT 在你的 Visual Studio Code IDE 中使用 CodeGPT 之前,你需要安装它。要安装 CodeGPT 扩展,打开你的 Visual Studio Code 编辑器,进入扩展商店,然后在搜索栏中输入“codegpt”。选择验证过的扩展,然后点击安装按钮。

点击安装按钮将在你的 Visual Studio Code 编辑器中启用 CodeGPT。或者,你也可以通过 Visual Studio 市场手动安装 CodeGPT。

https://marketplace.visualstudio.com/items?itemName=DanielSanMedium.dscodegpt

配置 CodeGPT

在成功在你的 Visual Studio Code 编辑器中安装 CodeGPT 后,你必须使用你的 OpenAI API 密钥配置 CodeGPT。

要检索你的 OpenAI API 密钥,请转到
https://beta.openai.com/account/api-keys,并单击“创建新的秘密密钥”按钮,如下图所示。

582664bf38d6794ce4f85a11ec0e403c.png

点击此按钮将生成你的 API 秘密密钥。请注意,你需要在生成后立即复制并安全存储该密钥,因为 OpenAI 不会再次显示它们。

接下来,返回 Visual Studio Code 编辑器,并导航到设置。

在 macOS 上,导航到菜单栏,单击 Code,然后选择 Preferences 找到“设置”选项。在 Windows 上,按 ctrl+, 打开设置。

在设置搜索栏中输入 “codegpt” 来过滤其他设置,留下 CodeGPT 设置。

3e0ffa3bd70d2ae4061ddc1e433613f4.png

在 macOS 上,按下 cmd+shift+p 并搜索“CodeGPT: Set API KEY”来添加你的 API 密钥。在 弹出的窗口 上,填写 API 密钥选项。

e8fc805729011f56b3f66b4b830a7469.png

CodeGPT 扩展还有几个设置,可以根据个人喜好进行配置。它们包括:

  • Max Tokens:在 API 处理提示之前,输入被分解为标记,然后 API 处理这些标记。max tokens 是 API 应该接受和处理的最大标记数。因此,根据你想要获得的响应长度选择标记数。还要注意,每个模型(稍后会讲到更多)都有一个最大标记数,所以使用的模型会影响最大标记数。

  • Model:这是 CodeGPT 在处理查询时将使用的 OpenAI 模型。顾名思义,CodeGPT 使用 GPT-3 模型。在这个模型中,text-davinci-003 是最有能力的,因为它能够提供更高质量、更长的输出,正确地跟随提示,并处理高达 4,000 个标记。

  • Language:这是你将与 API 交互的语言。功能,如 Explain 或 Document,也将在所选语言中完成。(这里你可以选择中文)

  • Temperature:此设置确定生成文本中的随机程度或“创造力”水平。温度越高,生成的输出就越多样化和有创意。较低的温度会产生类似于训练数据的输出,并且不太可能包含意外或惊人的内容。它是一个介于零(0)和一(1)之间的值,其中零表示最确定性,而一(1)表示最随机和有创造力。默认温度为 0.3。

让我们探索 CodeGPT 可以做的各种事情以及如何做到它们。

生成代码

使用 CodeGPT 可以根据从 Visual Studio Code 编辑器中提供的提示生成代码片段。

要使用 CodeGPT 生成代码,请编写一个注释,询问特定的代码(确保将光标保持在相同的注释行的末尾),然后在 macOS 上按下 cmd+shift+i,在 Windows 上按下 ctrl+shift+i。按下这组键将触发 CodeGPT 提示,然后打开一个新窗口,显示提示的结果。

在下面的示例中,使用提示“使用 ES6 语法生成一个返回 JavaScript UUID 的函数,并附有注释”来生成第二个窗口中的代码片段。

6602ed2bbd6a8655f1eac8f2d91a5b46.png

上面的提示生成了一个带有解释(含有注释)的函数,该函数生成UUID。

解释代码

您可以使用CodeGPT来解释您需要理解其作用的代码片段。

要解释代码片段,请选择要解释的代码片段,然后右键单击。右键单击将显示一些选项。从选项中选择“解释CodeGPT”。

点击此选项会触发CodeGPT提示,并打开一个新窗口,显示您的提示的结果,如下例所示。

61047ca6a6d19fddbd524a73ed301534.png

如果你设置的语言是中文,默认就会用中文解释,如下图所示:

420f24b5e2e558e8a376411c0a5260fc.png

重构代码

您可以使用CodeGPT来重构代码片段,使其更易读、易于维护和高效。

要重构代码片段,请先选择该片段,然后右键单击。右键单击将显示一些选项。从选项中选择“Refactor CodeGPT”。

单击此选项将触发一个CodeGPT提示,然后打开一个新窗口,显示您的提示结果,如下图所示。

8d63ff08949107f8a0c0a0227111d902.png

上面的示例中的提示将突出显示的代码块重构为使用 reduce 数组方法来计算购物车中产品的总价。在重构之前,初始代码块使用 for 循环来计算产品的总价。

编写单元测试

你可以使用CodeGPT为代码编写单元测试,以确保它们按照预期工作。

要为代码片段编写单元测试,请先选中该片段,然后右键单击。右键单击将显示一些选项。从选项中选择“Unit Test CodeGPT”。

点击这个选项会触发一个CodeGPT提示,并打开一个新窗口,显示你的提示的结果,如下图所示。

293fe922b81ec1c8122376fe73eeed53.png

以上示例中的提示编写了单元测试,以确保之前重构的函数能够产生预期的结果。

结束

你可以使用CodeGPT做很多其他的事情,包括记录你的代码,查找你的代码问题,从Stackoverflow上获取答案,以及比较最佳人类答案和AI生成的答案。虽然AI生成的代码可以是一个有用的工具,但是我们需要谨慎考虑它的潜在限制,并采取一些步骤,例如测试代码,以确保生成的代码具有高质量并满足你的要求。

今天的分享就到这里,感谢你的阅读,希望能够帮助到你,文章创作不易,如果你喜欢我的分享,别忘了点赞转发,让更多有需要的人看到,最后别忘记关注「前端达人」,你的支持将是我分享最大的动力,后续我会持续输出更多内容,敬请期待。

原文:
https://blog.openreplay.com/set-up-codegpt-in-visual-studio-code/

作者:David Ekete
非直接翻译,有自行改编和添加部分,翻译水平有限,难免有疏漏,欢迎指正

相关文章:

开发也可以很快乐,让VSCode和CodeGPT带给你幸福感

CodeGPT 是一款 Visual Studio Code 扩展,可以通过官方的 OpenAI API 使用 GPT-3 (预训练生成式转换器) 模型,在多种编程语言中生成、解释、重构和文档化代码片段。CodeGPT 可用于各种任务,例如代码自动完成、生成和格式化。它还可以集成到代…...

【Linux】基本指令介绍

前言从今天开始,我们一起来学习Linux的相关知识,今天先来介绍怎么登录Linux,并且介绍一些Linux的基本指令。使用 XShell 远程登录 Linux很多同学的 Linux 启动进入图形化的桌面. 这个东西大家以后就可以忘记了. 以后的工作中 没有机会 使用图…...

JQuery介绍

文章目录一. JQuery介绍二. JQuery使用三. JQuery选择器四. JQuery选择集过滤五.JQuery选择集转移六. JQuery获取和操作标签内容七. JQuery获取和设置元素属性八. JQuery事件九.JQuery事件代理- 事件冒泡- 事件绑定的问题- 事件代理一. JQuery介绍 定义: jquery是JS的一个函数…...

Selenium基础篇之八大元素定位方式

文章目录前言一、如何进行元素定位?1.右击元素-检查2.F12-选择工具点击元素3.借助selenium IDE二、八大元素定位方式1.ID1.1 方法1.2 举例1.3 代码1.4 截图2.NAME2.1 方法2.2 举例2.3 代码2.4 截图3.CLASS_NAME3.1 方法3.2 举例3.3 代码3.4 截图4.TAG_NAME4.1 方法4…...

C语言的灵魂---指针(基础)

C语言灵魂指针1.什么是指针?2.指针的大小3.指针的分类3.1比较常规的指针类型3.2指针的解引用操作3.3野指针野指针的成因:4.指针运算4.1指针加减整数4.2指针-指针1.什么是指针? 这个问题我们通常解释为两种情况: 1.指针本质&#…...

带你一文透彻学习【PyTorch深度学习实践】分篇——线性模型 梯度下降

分享给大家一段我国著名作家、散文家史铁生先生的一段话: 把路想象的越是坎坷就越是害怕,把山想象的越是险峻就越会胆怯,把别人想象的越是优秀就越是不敢去接近。惯于这样想象的人,是天生谦卑的人。 --------史铁生《关于恐惧》 🎯作者主页:追光者♂🔥 �…...

Javascript如何截取含有表情的字符串

Javascript如何截取含有表情的字符串 一、说说背景 社区社交应用中,难免会有输入用户昵称的操作,如果用户老老实实的输入中文汉字或者英文字母,那当然没啥问题,我们能够轻松的处理字符串的截取,产品说按多少字符截取…...

【云原生】prometheus结合jmx exporter 的java agent模式采集tomcat监控实战

前言 大家好,我是沐风晓月,今天我们又来探讨一款使用prometheus监控tomcat的另外一种形式:Java agent模式。 如果你想使用http server模式,请参考:【云原生】prometheus结合jmx exporter 的http server模式采集tomca…...

深度学习应用技巧总结与pytorch框架下训练过程的记忆技巧

大家好,我是微学AI,今天给大家总结一下深度学习模型训练过程中的一些技巧总结,以及pytorch框架下训练过程的记忆技巧,很有用的干货,理解模型训练过程的步骤,让流程难懂,难记忆的过程变得简单&am…...

数字图像处理 基于OpenCV的一种简单的阴影校正的方法

一、简述 在很多工业场景,都是基于工业相机、或者结合显微镜进行拍照采样,以进行进一步的分析,通常情况下分析结果和图像的质量息息相关,我们这里讨论的主要是因光照不均衡而在图像边缘产生阴影的图像的校正。 1、亮度阴影 亮度阴影(光学上称为渐晕,Vignetting)就是我们…...

OpenHarmony之cJSON库使用介绍

一、前言 我们前面OpenHarmony设备配网 文章中,给大家提供的示例有使用cJSON解析和cJSON创建json数据的用法 那么有同学会提出疑问,我难道只能用cJSON库? 当然不是啊,你也可以用 json-parser、parson、jansson 等等三方库 回到正题…...

门面设计模式

介绍 Java门面模式(Facade Pattern)是一种结构型设计模式,它提供了一个简单的接口,隐藏了复杂系统的实现细节,使得客户端可以更加容易地使用系统. 在Java门面模式中,一个门面对象(Facade)提供了一个简单的接口,该接口包装了一个或多个复杂的子系统,客户端可以直接使用门面对象…...

苹果手写笔好用吗?比较好用的ipad手写笔推荐

随着技术的进步,各种新型的电子产品和数码器件层出不穷。比如智能手机、IPAD、以及电容笔。而在实际生活中,为了更好的利用ipad,我们需要一支好用的电容笔。就好比如我们在ipad上做笔记,要用手来进行手写记录,会很不方…...

GPT-4来了!看看她究竟强在哪里!

GPT-4来了!OpenAI老板Sam Altman直接开门见山地介绍说:这是我们迄今为止功能最强大的模型!GPT-4是一个超大的多模态模型,也就是说,它的输入可以是文字(上限2.5万字),还可以是图像。我…...

GPT-4 API 接口调用及价格分析

GPT-4 API 接口调用及价格分析 15日凌晨,OpenAI发布了万众期待的GPT-4!新模型支持多模态,具备强大的识图能力,并且推理能力和回答准确性显著提高。在各种专业和学术基准测试上的表现都媲美甚至超过人类。难怪OpenAI CEO Sam Altm…...

MySQL高级功能:存储过程、触发器、事务、备份和恢复

MySQL高级功能MySQL是一款广泛使用的关系型数据库管理系统,它不仅具有基本的数据库功能,还支持一些高级功能,如存储过程、触发器、事务、备份和恢复等。这些高级功能可以帮助开发人员更高效地管理和维护数据库,本文将介绍MySQL的高…...

SAP 发出商品业务配置

SAP发出商品业务配置,即: 出具销售发票时结转成本 一、业务背景: 发出商品业务简单的理解为跨月开票,即出库与开票不在同一个月份。 该业务在系统内的实现方式,为保证成本与收入的配比,在出库时不计算成…...

C++线程池理解

线程池基本信息 线程池是一种结合池化思想衍生出来的一种线程管理及使用的方案 其主要针对服务器端多线程场景下,服务器频繁接收请求,每个请求都分配一个单独的线程去处理。 使用线程的开销: 创建和销毁线程调度线程 线程池主要解决的核…...

2023年最新软著申请流程(一):软件著作权说明、国家版权官网的账号注册与实名认证

若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/129230460 红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软…...

SuperMap iServer如何发布S3对象存储中的瓦片

作者:Carlo 前言: S3 对象存储服务是一个基于对象的海量存储服务,为客户提供海量、安全、高可靠、低成本的数据存储能力。其海量、安全的特性,为存储海量瓦片提供可能。 SuperMap iServer 支持将存储在阿里云对象存储 (OSS)、华为…...

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向: 逆向设计 通过神经网络快速预测微纳结构的光学响应,替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...

AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南

点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...

零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?

一、核心优势:专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发,是一款收费低廉但功能全面的Windows NAS工具,主打“无学习成本部署” 。与其他NAS软件相比,其优势在于: 无需硬件改造:将任意W…...

地震勘探——干扰波识别、井中地震时距曲线特点

目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波:可以用来解决所提出的地质任务的波;干扰波:所有妨碍辨认、追踪有效波的其他波。 地震勘探中,有效波和干扰波是相对的。例如,在反射波…...

Python爬虫实战:研究feedparser库相关技术

1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...

渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止

<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet&#xff1a; https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...

pam_env.so模块配置解析

在PAM&#xff08;Pluggable Authentication Modules&#xff09;配置中&#xff0c; /etc/pam.d/su 文件相关配置含义如下&#xff1a; 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块&#xff0c;负责验证用户身份&am…...

大语言模型如何处理长文本?常用文本分割技术详解

为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...

【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表

1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...

数据链路层的主要功能是什么

数据链路层&#xff08;OSI模型第2层&#xff09;的核心功能是在相邻网络节点&#xff08;如交换机、主机&#xff09;间提供可靠的数据帧传输服务&#xff0c;主要职责包括&#xff1a; &#x1f511; 核心功能详解&#xff1a; 帧封装与解封装 封装&#xff1a; 将网络层下发…...