尽管GitHub Copilot在AI辅助编程领域处于领先地位,但市场上还有许多其他优秀的工具可供开发者选择。在日常开发工作中,开发者常常会结合使用多种AI编程辅助工具,以适应不同的编程需求和场景。
幸运的是,许多AI辅助编程工具受到GitHub Copilot的启发,采用了类似的用户友好的设计,使得它们易于上手和使用。这些工具通常支持通过注释来触发命令,允许开发者使用快捷键迅速获得编程建议。此外,它们也普遍具备实用的聊天功能。
Amazon的CodeWhisperer是一款多功能的扩展工具,它与VS Code、PyCharm及AWS Lambda等IDE高度集成,就像一把“瑞士军刀”。支持CodeWhisperer的LLM经过大量代码的训练,能够理解15种编程语言。Amazon在引入新的编程语言时非常注重准确性和安全性,而不仅仅追求上市速度。
CodeWhisperer有如下两个版本。
·个人版:免费,可以使用AWS Builder ID或Amazon登录名注册。个人版提供代码建议,跟踪开源代码的来源,并进行安全检查。
·专业版:每位用户每月收费19美元。专业版包含个人版的所有功能,并为大型企业提供额外的功能。专业版拥有权限管理系统,可以控制谁可以访问哪些内容,甚至可以管理所使用的开源数据类型。
专业版最引人注目的特性是其定制功能。企业可以根据自己的代码库、API和框架调整CodeWhisperer,以便提供更相关的代码建议。经过微调,CodeWhisperer提供的代码质量更高,减少了在过时代码上的时间浪费。专业版允许用户设置最多8种不同的自定义功能。
CodeWhisperer的两个功能如下。
·Reference Tracker(引用跟踪器):引用跟踪器密切关注代码,并与开源列表中的代码进行对比,显示开源代码在发布时所使用的许可证。这个功能有利于遵守法律和尊重知识产权。引用跟踪器可以显示项目资源库的注释、文件参考和许可证信息,有助于开发者根据企业的合规要求决定是否采纳代码建议。
·Security Scan(安全扫描):安全扫描在IDE中运行,旨在检查包括开放式Web应用程序安全项目(Open Web Application Security Project,OWASP)的十大威胁和通用缺陷枚举(Common Weakness Enumeration,CWE)列表在内的漏洞。它甚至会遵循加密库的最佳实践。安全扫描不仅能发现漏洞,还会提供修复方法。它既能加快开发速度,又能降低成本。鉴于AI辅助编程工具生成的代码可能存在一些难以预料的问题,拥有这一内置的安全功能无疑是一个巨大的优势。
CodeWhisperer的另一个显著优点是能够与AWS服务无缝集成,这意味着开发者可以在不阅读大量文档的情况下快速成为AWS服务专家。
接下来,我们将通过几个示例来展示CodeWhisperer的能力。
提示:# 编写一个Python函数,用于将文件上传到S3存储桶。
提示:# 构造一个Python Lambda处理程序,用于处理来自Kinesis流的记录。
提示:# 编写一个Java方法,通过排序键从DynamoDB表中查询条目。
提示:# 编写一个Bash脚本,使用AWS CLI通过实例ID停止一个EC2实例。
提示:# 在TypeScript中通过AWS CDK创建带有PostgreSQL引擎的RDS实例。
Amazon对CodeWhisperer的用户进行了一项调研,结果表明,与不使用该工具的开发者相比,使用CodeWhisperer的开发者在任务成功完成率上平均提高了27%,同时完成任务的速度也平均提高了58%。
根据埃森哲咨询公司的调查,在AI项目中采用CodeWhisperer,开发时间显著缩短,节省的时间高达30%。数据预处理等任务往往既耗时又烦琐,而CodeWhisperer的应用大幅提升了这些工作的效率。开发者只须使用恰当的提示,便能显著提升工作效率。例如下面的提示。
提示:# 创建机器学习数据的预处理数据类脚本。
Persistent Systems是一家全球性的数字工程公司。通常,新入职该公司的开发者需要至少4个月的培训,才能充分准备好参与项目工作。然而,借助CodeWhisperer,这一培训时间被显著缩短到仅1个月。
Google是Duet AI的创造者,这是一款为开发者设计的AI辅助编程工具,支持包括VS Code、IntelliJ、PyCharm、GoLand、WebStorm、Cloud Workstations和Cloud Shell在内的多种IDE,并且兼容超过20种编程语言。Duet AI建立在Gemini(Google自研的先进LLM)之上。
Duet AI具备AI辅助编程系统的标准功能,例如内置的聊天功能。此外,Duet AI还提供智能快捷操作,可以快速生成代码解释和单元测试等。
在安全性方面,Duet AI同样表现出色。它配备了包括专用端点(如Private Google Access)、VPC服务控制和企业级访问控制在内的一系列加固保护措施。
Duet AI的治理规则确保了用户输入的代码不会被用于训练任何共享模型或用于构建产品,以保障用户对自己的数据和知识产权拥有完全的控制权。此外,Duet AI还能够识别出你从代码库中直接复制的代码实例。
Google Duet战略的一个关键部分是构建一个广泛的合作伙伴生态系统。一些合作伙伴在Google云上提供特定环境的支持。与合作伙伴的协作有助于Duet AI提供更精确的代码建议、文档和知识源。
下面是一些合作示例。
Elastic
作为搜索分析领域的领导者,Elastic与Duet AI集成,使开发者能够在开发环境中直接查询、测试和处理Elastic数据。
HashiCorp
HashiCorp是云基础设施自动化软件的顶级供应商。HashiCorp建立了一个系统,以方便开发者使用Terraform和HashiCorp配置语言(HashiCorp Configuration Language,HCL)编写配置和自动化脚本。
MongoDB
作为NoSQL数据库的领军者,MongoDB与Duet AI的结合可以帮助开发者获得最佳实践,加速应用程序的开发。
Neo4j
作为图数据库的领军者,Neo4j与Duet AI的结合可以提供Cypher查询编程语言的建议,并帮助在复杂的数据集中发现隐藏的关系和模式。
Duet AI已经内置于Google云控制台中,因而只需要单击Google云控制台右上方的激活按钮即可启用Duet AI。之后将弹出一个聊天面板,如图5-1所示,在这里可以输入创建脚本、分析日志或深入研究JSON等任务的提示。
图5-1 单击激活按钮后,可以在Duet AI聊天面板中处理相关任务
聊天功能则被集成到Google日志资源管理器(Google Log Explorer)中。当你遇到难以理解的日志条目时,只需要选中它并单击Explain this Log(解释此日志)按钮,该日志条目将自动跳转到Duet AI聊天面板,你可以在那里请求解释,甚至可以得到一些解决问题的建议。
Duet AI的收费标准为每位用户每月19美元,按年支付。Google云的新用户可以获得300美元的免费积分。
AI技术服务公司Turing AI一直在使用Duet AI,该公司开发团队的工作效率大幅提升了33%。
Tabnine是AI辅助编程领域的先驱。这家公司由Dror Weiss和Eran Yahav在2013年成立。自20世纪90年代以来,他们就开始涉足软件行业,专注于代码分析和仿真。然而,在亲身体验了复杂的软件开发工作后,他们开始思考:如果AI能够解决他们所面临的问题,软件开发的世界会变成什么样?
事实上,AI确实给他们提供了帮助。在那个还没有Transformer模型的时代,他们不得不亲自动手,构建属于自己的模型。这段经历让他们深刻理解了AI在软件开发中的潜力。让我们把时间快进到近几年,Tabnine已经采用了先进的Transformer模型。
Tabnine投入巨资打造了一个安全系统。该系统的工作原理是:当你输入代码时,每个字符都会被标记、加密,然后发送到Tabnine的推理服务器(这些服务器可以位于云端,也可以在本地)。Tabnine不会存储客户的任何数据,且所有员工都无法访问客户数据。此外,Tabnine还符合SOC-2标准。
Tabnine有如下3个版本。
·入门版:免费提供,主要面向个人用户,提供短代码补全和社区支持等基本功能。
·专业版:每位用户每月12美元,专为专业开发者和小型团队设计,包括整行代码自动补全、自然语言到代码的自动补全等高级功能,并提供标准支持。
·企业版:为需要全面安全、控制和定制的大型企业提供服务,提供无限用户支持、私有和自定义的AI模型、私有部署选项和高级支持等功能,收费标准根据需求而定。
Tabnine拥有庞大的用户基础,每月有超过100万用户,有时甚至每天有数十万用户使用Tabnine。值得一提的是,Tabnine的知名客户涵盖了Google、Amazon、Netflix和Atlassian等科技巨头。
Replit是一种基于Web的多功能IDE,支持多种编程语言,并且允许用户托管应用程序。Replit提供了类似Google文档的丰富协作功能,使得多用户可以实时协同工作。为了扩大覆盖范围,Replit还推出了适用于macOS、Windows、Linux、Android和iOS等操作系统的桌面版本。Replit拥有一个庞大且活跃的开发者社区,大约有2300万用户。
Replit公司由Amjad Masad、Faris Masad和Haya Odeh在2016年共同创立。Amjad在Replit公司成立十多年前就开始构思Replit的理念。在创立Replit公司之前,Amjad曾在雅虎和Facebook(现Meta)担任工程师,专注于开发工具的构建。他还参与创办了著名的编程教育平台Codecademy,这进一步证明了他对创新技术和编程教育的热爱。
Replit有如下3个版本。
·免费版:提供无限的公共REPL(Read-Eval-Print Loop)和10GB存储空间。
·黑客版:每位用户每月7美元,提供无限制的私人REPL。黑客版还根据用户需求提供不同级别的内存和存储空间。
·专业版:每位用户每月20美元,包含黑客版的所有功能。专业版用户还可以享受最强大的AI模型和高级功能,以及更高效且功能丰富的代码开发体验。
Replit的营销和设计副总裁David Hoang说:“Replit是一个一体化的软件创作平台。”他还提到:“Replit的产品体验旨在减少软件开发过程中的摩擦——从开发环境配置、代码编写到在生产环境中部署。正因为如此,Replit能够在代码生成之外的环节集成AI。我们的代码补全模型也是由自研的语言模型驱动的。”
Replit的LLM经过了高达1万亿个token的训练,能够理解30种编程语言。当你在Replit上工作时,你在公共编程环境中编写的代码(包括按键操作,即keystroke)可能会被用于进一步训练Replit AI模型。如果你不希望自己的工作成果被用于训练,可以使用私人REPL。需要注意的是,在使用Replit时,你对代码的所有权不会改变。正如Replit的许可信息所示,公共编程环境中的代码自动采用MIT许可证。
图5-2显示了Replit的主界面:左上角是文件树和搜索框,中间是编辑器,输出(如控制台)显示在右侧,左下方是可用工具栏。如果选择AI选项卡,聊天功能就会出现在右侧面板中。
图5-2 Replit的主界面
在使用Replit时,如果选中一些代码并右击,将会出现以下选项。
Explain(解释代码)
Replit提供了解释功能,以帮助你理解代码。如果首次解释得不够详尽,你可以选择“重试”,让Replit再解释一次。此外,如果你有具体的问题要咨询,则可以从Explain(解释代码)菜单顶部的下拉列表中选择Ask Chat(智能聊天)选项。Replit还提供了其他辅助开发者编程的有用功能,如询问文档、编辑代码和生成代码等。
Modify(修改代码)
在Replit中,你可以提示Replit对代码进行修改。例如,如果你选中了一段二进制搜索的代码,并希望将其转换为JavaScript函数,则可以编写一个提示给Replit。你也可以修改代码的实现逻辑,比如要求将代码修改为使用递归方法。Replit的代码修改功能提供了一种灵活且交互性强的方式来帮助开发者完善代码。
以下两个有趣的故事展示了Replit的易用性和强大功能。
血糖水平监测应用
当伦敦的iOS开发者Marwan Elwaraki得知弟弟被诊断出糖尿病时,他决心开发一款用于监测血糖水平的应用。他和妻子Salwa Al Alami希望联手打造一个实用而独特的应用。Marwan说:“在飞机上,我制作了一个锁屏小部件原型,将这个小部件与血糖跟踪器的API连接,就能看到我弟弟的血糖水平,这种体验比打开应用查看最新数据要好得多。”
他们又添加了发送信息的按钮,并改进了短信功能。然后,他们在iOS应用商店公开发布了这个应用。虽然Marwan是一名经验丰富的移动前端开发者,但他在Python或后台开发方面的经验不足,而Salwa是一名没有编程经验的产品经理。起初,他们使用ChatGPT辅助编程,在引入Replit后,情况发生了巨大变化。Marwan说:“AI辅助编程工具不仅帮助我们生成了部分代码,而且仔细检查了几乎所有的后台代码。我听说过开发者在AI的辅助下工作效率得到大幅提升的故事。现在,通过亲身体验,我可以证实这个观点。”
从AI黑客马拉松到初创公司
Priyaa Kalyanaraman令人印象深刻,她曾在微软、Snapchat和Waymo担任产品经理。尽管缺乏技术背景,但她并没有因此退缩。她参加了Craft Ventures的AI黑客马拉松,并利用Replit开发了一个旨在简化内容创作并为创作增添乐趣的应用。她赢得了10000美元的大奖,她的努力得到丰厚的回报。她利用自身在产品管理方面的专业知识,精心准备了详细的规格说明,并合乎逻辑地构建了应用。她获奖的那个应用后来成为她的初创公司Lica的基础,她还因此成功获得了种子轮投资。
CodeGPT是专为VS Code设计的扩展,其提供了一系列定价选项以满足不同用户的需求,涵盖从基础的免费版到功能丰富的高级版,高级版的收费标准为每位用户每月49.99美元。此外,CodeGPT还提供10天的免费试用期,用户有机会在决定是否订购前先体验一下服务。
设置CodeGPT扩展的方法是:打开VS Code,单击File(文件)菜单,导航至Preference(首选项)并选择Settings(设置)命令。在打开的设置窗口中,单击左侧的Extension(扩展)菜单,然后选择CodeGPT进行配置。
CodeGPT的一个显著特点就是与多种LLM集成的能力。CodeGPT支持与OpenAI、Cohere、AI21、Anthropic等公司的模型进行集成。用户只需要在Hugging Face上创建一个API账户,便能够访问广泛的开源模型,从而增强CodeGPT的能力。
选择模型后,用户可以自定义以下配置。
·提示和响应的最大token数。
·温度值,用于控制所生成文本的创造性。
·聊天窗口的内存容量,即一个聊天中过往对话的数量。
CodeGPT还提供了一个有趣的功能——API服务。API对于需要理解和生成类人文本的系统(如聊天机器人、虚拟助手等应用)非常实用。CodeGPT的RESTful API设计确保了CodeGPT与其他各种平台的广泛兼容性和集成能力。此外,CodeGPT还提供Python和JavaScript的SDK,增强了实施的灵活性。CodeGPT的API是更广泛的编程流程变革计划的一部分,旨在为各种开发项目提供先进的AI辅助编程工具。
2013年,Quinn Slack和Beyang Liu共同创立了Sourcegraph公司,专注于开发代码搜索工具。Beyang的构想源自他在Google的工作经验,他在那里亲眼见证了Google内部平台在代码智能和洞察方面的强大优势,特别是在处理庞大的代码库时。
Sourcegraph公司的核心目标是打造能够处理“海量代码”的先进工具。该领域面临的一个重大挑战是复杂性。Sourcegraph公司所做的一项调查显示:约77%的开发者表示,他们的代码库在3年内增长了5倍。更有甚者,72%的受访者表示担心,不断增长的代码规模可能会威胁到公司的创新能力和竞争力。
AI在Sourcegraph公司的战略中扮演着至关重要的角色。该公司开发了一个名为Cody的AI驱动的代码生成系统。Cody依赖于Anthropic和OpenAI的LLM,并结合了Starcoder的能力。
Beyang指出:“我们利用自身的代码搜索能力来打造Cody。开发者80%的时间用来阅读和理解代码,而不是编写代码。Cody不仅能扫描整个代码库,还能轻松地引入其他库和框架,因此开发者能得到更好的结果。”
以下是可以在Cody平台上使用的提示范例。
提示:存储库的结构是怎样的?
提示:这个文件有什么作用?
提示:X组件在哪里定义?
Cody有3个版本——免费版、专业版和企业版。
免费版:提供代码自动补全、聊天和上下文感知等功能。
专业版:每位用户每月9美元,相应功能如下。
·无限制的代码自动补全、消息和命令。
·大型代码库的个性化。
·多种LLM的聊天选择。
·更高级的支持。
企业版:可以针对大型组织的需求进行定制,每位用户每月19美元,相应功能如下。
·用户管理。
·单租户部署。
·审计日志。
·组织使用情况汇总。
·测试期间的每日费率限制。
·Web和API访问支持。
·可配置的LLM。
为了更好地了解Cody的潜力,让我们来看看Cody的全栈开发者和开源贡献者Deepak Kumar的使用体验。他说:“我最喜欢的两个功能是聊天和命令。我使用聊天功能来咨询所有与编程相关的问题,比如寻求启动项目的初始想法、修复错误的方法等。命令是预定义的提示,它们在完成编写文档和添加测试等任务方面非常有用。”
2021年7月,Sourcegraph公司宣布在D轮融资中以26.25亿美元的估值获得1.25亿美元的投资,投资者包括Andreessen Horowitz、Insight Partners和Geodesic Capital。
WordPress是一个非常流行的开放源代码内容管理系统(Content Management System,CMS),以简洁性、多功能性、丰富的主题和插件选择而闻名。最初作为博客平台推出的WordPress,目前已经扩展应用到各种类型的网站。WordPress的吸引力在于其友好的用户界面和高度可定制化的特点。根据W3Techs的报告,互联网上约有45.8%的网站由WordPress提供支持。
AI辅助编程为WordPress开发带来了巨大的机遇,CodeWP充分把握住了这个机遇。CodeWP由James LePage创立,他在高中时就已经创建了一家WordPress代理公司。虽然公司业务迅速发展,但工作强度较大。在引入AI辅助编程技术后,工作效率得到了显著提升。James对WordPress开发中的常见用例有深刻的理解,他的洞察力进一步提升了AI的效率。
CodeWP是一个网络平台,它有3个版本——免费版、专业版和代理版。专业版和代理版按年付费可享受最高33%的折扣。
·专业版:每位用户每月18美元,提供额外的AI事务、项目和支持。
·代理版:面向更大规模的需求,每位用户每月48美元。代理版面向专业网站开发和营销公司,提供无限项目和协作功能。
使用CodeWP的流程如下。
(1)访问CodeWP网站并创建账户。
(2)单击Create New按钮,然后选择New Snippet命令来创建代码。
(3)如果想咨询问题,则可以单击New Chat按钮。
CodeWP的界面布局如下。
·界面左侧包含用于存储代码片段、跟踪对话和列出项目的选项。
·中间是编辑器,用于显示正在处理的文件内容。如果要创建新文件,则可以单击New File按钮。
·界面右侧是聊天功能区。
下面是一些提示范例。
提示:注册一个名为“book”的自定义帖子类型,标签为“Books”。
提示:使用WP_Widget类创建一个名为“My Widget”的WordPress小部件。
提示:为register_activation_hook函数创建自定义插件激活钩子。
CodeWP不仅支持WordPress生态系统中的关键组件,同时也考虑到与WooCommerce、WPSimplePay、Gravity Forms、SearchWP和Contact Form 7等主要工具的兼容性。
CodeWP具有实时预览选项,可即时查看代码的运行情况,简化测试和调试过程。此外,在开发WordPress项目时,CodeWP还能简化部署过程。CodeWP的集成工具可以轻松地将代码传输到WordPress网站,从而更高效地在实际环境中部署和测试代码。
CLI起源于20世纪60年代,并随着Multics和UNIX等操作系统的发展而流行。尽管图形用户界面(Graphical User Interface,GUI)后来以美观和操作便捷居上,但CLI依然保持其简洁本质。CLI的核心理念是简单性:通过输入纯文本命令获取所需结果,不附加任何多余功能。
CLI因其简单性而广受欢迎。它们对于管理云系统、处理计算机上的文件和程序,以及构建高效的工作流程至关重要。CLI擅长的领域包括自动化任务、数据处理、网络管理和软件开发等。
掌握CLI不仅能加快工作进度,还能提高准确性。CLI的一个显著优点是能够组合不同的命令来处理复杂任务。此外,一旦学会了命令行编程,开发者就有更大的灵活性来根据个人喜好调整程序和自动化任务。这意味着开发者可以根据个人需求定制任务,使工作流程更加顺畅和高效。
CLI尽管功能强大,但它并非没有缺点。CLI不适合协作,广泛使用CLI可能会影响工作效率和团队合作。此外,一旦关闭终端会话,所有内容都会丢失。CLI通常受限于单一机器,跨设备切换非常不便。有时,面对复杂任务,使用CLI可能达不到理想效果。而且对于许多人,熟练掌握CLI命令及其语法并非易事。
因此,CLI领域存在创新空间。Warp公司就是一家引领创新的初创企业。
Warp公司由创始人兼首席执行官Zach Lloyd于2020年创立。在创立Warp公司之前,Lloyd曾在Google担任Google Sheets的首席工程师。Lloyd表示:“作为一个有着二十多年经验的开发者,我深刻体会到CLI的强大功能。它对开发者非常有用,但仍有改进的空间。”
Warp是使用Rust构建的。Rust是一门以快速和高效著称的编程语言。与传统的JavaScript不同,Warp利用Rust的优势,即使在浏览器中直接运行,也能提供类似本地应用程序的体验。对Rust的巧妙应用意味着用户在使用Warp时能获得更流畅的体验,从而改善与整个应用程序的交互。
想象一下,Warp是一个超级终端。它具有先进的文本输入功能,如选择、光标定位和自动完成菜单,允许用户无缝浏览命令历史记录,这消除了滚动浏览长文本的不便。此外,Warp还使复制输出变得轻而易举。
在Warp中,每个命令及其输出都构成一个独立的块。你可以毫不费力地将鼠标指针悬停在这样的块上,回顾过去的命令。选择一个块,右击并在弹出菜单中选择Warp AI,即可获得针对错误的解释和解决方案。Warp与传统的CLI形成了鲜明对比,传统CLI提供的指导非常有限,主要依赖用户的专业知识来解读错误信息和排除故障。
Warp还具有聊天功能。你可以通过以#开头的提示来使用它。假设你想了解以下信息。
提示:# 如何使用grep在递归搜索中排除目录?
你可以将Warp给出的答案复制到终端。
值得一提的是,Lloyd也是Copilot的忠实用户,他也使用Copilot辅助开发。他说:“我在使用Warp的同时也使用Copilot。两者配合得非常好。”
Instagram的联合创始人Mike Krieger是Warp的忠实粉丝。他说:“我每天上班都在使用Warp。我最喜欢的是它的运行速度。我尤其喜欢它出色的超前输入和搜索功能。Warp将终端带入了现代,我迫不及待地想看终端技术会将Wrap带到何方。”
Warp可以运行在Linux和Windows操作系统及macOS上。它有3个版本——免费版、团队版和企业版。
·免费版:每天可提供多达20个AI请求。
·团队版:每位用户每月12美元,每天最多提供100个AI请求。
·企业版:面向有特殊要求的大型机构,收费标准根据客户需求而定。
2006年,Amar Goel和Anand Das共同创立了在线广告公司PubMatic,该公司于2020年成功上市。他们在创业过程中,深刻认识到AI在提升编程效率方面的潜力,这激发了他们创立Bito AI的灵感。Mukesh Agarwal,曾在微软和安永担任产品负责人,也加入了Bito AI的创始团队。
Bito AI具备多语言支持能力,能够支持20种语言,包括独特的混合语言,例如印地语和英语的混合语言Hinglish。
Bito AI拥有多个显著的功能:允许用户为常用的编程结构创建自定义提示模板,这极大地简化了开发流程;支持进行安全和性能检查,并提供优化建议,以提升代码的安全性和效率。
Bito AI拥有一个庞大的上下文窗口,能够处理约240000个token,这增强了其理解和分析大型代码库的能力。Bito AI在用户的机器上使用本地向量数据库,以确保生成的结果更加相关和准确。这一特性显著提升了Bito AI在管理大型编程项目时的效率和有效性。
Bito AI还能很好地处理内存泄漏。当程序占用计算机的部分内存却忘记释放时,就会发生内存泄漏。如果内存泄漏持续发生,就会令人非常头疼。程序不断运行,内存不断泄漏,一直侵蚀可用内存总量。持续的内存泄漏会导致系统运行速度变慢,因为物理内存不够用,系统开始使用交换空间。如果内存泄漏情况非常严重,甚至有可能导致程序或整台计算机因内存耗尽而崩溃。
内存泄漏的发现和修复都很棘手,因为它们可能在程序运行一段时间后才显现。这种延迟使得找出并解决它们变得更加困难。Bito AI能够检测出潜在的内存泄漏。方法很简单:使用IDE中的Insert Code Selected选项,插入如下提示。
提示:找出代码中的任何问题。
使用这个提示后,Bito AI将不仅能够标记出问题,还能提出修复建议。
在隐私方面,Bito AI不存储任何实际代码。但是,Bito AI会保留期间生成的元数据。
Bito AI有两个版本——免费版和付费版。
·免费版:针对个人用户。
·付费版:每位用户每月15美元。付费版提供无限制的AI代码补全和访问高达240000个token的上下文窗口等功能,从而增强了整体编程体验。
根据Bito AI的内部分析,使用Bito AI的开发者表示编程效率提升了31%。这些用户平均每月使用Bito AI近200次。目前,Bito AI已经拥有大约10万名活跃用户。
Anysphere公司开发了创新性编程工具Cursor。这家公司对其产品有着宏伟的愿景:
未来几年,我们希望打造一个前所未有的代码编辑器——一款更有用、更令人愉悦、更有趣的工具。Cursor是一款不可能写出错误的工具。它是一个只需要50行伪代码就能编写出2000行拉取请求的编辑器。它还是一个能立即解答任何代码库问题的智能系统,甚至是一个可能让源代码变得不那么必要的界面……
Cursor以其强大的功能吸引了包括OpenAI在内的投资者的关注。2023年10月,Anysphere宣布成功融资800万美元,这家公司的总融资额达到1100万美元。
Cursor支持GPT-4和GPT-3.5,并能够通过Anysphere的专有模型来增强能力。这两个大模型拥有14亿个向量和对15万个代码库的理解,还采用了Merkle树等先进AI技术,从而进一步提升效率。
作为VS Code的一个分支,Cursor兼容Windows、Linux操作系统及macOS,这使得用户无须学习新的IDE,就能够方便地导入现有的VS Code扩展。此外,你也可以在CLI中直接利用Cursor的AI能力,将高级功能无缝集成到用户熟悉的编程环境中。
例如,在聊天区域,你可以轻松导入文档并提出问题。
提示:@python docs
你也可以使用@来处理特定文件。
提示:@the_app.ts有什么作用?
Cursor支持在终端中直接调试代码。它的AI系统会筛选文件,并委托一个逻辑进程来定位并尝试解决问题,从而简化故障排除过程。
Cursor的一位用户Jeffrey Biles,一位全栈网络开发者,分享了他对Cursor的体验:
我非常喜欢通过按键将应用程序上下文快速加载到AI系统中。它在回答问题、记忆语法、重构代码片段和编写模板时非常有效。尽管当涉及理解跨多个文件的大型数据模型时,它可能达到极限。但随着模型不断改进,这些极限将被不断突破,例如使用更大的上下文窗口。
Cursor的另一位用户Tosh Velaga,一名软件工程师,同时是多家AI公司的创始人,如Typeblock和STBL(STBL开发了Stable Diffusion),也分享了他对Cursor的体验:
我非常喜欢的一个功能是Command+L快捷键,它允许我询问有关代码的问题。当我在新的代码库中使用不熟悉的后端编程语言时,这个功能极其有用,它能帮助我更快地上手。另外,我可以使用Cursor自带的API密钥来节省成本,并能够在GPT-3.5和GPT-4之间进行切换。
开源项目在AI辅助编程领域受到的关注度日益增加,这在学术界同样成了一个热门议题。Meta作为该领域的领军企业之一,自2023年8月推出Code Llama以来,不断引领着行业潮流。
Code Llama建立在LLaMA 2的基础上,LLaMA 2经过了惊人的2万亿个token的训练,拥有4096个token的上下文长度。LLaMA 2包含一些经过微调的模型,这些模型在超过100万个人类标注的训练下得到加强,其有效性和可靠性均得到提高。
LLaMA 2有多个特殊版本,如LLaMA 2-Chat,它是专门为聊天应用设计的,在关键的基准测试中,它在有效性和安全性方面优于其他开源聊天模型。此外,LLaMA 2还与Hugging Face等平台进行集成,并与微软和Amazon等公司建立了重要的云服务部署合作伙伴关系。
Code Llama支持包括Python、C++、Java、PHP、JavaScript、C#和Bash在内的多种主流编程语言。它提供了3种不同规模的模型——7B模型、13B模型和34B模型,分别拥有70亿、130亿和340亿个参数,所有这些模型都是在5000亿行代码上训练出来的。7B模型和13B模型的特别之处在于它们具有中间填充能力,能够将代码插入现有脚本中,特别适用于代码补全等任务。7B模型可以在单个GPU上运行,通常速度更快。而34B模型则在性能上具有巨大的冲击力。
Code Llama的功能不仅限于LLaMA 2基本模型。Code Llama的所有模型都能处理高达100000个token的上下文,这对编写较长的程序非常有用。更大的上下文窗口使得Code Llama成为调试的有力助手。
Code Llama有两个特殊版本。首先是Python版本,它通过涵盖1000亿个token的代码进行了优化。其次是指令版本,它接受了额外的自然语言训练,以提高其在自然语言应用中的表现。
34B模型的性能给人留下了深刻印象。它在HumanEval上获得了53.7%的高分,在MBPP上获得了56.2%的分数,这些成绩都优于其他开源模型,并且与ChatGPT的表现相近。
此外,Code Llama还通过了安全测试。Meta指出,Code Llama的响应甚至比ChatGPT更安全。
在开源代码生成领域,近期涌现出一些令人瞩目的创新。以下是几个表现突出的平台。
Stability AI公司是备受瞩目的文生图系统Stable Diffusion的开发者,该公司还推出了StableCode,这是一款基于开源项目BigCode训练的代码生成工具。BigCode是由Hugging Face和ServiceNow Research合作开发的一个项目,它们创建了一个名为The Stack的庞大数据集,这个6.4TB的数据集包含了独特且可免费使用的GitHub代码,非常适合用来训练AI模型。
StableCode采用了一种独特的技术,它使用旋转位置嵌入(Roary Position Embedding,RoPE)技术,而不是传统的线性偏置注意力(Attention with Linear Biases,ALiBi)方法。StableCode经过了大规模的微调,包括数据清洗,已成为一款多用途的工具,支持包括Python、Go、Java、JavaScript、C、Markdown和C++在内的多种编程语言。
StableCode有如下3个版本。
StableCode-Completion-Alpha-3B-4k
这是一个仅包含30亿个参数的解码器,适合处理多种编程语言,能够处理长达4000个token的上下文。
StableCode-Instruct-Alpha-3B
这个版本包含30亿个参数,针对指令进行了优化。
StableCode-Completion-Alpha-3B
这个版本包含30亿个参数,在执行大量代码补全方面表现出色,可处理长达16000个token的上下文。
DeepMind,Google旗下的AI公司,开发了名为AlphaCode的先进AI系统。AlphaCode在编程竞赛领域取得了十分优异的成绩,在由Codeforces(一个知名的编程竞赛平台)举办的编程竞赛中,AlphaCode的得分排在前54%。AlphaCode能够处理各种艰巨的任务,处理这些任务需要批判性思维、逻辑推理、算法知识、编程技巧及对自然语言的理解。AlphaCode的能力甚至获得《科学》杂志的称赞。
编程竞赛与日常编程任务不同,前者通常包含复杂的算法挑战和理论问题。以AlphaCode面临的一个名为Backspace的难题为例,它要求参赛者在两个字符串s和t上工作,通过使用退格键将字符串s转换为字符串t。这个问题要求参赛者提出巧妙的算法,展示了竞技编程所需的高级问题解决技能。
DeepMind的目标是通过AlphaCode实现完全自动化的代码生成,这标志着AI在编程领域的技术进步达到一个新的里程碑。
PolyCoder是一款专为加速C语言编程而设计的AI工具,尤其受到游戏开发者的青睐。它不仅能够提升C程序员的编程效率,还擅长对多种编程语言的代码进行总结和理解。PolyCoder在多个不同的数据集上接受了训练,能够精准捕捉C、C++、Java、Python和JavaScript等多种编程语言中的常见模式和结构。
在高达249GB的数据集上经过密集训练后,PolyCoder掌握了12种不同编程语言的精髓。此外,它拥有27亿个参数,这为其提供了强大的能力,以理解和生成高质量的代码。
CodeT5采用了一体化的预训练编码器-解码器模型架构,该架构赋予了它处理多样化编程任务的能力。这种设计让它不仅能够识别代码中的错误和检测代码副本,还能够处理新结构带来的挑战,例如将编程语言转换为纯英文,或进行反向操作,甚至在不同的编程语言之间进行转换。
CodeT5的设计融入了一些特殊的技术,这些技术能够充分利用编程语言的深层结构,从而增强CodeT5对代码的正确理解和输出能力。
在CodeXGLUE(CODE通用语言理解评估基准)的14个不同挑战中,CodeT5展现出卓越的性能,它在所有生成任务上都超越了PLBART等先前的模型,包括代码总结、将文本转换为代码、代码翻译以及代码美化。同时,在理解任务方面,CodeT5在查找错误和检测代码副本方面同样表现出色。
一些大的软件公司(如SAP、ServiceNow和Salesforce)一直在积极开发自己的代码生成系统。这些公司拥有显著的优势:庞大的客户基础、丰富的资源、广泛的分销网络和值得信赖的品牌。此外,他们拥有庞大的人才库,并且在市场上处于领导地位,这使得他们能够引领潮流和制定行业标准。
通过将新技术与现有产品相结合,这些公司能够提供全面的解决方案,吸引并保留客户。他们已经具备的基础设施和全球业务布局,使得新技术能够迅速扩展,满足当前和未来市场的需求。
以下是一些由这些公司开发的代码生成系统。
Salesforce Code Builder
Salesforce Code Builder使开发者能够轻松定制Salesforce中的客户关系管理功能及其他小工具,支持使用最新的Salesforce语言和框架,可以确保开发过程顺畅。此外,开发者可以直接从开放的VSX市场获取第三方插件。VSX是VS Code扩展的开放平台。更加方便的是,这些插件无须安装或配置就可以立即使用。
SAP Build Code
SAP Build Code专为Java和JavaScript用户设计。此外,它还能够与SAP Joule集成,并支持用户利用SAP的高性能分析设备(High-performance ANalytic Appliance,HANA)等先进的数据库系统。
StarCoder
ServiceNow和Hugging Face合作完成了开源项目StarCoder。StarCoder功能强大,拥有150亿个参数,支持80多种编程语言,并经过了万亿级别的token训练。StarCoder在管理、安全性和合规性方面非常严格,只训练经过授权的代码。
AI辅助编程工具正引领着软件开发领域的一场变革,为开发者带来了一系列创新功能。科技巨头(如Amazon、Google、Meta和Salesforce等)都积极投身于这一变革。与此同时,我们也不应忽视那些小型但富有创新精神的初创公司,它们以精巧的功能和亲民的价格赢得了市场的关注。
开源项目同样在这一领域发挥着重要作用,它们提供了顶尖的AI辅助编程工具,为整个行业的发展贡献力量。
随着AI模型的不断壮大和智能化,它们在代码编写、解释和优化方面的能力也在显著增强。展望未来,我们有理由相信,那些能够成功将AI工具无缝整合到开发者工作流程中的企业,将在市场上占据优势,推动软件开发不断创新和进步。
[8]在Replit中,keystroke是指在键盘上按键,将文本或命令输入Replit编辑器或终端的行为。例如,当你在Python文件中输入“print('Hello, world!')”时,需要多次击键才能输入每个字符和符号。——译者注
评论 0条