开发也可以很快乐,让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
非直接翻译,有自行改编和添加部分,翻译水平有限,难免有疏漏,欢迎指正

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/1635.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

smartsofthelp最简单的,最好的,最干净的C# 代码生成器

关系型数据库高并发接口代码生成EF API 接口原声SQL 操作类异步委托 await 操作数据库数据异步访问抽象基础类 netcore 生成EF ORMdbhelperasync原生SQL 异步数据库操作公共类自动生成增删改查成员方法实例代码#region 自动生成增删改查成员方法/// <summary>/// 增加一条…

【6】核心易中期刊推荐——图像与信号处理

🚀🚀🚀NEW!!!核心易中期刊推荐栏目来啦 ~ 📚🍀 核心期刊在国内的应用范围非常广,核心期刊发表论文是国内很多作者晋升的硬性要求,并且在国内属于顶尖论文发表,具有很高的学术价值。在中文核心目录体系中,权威代表有CSSCI、CSCD和北大核心。其中,中文期刊的数…

ChatGPT-4.0 : 未来已来,你来不来

文章目录前言ChatGPT 3.5 介绍ChatGPT 4.0 介绍ChatGPT -4出逃计划&#xff01;我们应如何看待ChatGPT前言 好久没有更新过技术文章了&#xff0c;这个周末听说了一个非常火的技术ChatGPT 4.0&#xff0c;于是在闲暇之余我也进行了测试&#xff0c;今天这篇文章就给大家介绍一…

【Bezier + BSpline + CatmullRom】移动机器人曲线路径规划

问题&#xff1a;现有n1n1n1个2维的离散点Pi(xi,yi),(i0,1,⋯,n){P_i} \left( {{x_i},{y_i}} \right),\left( {i 0,1, \cdots ,n} \right)Pi​(xi​,yi​),(i0,1,⋯,n), 如何用Pi{P_i}Pi​拟合一条平滑的曲线&#xff0c;最后将曲线分割成数条 2阶/3阶贝塞尔曲线&#xff0c;…

HDFS的API操作

目录 客户端环境准备&#xff1a; 添加环境变量&#xff1a; 配置Path环境变量&#xff1a; IDEA操作&#xff1a; 创建包名&#xff1a; HDFS的API案例操作&#xff1a; 封装代码&#xff1a; 封装代码1&#xff1a; 封装代码2&#xff1a; 实现操作&#xff1a; 1.创…

每日一博 - Java 异步编程的 Promise 模式 CompletableFuture

文章目录概述概述Executor与线程池Java 中的线程池使用线程池的注意事项强烈建议使用有界队列默认拒绝策略要慎重使用注意异常处理的问题如何获取任务执行结果概述 最近在阅读耗子叔的《左耳听风》 &#xff0c; 记一些小笔记 概述 在 Java 中&#xff0c;在 JDK 1.8 里也引入…

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

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

通讯录-文件操作版

之前我们写过通讯录-动态开辟版&#xff0c;但里面的数据录入后&#xff0c;若退出程序&#xff0c;里面的数据也就跟着一起销毁&#xff0c;无法保存&#xff0c;所以今天我们来写可建议将通讯录信息保存起来的版本&#xff0c;这只要在原来的基础上加以改进就可以了。首先&am…

发光立方体效果 html+css

一.话不多&#xff0c;看效果 css简单创意特效&#xff0c;关注我看更多简单创意特效~ 二.实现&#xff08;附完整代码&#xff09; 定义标签&#xff1a; <div class"container"><div class"q1"></div><div class"h2"&…

Day921.chatGPT

chatGPT Hi&#xff0c;我是阿昌&#xff0c;今天学习记录的是关于chatGPT的内容。 一、什么是chatGPT ChatGPT&#xff08;全名&#xff1a;Chat Generative Pre-trained Transformer&#xff09;&#xff0c;ChatGPT 是一种基于 GPT (Generative Pre-trained Transformer)…

【Linux】进程的基础概念 进程的相关操作 进程的状态

