如何利用 ChatGPT 提升日常编码效率?

大家好,我是若川。我持续组织了近一年的源码共读活动,感兴趣的可以 点此扫码加我微信 lxchuan12 参与,每周大家一起学习200行左右的源码,共同进步。同时极力推荐订阅我写的《学习源码整体架构系列》 包含20余篇源码文章。历史面试系列。另外:目前建有江西|湖南|湖北籍前端群,可加我微信进群。欢迎星标我的公众号~不错过推文~

今天我们继续来聊 ChatGPT ,在上一期文章中我们聊了让 ChatGPT 扮演一个编程导师的角色,从而提升我们的编码能力,错过的同学可以阅读下面的文章:

那么如何让 ChatGPT 在我们的日常编码中也发挥作用呢?最直接的方式就是和我们的代码编辑器结合了。

比如最近 GitHub 发布了新版编程工具 Copilot X,它使用了 OpenAIGPT-4 模型,可以帮助我们解释代码、修复错误、生成单元测试、撰写 commit message 等。

25ca014abfe12992775970b4c01e69d2.jpeg

不过根据这些公司的一贯作风,Copilot X 这种新型产品仍然需要排队等待,而旧版的 Copilot 也需要至少每年 100$ 的付费使用,这就劝退了一些同学。

今天我主要跟大家来介绍其他两个借助 ChatGPT 的能力提升编码效率的工具:

  • Cursor:一款基于 GPT-4 的智能代码编辑器(目前免费)。

  • Code GPT:一款基于 OpenAI APIVSCode 插件,可辅助编写代码。

我们将从如下几个角度进行对比和分析:

  • 环境配置

  • 自动生成代码

  • 解释代码

  • 为代码添加注释

  • 重构代码

  • 寻找代码问题

环境配置

Cursor 配置

