试用智能编程助手

1 简介

网传有了大模型之后,很多人都要失业了,其中也包括一部分程序员,确实大模型可以减轻开发者的工作量,但是具体到减轻了多少工作量,哪种类型的工作,学习成本,使用成本如何?不捧不踩,今天我们尽量客观地体验一下。

本文将介绍目前使用最多的三个智能编程助手,它们均可提供:代码解释、注释、生成、实时补全等功能。下面基于 VSCode 环境来介绍具体的使用方法。

2 Copilot

2.1 介绍

Copilot 由Github和OpenAI合作推出,底层基于的Codex模型,通过GPT-3继续训练得到。
Copilot 可以先免费试用一个月。所以大家可以先试试,如果觉得必需,再购买或者在某宝以便宜的方式购买。

2.2 VSCode使用方法

  • 安装插件:github copilot, github copilot lab, github copilot chat
    主要功能分成两部分:一部分是生成后续程序 (github copilot),另一部分通过与 copilot 对话实现更丰富的功能支持 (github copilot chat)。

  • 正常安装后,左侧边栏和界面右下会出现小机器人图标
    右下角提示 copilot需要 github 帐号登录,按提示操作即可一个月免费使用(或者申请个比较便宜的学生号)。
    在这里插入图片描述

  • 生成后续程序
    例如:编写一行注释,回车后等几秒,自动生成的代码以灰色呈现;按Tab键接受推荐;Alt+左/右中括号可切换不同的推荐;Ctrl+Enter:打开一个Tab页,查看所有推荐。(其它环境快捷键可能不同,请查看具体帮助页)

  • 点击左侧图标可调出 Chat 栏
    目前版本主要分成四大功能:程序解释、代码翻译、写测试用例、其它功能(BRUSHES);其它功能又包括:加注释、fixbug,程序拆分、加强稳定性等,其中最后一项"自定义"可以用文本描述功能并执行,该功能非常实用,比如:新加一个函数,一个类,加头文件都可以通过文本描述实现。

2.2.1 问题及解决
  • 一开始安装后我的左侧边栏没显示Copilot图标,我更新了vscode最新版,又尝试切换了插件的预发布版本后可正常使用,如果还不正常,也可尝试关闭vscode,再进入。
  • 如果安装后,没直接出现github登录提示框,可尝试关闭vscode,再进入。
2.2.2 资源
  • 主页:https://github.com/features/copilot/
  • 使用手册:https://docs.github.com/en/copilot/

2.3 总结

2.3.1 优点
  • 稳定,功能全
  • 生态成熟,支持IDE:JetBrains IDEs,Vim/Neovim,Visual Studio,Visual Studio Code
  • 可以根据程序的上下文补全代码
2.3.2 缺点
  • 需要“科学”才能稳定使用,商业版可支持设置代理。
  • 普通用户每10刀一个月,对认证师生或高质量开源贡献者免费开放。非专业选手不一定非得用 Copilot,而对于专业选手每月10刀也能接受。
  • 需要配置比较多。

3 CodeGeeX

3.1 介绍

CodeGeeX是清华系列国产工具,底层基于 ChatGLM2模型,开源免费。

3.2 VSCode使用方法

  • 安装插件:codegeex
    安装之后,在右侧看到说明文档,内容比较全也比较长。
  • 主要功能分成两部分,同copilot,都封装在一个插件中。
  • 正常安装后,左侧边栏和界面右下会出现类似菱形的图标。
    按提示 login,微信登录即可用。
  • 生成后续程序
    基本用法同 Copilot 一致,AI生成的代码浅灰色,按Tab链后变正常。
  • 点击左侧图标可调出 Chat 栏
    Chat 栏支持提问和代码翻译等功能;智能问答含三个基本功能:/explain,/comment,/fixbug(在左下角输入框输入"/"可调出),在右边选代码,左边点功能即可。也可以在框中输入需要操作的文本描述。

3.3 总结

3.3.1 优点
  • 开源免费
  • 无需“科学”,直接使用
  • 无需复杂配置
3.3.2 缺点
  • 功能相对偏少,可看作低配版的 Copilot
  • 在聊天中,输入自已描述的功能效果不太好,它不太能看懂需求
  • 我测试了两个时段,其中有一次提问时不太稳定,一直 wait timeout (也可能是巧合)

4 Cursor

4.1 介绍

Cursor 是调用Chatgpt接口实现的AI编程工具,目前GPT-3.5可免费使用,GPT-4只对专业订购者开放。Cursor本身是一个IDE,可从其官网下载安装包。