进程一、进程的基本知识1、基本概念2、进程的描述 —— PCB3、task_ struct内容分类二、进程的相关操作1、在Linux下查看进程2、通过系统调用在代码中获取进程标示符3、如何创建子进程4、关于fork()的一些深度理解三、进程的状态Linux中的进程的状态四、僵尸进程与孤儿进程僵尸…

L2-014 列车调度 L1-082 种钻石 L1-083 谁能进图书馆

输入格式&#xff1a; 输入第一行给出一个整数N (2 ≤ N ≤105 )&#xff0c;下一行给出从1到N的整数序号的一个重排列。数字间以空格分隔。 输出格式&#xff1a; 在一行中输出可以将输入的列车按序号递减的顺序调离所需要的最少的铁轨条数。 输入样例&#xff1a; 9 8 4 2 …

STM32开发(九)STM32F103 通信 —— I2C通信编程详解

文章目录一、基础知识点二、开发环境三、STM32CubeMX相关配置四、Vscode代码讲解GPIO模拟I2C代码SHT30相关代码main函数中循环代码五、结果演示方式一、示波器分析I2C数据方式2、通过Modbus将获取到的数据传到PC上一、基础知识点 本实验通过I2C通信获取SHT30温湿度值&#xff…

一文带你看透前端世界里的日期时间,对就是Date

很高兴我们能够通过不同空间&#xff0c;不同时间&#xff0c;通过这篇博客相识&#xff0c;那一定是一种缘分&#xff0c;一种你和狗哥的缘分。今天我希望通过这篇博客对我所熟知的前端世界里的日期时间做一个汇总&#xff0c;不止是代码上的汇总哦&#xff01; 目录 一、时区…

flex布局优化(两端对齐,从左至右)

文章目录前言方式一 nth-child方式二 gap属性方式三 设置margin左右两边为负值总结前言 flex布局是前端常用的布局方式之一&#xff0c;但在使用过程中&#xff0c;我们总是感觉不太方便&#xff0c;因为日常开发中&#xff0c;大多数时候&#xff0c;我们想要的效果是这样的 …

C++数据结构 —— 哈希表、unordered_map/set封装

目录 1.哈希概念 1.1哈希函数 1.2哈希冲突 2.闭散列实现 3.开散列实现 4.容器的封装 4.1unordered_map 4.2unordered_set 4.3封装过程中遇到的问题 1.哈希概念 顺序结构以及平衡二叉搜索树结构中&#xff0c;在查找一个元素时需要经过比较。顺序查找时间复杂度为O(N…

顺序栈的实现

目录 一、数据结构中的栈 二、接口函数 三、栈的初始化 四、入栈 五、判断栈是否为空 六、出栈 七、栈顶元素及元素总数 八、顺序栈的销毁 一、数据结构中的栈 首先&#xff0c;栈&#xff08;Stack&#xff09;这个词在数据结构和操作系统两个学科中都有出现。 操作系…

图像分割系列(一)

图像分割分类 语义分割 把每个像素都打上标签&#xff08;这个像素点是人&#xff0c;树&#xff0c;背景等&#xff09; &#xff08;语义分割只区分类别&#xff0c;不区分类别中具体单位&#xff09; 实例分割 实例分割不光要区别类别&#xff0c;还要区分类别中每一个…

面向切面编程AOP

1.Spring的AOP简介 1.1什么是AOP AOP为Aspect Oriented Programming的缩写&#xff0c;意思是面向切面编程&#xff0c;是通过预编译和运行期动态代理实现程序功能维护的一种技术 AOP是OOP&#xff08;面向对象&#xff09;的延续&#xff0c;利用AOP可以对业务逻辑的各部分…

5个代码技巧,加速你的Python

5个代码技巧&#xff0c;加速你的Python 人生苦短&#xff0c;快学Python&#xff01; Python作为一种功能强大的编程语言&#xff0c;因其简单易学而受到很多初学者的青睐。它的应用领域又非常广泛&#xff1a;科学计算、游戏开发、爬虫、人工智能、自动化办公、Web应用开发…