Cursor 是一款独立的编辑器,配置非常简单,因为内置了 ChatGPT 的能力,所以下载即用,我们可以到官网(https://www.cursor.so/)直接下载:

3435ef961e8113bacb7fe6ed1af9a571.png

下载后即通过 Ctrl+k 调出对话框进行会话:

e9a73f4fb0bb48028c07d5ecc76cbf5d.png

Code GPT 配置

CodeGPT 是一款 VSCode 扩展,所以我们需要在 VSCode 扩展商店里找到并安装它:

bacbc906e304e035cdfb3e1eac64917a.png

CodeGPTChatGPT 并非内置的,所以需要我们自己的 OpenAI API 密钥,可以到 https://platform.openai.com/account/api-keys 创建一个密钥:

17644b38ffa107eb3bd7f816a1d2cf89.png

然后通过 cmd+shift+p 并搜索 “CodeGPT: Set API KEY” ,将自己的密钥设置上去:

8229a52c086f5e52f57d6f23b7ef60be.png

下面我们打开 Settings,并搜索 CodeGPT 看看它的一些其他选项:

c6178fe8d6ac267f4bf44a089d57e3f5.png
  • Max Tokens:在 API 处理提示之前,输入会被分解成 token,这个配置是是 API 应该取出并处理的最大 token 数量,因此它取决于你想要获取的响应长度。另外每个模型都有一个最大 token 数量限制。

  • ModelCodeGPT 在处理查询时将使用的 OpenAI 模型,目前已经支持了最强大的 GPT-4

  • Language:设置你希望与 API 交互的语言,类似于“解释”或“文档”的功能也将在选择的语言中进行。

  • Temperature:一个 0 到 1 之间的值,此设置可以确定所生成文本的随机性或“创意”水平。值越高,生成的输出随机性越高。

自动生成代码

下面我们分别让 CodeGPTCursor 来帮我们编写一段代码,使用下面的 prompts

我现在有一个数据量非常大的数组,其中包括了 100w 个随机大小的数字,请帮我设计一个你认为最高效的排序算法。

CodeGPT

我们在编辑器鼠标右键,点击 Ask CodeGPT

a74d5061831c362d7f66a6dc6f31a168.png

然后输入我们的问题:

ff04a3dcfd12a6bc707fc80ad20cf05c.png

CodeGPT 给出的结果:

f1fc745fff17b92c219109273f1fd389.png

Cursor

Cursor 中我们使用 command+k ,然后输入 prompts

93988c7b3e2bca1178b964e0d4aee884.png

Cursor 给出的结果:

605ba984fcbf39c69b9df1fe2c07ee56.png

结果对比

  • CodeGPT:创建了一个新的 .js 文件,但是回复展示的还是 MarkDown 语法,速度略慢(可能是没有采用流式输出的原因,直接将完整的结果贴了出来)。

  • Cursor:响应非常快,几乎输入的瞬间就开始给出结果(和 ChatGPT 一样的流式输出),而且直接在当前编辑器里输出,一些相关的说明使用注释进行展示,这一点体验更好一点。

生成的函数在实现上基本一致,有一些细微的区别,比如在 CodeGPT 中使用的几个变量都是 let 声明的,实际上完全没有必要;而最后拼接数组  Cursor 使用的是 concat 方法,而 CodeGPT 使用的是更现代一点的扩展运算符,如果非要抠细节的话,扩展运算符的性能要略优于 concat 方法(因为 concat 会开辟新数组),不过在这个函数中只会合并一次,差别不大。

解释代码

下面我们来测试解释代码的能力,我给了它一道 JavaScript 经典的编码题目的实现:

8f0ba7e5b273be2c28be1cae049f559e.png

CodeGPT

我们选中需要分析的代码,然后鼠标右键,点击 Explain CodeGPT

ffe0aa10020a74ee51ea60688b27e393.png

Cursor

我们选中需要分析的代码,按下 command+L,然后输入,'帮我解释这段代码':

4ca0deed093664eea1db05012a916b3c.png

结果对比

  • CodeGPT

    • 给我感觉仍然比较慢,并且还是开了一个新的 tab

    • 按文本展示

    • 展示的结果比较简单

    • 使用内置的命令 Explain CodeGPT ,比较方便

  • Cursor

    • 在当前的编辑器弹出了一个新的窗口展示解释

    • 按照 Markdown 语法进行展示

    • 展示的结果明显要比 CodeGPT 更丰富一点,具体到了每个变量和辅助函数的实现

    • 没有内置命令,需要手动输入指令

生成注释

我们继续使用上面的 FindNumsAppearOnce 方法,让编辑器帮我们编写一些注释:

CodeGPT

CodeGPT 只有一个 Document CodeGPT 的功能可以为函数生成文档,没有内置注释能力,所以我们选中代码,然后鼠标右键,点击 Ask CodeGPT,输入请帮函数输入注释:

85f362a699e899b37d17f90643b3d5b4.png

Cursor

我们选中需要分析的代码,按下 command+L,然后输入,'帮这个函数生成注释':

bc16edc85cc795c9ae571896e1d2df27.png

结果对比

  • CodeGPT :语言配置在生成注释上失效了,生成的注释是英文的(我们可以在改一下 prompts 为请帮我生成中文注释),但是注释生成的比较详细,函数、参数、返回值都有注释。

  • Cursor:语言上没有问题,注释生成的相对简洁一点,如果想要更详细的注释可以再继续引导。

重构代码

下面我们来测试重构代码的能力,我们使用一个判断字符串回文的函数:

function isPalindrome(str) {const len = str.length;for (let i = 0; i < len / 2; i++) {if (str[i] !== str[len - i - 1]) {return false;}}return true;
}

CodeGPT

我们选中需要分析的代码,然后鼠标右键,点击 Explain CodeGPT

d18645c86f0f8bbf0a9310e7130c422d.png

Cursor

我们选中需要分析的代码,按下 command+L,然后输入,'帮我优化、重构这个函数':

e442990fcefa8217603f333a42d4ec5e.png

我们可以进一步提示 Cursor,让它给出更多的优化手段。

4d7e57dde33b5671903c501f9c5b3d36.png

结果对比

两者对代码的优化措施基本一致,但是如果你对结果不满意,可以进一步提示 Cursor 给出其他优化,这一点体验更好,而 CodeGPT 无法进一步引导。

寻找代码 Bug

我们用下面这段代码(含有数组越界的问题)来测试寻找代码 Bug 的能力:

function calculateAverage(arr) {let sum = 0;for (let i = 0; i <= arr.length; i++) {sum += arr[i];}return sum / arr.length;}

CodeGPT

我们选中需要分析的代码,然后鼠标右键,点击 Find Problems CodeGPT

8a814c3357a4b010521d9f64757c9c5a.png

我们选中需要分析的代码,按下 command+L,然后输入,'帮我查找代码 Bug':

Cursor

bfbcd7769e5c4baef14c9649f04dd3e7.png

Bug 比较简单,所以两者都很快给出了几乎相同的答案。

其他场景

另外其实还有非常多的场景我们可以借助 AI 的能力,例如为我们的函数生成类型声明、编写单元测试等等,更多的场景需要大家自己去挖掘了 ~

转换为 TypeScript

4c665afa5c5537f104b9b2877178b88b.png

生成单元测试:

bdf24dd4a44e4b9557ac17824b9ac4ea.png

总结

经过这么多的对比,下面我们来对两个工具做个简单的总结:

  • Cursor:

    • 优点:响应更快、同一上下文可以方便的持续引导、展示的结果更友好,目前免费;

    • 缺点:脱离 VSCode 环境,这是硬伤,无法将强大的生态利用起来,所以注定无法去使用它来开发大型项目,只能打打辅助;另外没有内置的命令,每次只能人工输入命令。

  • CodeGPT

    • 优点:可以享受强大的 VSCode 生态,有很多内置的命令;

    • 缺点:响应稍微慢一点,展示结果不够友好。

其实自己实现一个编辑器插件也非常简单,如果大家有精力的话我推荐大家按照自己的风格和习惯实现一个自己的插件,下面贴一段一个类似插件的代码,其实就是将固定的 prompts 喂给 ChatGPT ,非常简单:

76072bd39dc3143f3e0af379387851db.png

经过今天的测试,我认为 AI 确实是可以在编写代码这项工作中提升生产力的,特别是在生成一些特定的算法和函数、对代码进行重构上。因为编写代码的本质就是将人类可以理解的需求文字转换为机器可以理解的代码上,很多场景下 AI 要比人脑完成的更快,这不可否认。

但是如果你说让一名小白直接利用 AI 就可以快速编程,这是不现实的,因为机器生成出来的代码也不是那么完美,有一些瑕疵,这些只能通过人来发现。另外很多复杂的需求 AI 并不能一下就可以完成代码,而是需要人类在有一定的知识背景下持续引导,一名完全不懂编程的小白是无法完成这件事的。

所以 AI 并不能完全替代一个程序员,但是本身能力就比较强的人会在 AI 的加持下更加强大,而弱者的机会会越来越少。

所以我还是坚持我的观点,在未来一段时间里,用不好 AI 的程序员必定淘汰,这就是时代的浪潮,必须要跟上。

安全性

不过大家在使用这些插件的时候一定要考虑好安全性,因为目前无论是哪款工具都会将你的代码上传至 ChatGPT 的服务器,并且将其作为模型训练数据的一部分,这就存在极大的代码泄漏的风险。

目前阿里、腾讯、字节等公司已经有了明确的要求禁止在业务代码中使用 Github Copilot 这样的插件,如果你公司的业务对安全性要求比较高,那建议暂时不要直接在业务代码中使用这些插件,自己的个人项目、或者开源项目使用一下还是不错的。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信截图无法发送,也发不出电脑上的图片

微信截图无法发送&#xff0c;也发不出电脑上的图片 现象 今天微信突然出现这个问题&#xff0c;怎么改设置都调不好&#xff0c;卸载重装都不行&#xff0c;最后发现&#xff0c;微信的消息目录中&#xff0c;一些文件无法删除&#xff0c;提示“文件或目录损坏且无法读取”…

【闲聊】我用ChatGPT参加了大数据面试

用Chat GPT试了试面试题&#xff0c;回答得比较简单。 问&#xff1a;你可以以应聘者的身份参加一场大数据程序员面试吗 答&#xff1a;可以 &#xff0c;如果您符合面试要求&#xff0c;可以参加大数据程序员面试。 问&#xff1a;那么为什么你要投递大数据开发这个岗位 答&am…

ChatGPT的基本变现思路

本教程收集于:AIGC从入门到精通教程 ChatGPT的基本变现思路 一、变现-赚钱思路 一、变现-赚钱思路 对于新事物的出现,很多人对此都是抱着一个看热闹的态度,大家对于这个东西的整体认知水平是很低的!

ChatGPT - 提示词

文章目录 PromptBasechatgpt 提示词开源项目 awesome-chatgpt-prompts PromptBase Prompt 提示词网站 - PromptBase https://promptbase.com/ 支持的提示词有 chatgpt 提示词 https://promptbase.com/chatgpt 开源项目 awesome-chatgpt-prompts 官网&#xff1a; https://p…

如何利用开源项目,打造可商用的Chatgpt站点.

一套可以 ChatGPT 系统&#xff0c;支持 Docker 部署&#xff0c;开箱即用的控制台&#xff0c;完美适配 PC 端与移动端&#xff0c;可自定义付费套餐&#xff0c;增加一键导出对话&#xff0c;任务拉新获客等功能。 简单配置几步即可完成搭建&#xff0c;满足市场产品的功能需…

What Is ChatGPT Doing … and Why Does It Work?

ChatGPT 在做什么……以及它为什么起作用? 目录 ChatGPT 在做什么……以及它为什么起作用?

ChatGPT版Bing被调戏到生气发飙,ChatGPT被证实具有人类心智

点击上方“AI遇见机器学习”&#xff0c;选择“星标”公众号 重磅干货&#xff0c;第一时间送 文&#xff5c;金磊 发自 凹非寺源&#xff5c;量子位 谁能想到&#xff0c;ChatGPT版必应竟能像人一样发脾气&#xff01; 事情是这样的。 前两天一个华人小哥不是“黑”了ChatGPT版…

【ChatGPT Something went wrong. 简单方法解决】

ChatGPT无法响应解决 久闻chatgpt大名&#xff0c;一直心心念念想来体验一下效果如何。没想到经历了许多波折&#xff0c;其中最难解决的问题就是这个&#xff1a;Something went wrong. If this issue persists please contact us through our help center at help.openai.co…

ChatGPT报错:Access denied.You do not have access to chat.openai.com. The site owner may have set

ChatGPT报错&#xff1a;You do not have access to chat.openai.com. The site owner may have set restriction 解释&#xff1a;chatcgpt登录出现这个界面&#xff0c;说明你的IP被OpenAI拉黑了&#xff0c;OpenAI对比较频繁访问的云主机商屏蔽了相关的IP出口段&#xff0c…

国产开源版「ChatGPT插件系统」来了!豆瓣、搜索一应俱全,清华、面壁智能等联合发布

【导读】近期&#xff0c;面壁智能联合来自清华、人大、腾讯的研究人员共同发布了中文领域首个基于交互式网页搜索的问答开源模型WebCPM&#xff0c;这一创举填补了国产大模型该领域的空白。面壁智能自研工具学习引擎BMTools也因此被成功实践。 最近&#xff0c;一个被称为「C…

ChatGPT简单科普

其实chatgpt只是一个神经网络参数的组合&#xff0c;它的参数由输入的数据训练而成&#xff0c;从而由神经网络来记忆数据和反馈问答。它还不能够产生意识&#xff0c;只是一个LLM&#xff08;大语言模型&#xff09;&#xff0c;它还缺少一些灵魂和意识构成的本质要素&#xf…

刚刚!李开复宣布筹办新公司,进军大模型:不仅是中国版ChatGPT,全球广招顶级人才。。。...

丰色 萧箫 发自 凹非寺量子位 | 公众号 QbitAI 李开复突然宣布筹办新公司&#xff0c;目标大模型领域。 新公司Project AI 2.0&#xff0c;正式开启团队组建。 要做啥&#xff1f; 新公司希望打造一个平台&#xff0c;一个生产力应用的生态。 Project AI 2.0不仅仅要做中文版Ch…

一套哪都能开的系统,就是智驾的ChatGPT时刻

作者 | 德新 编辑 | Amy 2023年初&#xff0c;ChatGPT火了&#xff0c;一下点燃了人们对AI大模型的热情。 圈内流传的一个段子是&#xff1a;ChatGPT火了之后&#xff0c;给小鹏汽车带货了一把。小鹏以智能化见长&#xff0c;一段时间内它的门店客流大增&#xff0c;P7i的…

新书上市 |《这就是ChatGPT》刘江总编作序

奇事 本书的主题——ChatGPT可谓奇事。 从2022年11月发布到现在差不多半年的时间&#xff0c;ChatGPT所引起的关注、产生的影响&#xff0c;可能已经超越了信息技术历史上几乎所有热点。 它的用户数2天达到100万&#xff0c;2个月达到1亿&#xff0c;打破TikTok之前的记录。而在…

跨越山海的云知声,迎来了自己的GPT时刻

文&#xff5c;光锥智能&#xff0c;作者&#xff5c;郝鑫&#xff0c;编辑&#xff5c;王一粟 “世界上最高的山是什么山&#xff1f;” 云知声创始人兼CEO黄伟仍清楚地记得&#xff0c;十年前他用语音提出的第一个问题。答案播放出来的那一刻&#xff0c;黄伟第一次体会到创…

ChatGPT开始颠覆学习方式,应试教育面临哪些挑战?

ChatGPT爆火几个月&#xff0c;整个教育系统都在被颠覆。全球范围内&#xff0c;不少大学教授、系主任和管理人员&#xff0c;都在对课堂进行大规模的调整&#xff0c;以应对ChatGPT对教学活动造成的巨大冲击。 国内传统应试教育选出的分霸、考霸&#xff0c;是更能吃苦&#…

ChatGPT在教育领域的实际应用范围及局限性

ChatGPT 可以用来聊天&#xff0c;搜索&#xff0c;翻译&#xff0c;写代码&#xff0c;甚至参加某些考试。 ChatGPT在教育领域有哪些实际应用的范围 一、信息检索的替代方案 ChatGPT可以帮助学生获取精确的信息&#xff0c;并提供即时的结果。 例如&#xff0c;通常搜索引擎…

微软总裁揭示:中国将成为人工智能ChatGPT的强劲对手,商业应用加速推进

人工智能&#xff08;AI&#xff09;是当今世界最热门的话题之一。自从该领域进入了今天的阶段&#xff0c;它的发展速度越来越快&#xff0c;引起了人们的关注。在人工智能领域&#xff0c;中国的研究机构和企业将成为一个重要的竞争者。这是微软总裁布拉德史密斯在日本接受采…

牛逼,一个基于 ChatGPT 的 AI 阅读助手

【公众号回复 “1024”&#xff0c;免费领取程序员赚钱实操经验】 大家好&#xff0c;我是章鱼猫。 今天推荐的这个项目是「myGPTReader」&#xff0c;AI 阅读助手&#xff0c;一个在 slack 聊天软件里的 bot&#xff0c;可以读取任何网页、电子书与文档&#xff0c;并根据与问…

ChatGPT AI智能对话机器人 全新版本

ChatGPT中文版这是一款可以和人工智能聊天的软件&#xff0c;您可以与人工智能进行热烈的讨论&#xff0c;在聊天过程中会出现了很多可以触及的话题&#xff0c;用户可以在这里了解到软件的AI思维是怎样的&#xff0c;对任何问题都有独到的见解。 ChatGPT ChatGPT 无限问答版 立…