4.2 使用方法

  • 从其主页:https://www.cursor.so/ 直接下载对应平台的 IDE 安装。
  • IDE 和 VSCode很类似,可看作轻量化的 VSCode,使用习惯非常像,常用快捷键都一样。
  • 第一次使用时,可以试用左侧的 demo 测试,融入操作的向导非常贴心。
  • 点击右上角可以对它提问
  • 主要快捷键有两个:
    • Ctrl+K在代码中操作
    • Ctrl+M以提问方式交互
    • 其它的提示都显示在屏幕上,按提示操作很快就学会了,学习成本低。
  • 与代码续写相比,它可以根据需求,生成整个程序,整体更有章法。
    在这里插入图片描述

4.3 总结

4.3.1 优点
  • 使用 ChatGPT 作为算法引擎,免费可用
  • 无需“科学”,直接使用
  • IDE 和 GPT结合得非常好,几乎所有操作提示全在界面上
  • 不只是补全,还可以生成整体代码
  • 无需复杂配置,学习成本低
4.3.2 缺点
  • IDE比较简单,不能满足开发需求
  • 使用时需要在 VSCode 与 Cursor IDE之间切换,打断思路。

5 讨论

5.1 使用场景

  • 对于新手,我们不用再花很多时间强调代码规范了,让大家直接用 AI 就可以润色出不错的代码和注释。
  • 对于不熟悉的领域、代码、编程语言,可以快速地了解和梳理代码,解释代码和逻辑。
  • 自动编写常用的代码片断
  • 自动编写相对复杂的 正则 或 SQL 查询
  • 解决一些简单的bug
  • 帮助程序员快速入门一门语言或一种框架
  • 快速程序写 demo 和代码框架,程序员只需要做少量修改即可使用

5.2 使用体验

5.2.1 基于场景的设计

最简单的使用大模型的方法是 ChatGPT 聊天界面提问代码相关问题,这种情况下,程序员需要描述环境,比如功能,编程语言,函数的输入输出,风格…… 而返回也往往是包含描述和代码,一般需要人看完整段回答,然后选取部分代码,再与自己代码组合。而且在两个界面之间切来切去很打断思路。

而上述的几种工具都使用了基于场景的设计,把工具融入编码的工作流,自动识别上下文,直接修改代码,节省了很多脑力,和 Chat 差别非常大。

5.2.2 清晰的注释

目前辅助工具更擅长写小模块,模板,常用功能;而对于业务理解,整体设计相对较差。从原理看,模型是用代码训练出来的,训练用的源码也有不同水平,难免不对,尤其对其未见过的复杂业务逻辑。

因此,整个开发过程需要人与工具不断沟通,比如:一开始它给我写的代码非常简单,后来我修改了几次注释提示,想要的内容就全都有了,自己再整理一下,或者让它整理一下,就很完美了。

另外,程序员可以先梳理业务逻辑,将其拆分成子任务,然后再用辅助工具其现子任务的具体功能。

5.3 使用效果

《Google Research 2022年度盘点》发布:谷歌在内部为开发者提供 5 亿参数的语言模型 ML-Enhanced 用于 为 IDE 集成代码补齐功能,通过内部1W+员工的实验对比显示,该功能减少了6%的开发时间,3% 的新代码(以字符为单位)是通过接受机器学习生成的。由此可见,AI 的代码补全功能并不像我们想象中那么有效。至少目前离完全自动化还很远。

当然,这也与开发应用的类型有关。我个人感觉,对于前后端,数据分析,数据等常用工具而言,提升20%-30%的工作效率应该没问题,甚至有时候觉得,有些普通的功能,选择一下,等着按Tab就行了。对于不熟悉的领域,机器生成的常常比人写的好。

5.4 如何选择工具

下图是计算机科学家 Matthias Plappert 在他的推文中对主流大模型代码效果的评测:

(平台这两天不能上传图片了...)

这样看来 openai-gpt4 还是首选,但比较贵,性价比最高的应属 openai-text-davinci-003;Openai 的 GPT 系列仍独占鳌头。

对于如何选择辅助工具,也列出了一些建议,仅供大家参考:

  • 如果有比较高的定制需求,或者大批量修改,可以自己做一些提示和后处理,调用 chatgpt-3.5/4 的api,直接优化代码。
  • 如果以编程为生,需要深度使用,自己又能“科学”的,推荐使用 Copilot。
  • 对于单位使用或者科研人员,建议先用 CodeGeeX 试试水,或者考虑购买 Copilot 商业版。
  • 如果使用 VSCode,建议使用可嵌入的工具,不用切来切去,不打断思路;如果没有非常依赖的 IDE 建议先试用 Cursor。

6 参考文献

【CodeGeeX2】很强的国产免费AI代码补全工具,基本使用教程
VsCode 安装Copilot
2023年AI编程工具总结
大模型代码生成排行榜出炉,70亿LLaMA拉跨,被2.5亿Codex吊打
当前业界最优秀的8个编程大模型简介
ML-Enhanced Code Completion Improves Developer Productivity

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值