AI辅助编程5其他人工智能辅助编程工具
5 其他人工智能辅助编程工具
虽然 GitHub Copilot 是人工智能辅助编程领域的佼佼者,但还有很多其他优秀工具可供使用。开发人员通常会在日常编码中混合使用其中几种工具。值得庆幸的是,这些工具大多沿袭了GitHub Copilot的做法,因此掌握它们并不难。你可以使用注释来启动命令,使用方便的快捷键来获取快速建议,它们还有一个方便的聊天功能。
在本章中,我们将深入学习不同的人工智能编程工具。我们将了解来自亚马逊等大公司的人工智能编程工具,以及一些来自初创公司的人工智能编程工具。此外,我们也不会忽略开源选项,比如Meta的Code Llama,因为它们也绝对值得一看。
5.1 亚马逊的CodeWhisperer
CodeWhisperer就像是 VS Code、PyCharm 和 AWS Lambda等集成开发环境的瑞士军刀扩展。它由经过大量代码训练的LLM提供支持,可理解15种编程语言。亚马逊在添加新语言时非常谨慎,注重准确性和安全性,而不是上市速度。CodeWhisperer 有两个版本:
-
个人版是免费的,只需使用 AWS Builder ID 或亚马逊登录名注册即可。它提供代码建议,跟踪开源代码的来源,并进行安全检查。
-
专业版每个用户每月 19 美元。它拥有个人版的所有功能,还有一些对大公司有用的额外功能。它有一个管理系统,可以管理谁可以访问哪些内容,你甚至可以控制所使用的开源数据类型。
专业版最酷的地方在于定制功能。公司可以调整 CodeWhisperer,根据自己的库、应用程序接口和框架提供更相关的代码建议。这意味着更高的质量和更少的时间浪费在过时的代码上。您最多可以设置八种不同的自定义功能。
让我们深入了解 CodeWhisperer 的两项功能:
- 参考文献跟踪器
关注你的代码与开源列表的对比情况,显示开源代码在发布时使用了哪种许可证。这对遵守法律和知识产权(IP)权利非常有用。参考跟踪可显示项目资源库注释、文件参考和许可证信息。这有助于根据企业的合规性要求,决定是否使用该建议。
- 安全扫描
在你的集成开发环境中运行,检查漏洞,包括十大开放式 Web 应用程序安全项目(OWASP)威胁和常见弱点枚举(CWE)列表。它甚至会遵循加密库的最佳实践。如果安全扫描发现了漏洞,它会提供一些修复方法。这样既能加快速度,又能降低开发成本。考虑到人工智能生成的代码可能会有一些怪异之处,拥有这一内置安全功能无疑是一大利好。
CodeWhisperer 的一个优点是它如何与 AWS 服务相结合。这意味着开发人员不需要成为 AWS 向导,也不需要翻阅大量文档来使用 AWS。下面是几个例子,说明你可以提示它做什么:
-
提示: # 编写一个 Python 函数,将文件上传到 S3 存储桶。
-
提示: # 构建一个 Python Lambda 处理程序来处理来自 Kinesis 流的记录。
-
提示 # 编写一个 Java 方法,按排序键查询 DynamoDB 表中的项目。
-
提示 # 编写一个 bash 脚本,使用 AWS CLI 按实例 ID 停止 EC2 实例。
-
提示: # 在 TypeScript 中使用 AWS CDK 创建带有 PostgreSQL 引擎的 RDS 实例。
亚马逊对使用CodeWhisperer的客户进行了一项研究,结果发现,与未使用该工具的开发人员相比,开发人员成功完成任务的可能性平均提高了27%,完成任务的速度平均提高了58%。
以埃森哲公司的经验为例。在人工智能项目中使用CodeWhisperer,开发时间最多缩短了30%。数据预处理等任务通常既耗时又乏味,而使用CodeWhisperer后,速度和效率都大大提高。只需使用以下提示,开发人员就能大大提高工作效率:
- 提示: # 为 ML 数据创建预处理数据类脚本
考虑一下全球数字工程公司Persistent Systems。通常,新开发人员需要至少四个月的培训才能做好项目准备。然而,有了CodeWhisperer,他们将这一时间缩短到了一个月。
5.2 谷歌面向开发人员的Duet AI
谷歌是Duet AI for Developers 的幕后推手。这款别致的人工智能编程工具支持 VS Code、IntelliJ、PyCharm、GoLand、WebStorm、Cloud Workstations 和 Cloud Shell 编辑器等集成开发环境。此外,它还支持 20 多种编程语言。它还基于 Gemini 构建,Gemini 是谷歌的顶级 LLM。
Duet AI 具有人工智能辅助编程系统通常具有的功能,例如聊天。此外,还有被称为智能操作的快捷方式,即一键式魔术,用于代码解释和单元测试等。
Duet AI 还非常重视安全性。它拥有您需要的所有重型保护和保障措施,如专用端点(专用谷歌访问)、VPC 服务控制和企业级访问控制。
此外,我们还不能忘记治理规则。当您将代码扔进 Duet AI 时,您可以高枕无忧,因为您知道它不会被用于训练任何共享模型或构建产品。您可以完全控制自己的数据和知识产权。它还会标记 Duet AI 认为某些代码可能从资源库中复制的情况。
谷歌 Duet 战略的一个重要部分是建立一个广泛的合作伙伴生态系统。例如,一些合作伙伴在谷歌云上为开发人员提供特定环境的支持。这样可以提供更好的代码建议以及文档和知识源。下面是一些例子:
- Elastic
这是搜索分析领域的大佬。它的 Duet AI 集成让开发人员无需离开开发环境,就能了解如何查询、测试和使用 Elastic 数据。
- HashiCorp
这是云基础设施自动化软件的顶级供应商。它建立了一个系统,可以轻松使用 Terraform 编写基于 HashiCorp 配置语言(HCL)的配置和自动化。
- MongoDB
这是 NoSQL 数据库的领导者。使用 Duet AI,您可以获得最佳实践,并帮助构建应用程序。
- Neo4j
这是图形数据库的王者之一。您可以使用 Duet AI 获得有关 Cypher 查询语言等方面的建议。这样就有可能在复杂的数据集中发现隐藏的关系和模式。
Duet AI 还有一个妙招。它在谷歌云控制台中内置了 Duet AI。要使用它,请单击控制台主屏幕右上方的激活按钮。然后会弹出一个聊天面板然后,您可以输入创建脚本、了解日志或深入研究 JSON 等任务的提示。
聊天甚至可以在 Google 日志资源管理器中使用。如果您发现某个日志给您带来了麻烦,请选中它并单击 "解释此日志 "按钮。日志会直接跳入聊天面板,在那里,你可以要求解释,甚至获得一些修复建议。
Duet AI 的费用为每位用户每月 19 美元。此外还有预付年度费用的承诺。如果您是谷歌云的新用户,还可获得 300 美元的免费信用额度。
人工智能技术服务公司 Turing AI一直在使用 Duet AI。它已将开发团队的工作效率大幅提高了 33%。
5.3 Tabnine
Tabnine 是人工智能辅助编程工具的先驱。一切始于 2013 年,当时 Dror Weiss 和 Eran Yahav 成立了这家公司。他们从 20 世纪 90 年代起就开始从事软件工作,专门从事代码分析和模拟。但是,正是他们对复杂开发工作的亲身体验,让他们恍然大悟: 如果人工智能可以解决这个问题呢?
事实上,人工智能确实帮了大忙。然而,那是在transformer模型时代之前。在别无选择的情况下,创始人卷起袖子,建立了自己的模型。这一历程帮助他们深刻理解了人工智能在软件开发中的作用。快进到最近几年,Tabnine 已经接受了transformer模型。
公司在安全系统方面投入了巨资。其工作原理如下:当你敲击代码时,每个字符都会被标记和加密,然后发送到Tabnine的推理服务器,该服务器可以是云端的,也可以是现场的。Tabnine 不会存储你的数据,任何员工都无法读取。此外,Tabnine 还符合 SOC-2 标准。
在培训模型时,该公司使用具有 MIT、Apache 和 BSD 等许可的开放源代码。这对于热衷于保护知识产权的企业来说非常重要。Tabnine 还重视培训所用代码的透明度。它甚至为开发人员提供了退出可能用于 Tabnine 训练数据集的资源库的方法。这表明该公司在训练生成模型时对授权采取了谨慎的态度。
Tabnine 的定价结构包括三个等级:
- 入门计划是免费的,面向个人用户,提供短代码完成和社区支持等基本功能。
- 专业计划每个用户每月 12 美元。它专为专业开发人员和小型团队设计,包括整行和全功能代码补全等高级功能,以及自然语言到代码的补全,并提供标准支持。
- 企业计划面向寻求全面安全、控制和定制的大型企业。它提供无限用户、私有和自定义 AI 模型、私有部署选项和高级支持。定价请咨询。
Tabnine 拥有庞大的用户群,月活用户超过一百万,每天有数十万人使用它。值得一提的是,它的一些知名客户包括谷歌、亚马逊、Netflix 和 Atlassian 等科技巨头。
5.4 Replit
Replit是一款基于Web的多功能集成开发环境,支持多种编程语言,允许托管应用程序(称为 repls)。其丰富的协作功能与Google Docs类似。Replit 还开发了桌面版,支持 macOS、Windows、Linux、Android 和 iOS。该平台拥有约2300万开发者的庞大社区。
Replit 由阿姆贾德-马萨德(Amjad Masad)、法里斯-马萨德(Faris Masad)和哈亚-奥德(Haya Odeh)于 2016 年创立。Replit 的概念是由 Amjad 在成立前十多年构思的。在此期间,阿姆贾德在雅虎和 Facebook 的工程岗位上磨练了自己的技能,专注于构建开发工具。他还参与创办了 Codecademy,进一步展示了他对创新技术和编码教育的承诺。
Replit 提供三个订阅层级:
-
免费版本提供无限制的公共回复和 10GB 的存储空间。
-
hacker版每个用户每月7美元,提供无限的私人回复。它提供不同级别的内存和存储空间,以满足不同需求。
-
专业版每用户每月20 元,包括黑客计划的所有功能。此外,虽然代码开发的基本系统在两个低级版本中都有提供,但专业版用户可以独享最强大的人工智能模型和高级功能,提供更强大的代码开发体验。
"Replit 营销与设计副总裁 David Hoang 说:"Replit 是一个一体化的软件创建平台。"产品体验旨在减少软件开发过程中的摩擦:开发环境、代码编写和部署到生产。正因为如此,Replit 能够将人工智能集成到代码生成之外。我们的代码完整模型也是由我们自己的语言模型驱动的"。
Replit的LLM经过了多达一万亿个标记的训练,能够理解30种编程语言。在Replit上工作时,你在公共repls中编写的代码(包括按键)可能会被用来进一步训练 Replit AI。如果您希望自己的工作不被用于训练,可以选择将您的回复设为私人回复。值得注意的是,在使用Replit AI时,您对代码的权利不会改变。如 Replit 的许可信息所述,公共repl中的代码自动采用MIT许可。
左上方是文件树和搜索框。中间是编辑器,输出(如控制台)显示在屏幕右侧。左下方是可用工具。如果选择人工智能,聊天功能就会出现在右侧面板中。
如果您选中代码并按下鼠标右键,就会得到这些选项:
- 解释
Replit提供对代码进行有用解释的功能。如果解释不到位,你可以点击重试,让 Replit 再试一次。此外,如果你有具体问题,还可以从 "解释 "框顶部的下拉菜单中选择 "询问聊天 "选项。Replit 还提供其他有用的功能,如询问 Replit 文档、编辑代码和生成代码,以帮助您进行编码。
- 修改(Ctrl+I)
在 Replit 中,您可以通过提示修改代码。例如,如果您高亮显示了二进制搜索的一段代码,您可以编写一个提示,要求将 Python 代码转换为 JavaScript 函数。或者,你也可以要求修改代码,使用递归方法。修改 "功能提供了一种灵活、交互式的方式来试验和完善代码。
为了展示该工具的用户友好性和强大功能,让我们来看看一些有趣的故事:
- 糖尿病 APP
当伦敦的 iOS 开发人员 Marwan Elwaraki 得知弟弟被诊断出患有糖尿病时,他下定决心要开发一款用于监测血糖水平的应用程序。他和妻子萨尔瓦-阿尔-阿拉米(Salwa Al Alami)希望联手开发一款实用而独特的应用程序。"马万说:"在飞机上,我将一个小部件应用程序与血糖跟踪器的应用程序接口连接起来,制作了一个锁屏小部件原型,并能看到我弟弟的血糖。"这比打开应用程序查看最新读数要好得多。
他们增加了发送信息的按钮,并改进了短信功能。然后,他们在iOS应用商店发布了这款公共应用。
虽然Marwan是一名经验丰富的移动前端开发员,但他在Python或后台开发方面经验不足,而Salwa是一名没有编码经验的产品经理。起初,他们使用的是 ChatGPT,但Replit AI带来了巨大的改变。"人工智能工具帮助生成或至少反复检查了几乎所有为我的应用程序编写的后台,"Marwan 说。"我听说过开发人员的工作效率大幅提高的故事,我可以诚实地证明这一点。
- 从黑客马拉松到初创公司
曾在微软、Snapchat 和 Waymo 担任产品经理的 Priyaa Kalyanaraman 令人印象深刻。她参加了 Craft Ventures 的人工智能黑客马拉松,利用 Replit 人工智能开发了一款应用程序,旨在简化内容创作并为其增添乐趣。她的努力得到了丰厚的回报,获得了 10,000 美元的大奖。她利用自己在产品管理方面的专业知识,精心准备了详细的规格说明,并对应用程序进行了合理的结构设计。这个获奖应用程序后来成为她的创业公司 Lica 的基础,并成功获得了种子轮投资。
5.5 CodeGPT
CodeGPT是专为 VS Code 设计的扩展,提供多种定价选项。从免费计划到高级计划,每个用户每月的费用为 49.99 美元。此外,还提供 10 天免费试用期,供希望在订购前测试服务的用户使用。
要设置 CodeGPT 扩展,首先点击 "文件"。然后导航至 "首选项 "并选择 "设置"。这将打开 "设置 "窗口。在左侧点击扩展,然后选择 CodeGPT。
CodeGPT 的有趣之处在于它能与一系列 LLM 集成。这包括 OpenAI、Cohere、AI21 和 Anthropic 等公司的模型。在 Hugging Face 上设置一个 API 账户,就可以访问大量开源平台,进一步扩展了该工具的多功能性。
选择模型后,您可以根据以下因素对其进行配置:
-
提示和响应的最大令牌
-
温度
-
窗口内存(聊天中过去线程的数量)
CodeGPT 另一个有趣的功能是它的 API,这对于聊天机器人、虚拟助手或任何其他需要理解和生成类人文本的系统等应用都很方便。其 RESTful API 设计确保了与各种平台的广泛兼容性和直接集成。此外,CodeGPT 还提供 Python 和 JavaScript SDK,增加了实施的灵活性。该应用程序接口是改变编码过程的更广泛计划的一部分,旨在为各种开发项目提供先进的人工智能工具。
5.6 cody
2013 年,Quinn Slack 和 Beyang Liu 共同创立了 Sourcegraph,旨在开发代码搜索工具。Beyang 的灵感来自于他在谷歌的工作经历,在那里他亲眼目睹了公司内部平台在代码智能和洞察力方面的优势,尤其是在处理大型代码库方面。
Sourcegraph 的首要目标是创建先进的工具来处理 "大型代码"。复杂程度是这一领域的重大挑战。Sourcegraph 的一项调查强调了这一问题:约 77% 的开发人员表示,他们的代码库在三年内增加了五倍。更有甚者,72% 的人表示担心,大代码规模的激增可能会对公司的创新能力和竞争力构成真正的威胁。
人工智能在 Sourcegraph 的战略中扮演着至关重要的角色,该公司开发了一套名为 Cody 的人工智能驱动代码生成系统。Cody 依赖于 Anthropic 和 OpenAI 的 LLM。此外,还使用了 Starcoder。
"我们利用我们的搜索能力来开发这个工具,"Liu 说。"要知道,开发人员 80% 的时间都花在了阅读和理解代码上,而不是创建代码。因此,Cody 可以扫描整个代码库。但我们也能轻松引入其他库和框架。我们看到的是更好的结果"。
以下是该平台可以使用的一些提示:
-
提示: 该资源库的结构如何?
-
提示: 这个文件是做什么的?
-
提示 X 组件定义在哪里?
在定价方面,Sourcegraph 提供免费产品和两个付费层级:
-
免费版包括代码自动完成、聊天和上下文感知等多种功能。
-
专业版每个用户每月收费 9 美元。使用专业版,您可以获得
- 无限制的自动完成、消息和命令
- 对较大的代码库进行个性化处理
- 多种聊天 LLM 选择
- 更高级别的支持
-
企业版专为满足大型企业的需求而定制。每个用户每月的费用为 19 美元,提供以下功能
- 用户管理
- 单租户部署
- 审计日志
- 集合组织使用
- 测试阶段的每日费率限制
- 网络和应用程序接口访问
- 可配置的 LLM
Cody的全栈开发人员和开源贡献者Deepak Kumar说: "我最喜欢的功能是聊天和命令。我使用聊天工具来回答任何与编码相关的问题、启动项目的想法或修复错误。命令是预定义的自定义提示,这很有帮助,因为它们可以帮助我完成编写文档和添加测试等临时任务。"
2021年7月,Sourcegraph宣布以26.25亿美元的估值获得1.25亿美元的 D 轮融资。投资者包括 Andreessen Horowitz、Insight Partners 和 Geodesic Capital。
5.7 CodeWP
WordPress 是一种非常流行的开源内容管理系统(CMS),以其简单性和多功能性以及丰富的主题和插件选择而闻名。它最初是作为博客平台推出的,现在已扩展到各种类型的网站,包括为电子商务、作品集展示和一般业务而优化的网站。它的吸引力在于其用户友好的界面和可定制的选项。据 W3Techs 报告,互联网上约有 45.8% 的网站使用 WordPress 平台。
人工智能辅助编程为 WordPress 的开发带来了巨大的机遇,而 CodeWP 正是利用了这一潜力。该公司由 James LePage 创立,他在高中时代创建了一家 WordPress 代理公司。虽然公司业务增长迅速,但劳动强度很大。人工智能辅助编程技术的引入大大提高了工作效率。詹姆斯对 WordPress 开发中常见用例的深刻理解,进一步提高了人工智能的效率,这也是他的一大收获。
CodeWP 提供基于网络的平台,有免费版本和两个高级选项。两种高级计划的年度订阅折扣最高可达 33%:
- 专业计划每用户每月 18 美元,提供额外的人工智能事务、项目和支持。
- 对于更大规模的需求,还有机构计划,每用户每月 48 美元。该计划面向专业网站开发和营销公司,提供无限项目和协作功能。
访问https://codewp.ai/创建账户。点击 "创建新账户",然后选择 "新建代码片段 "来创建代码,如果只是有问题,则选择 "新建聊天"。
屏幕左侧有用于存储片段、跟踪对话和列出项目的选项。中间是编辑器,里面有你正在处理的文件内容。如果要创建新文件,可以点击 "新建文件"。右侧是聊天功能。
下面是一些提示示例:
- 提示: 注册一个名为 "book "的自定义帖子类型,标签为 "Books"。
- 提示: 使用 WP_Widget 类创建一个名为 "我的小部件 "的 WordPress 小部件。
- 提示 为 register_activation_hook 函数创建一个自定义插件激活钩子。
CodeWP 扩展了对 WordPress 生态系统中各种关键组件的支持。这包括与 WooCommerce、WPSimplePay、Gravity Forms、SearchWP 和 Contact Form 7 等主要工具的兼容性。
CodeWP具有实时预览选项,可以即时查看代码的运行情况,让测试和调试变得轻而易举。此外,在开发 WordPress 项目时,CodeWP 还能简化部署过程。它的集成工具可让您轻松地将代码传输到 WordPress 网站,从而更高效地在实际环境中应用和测试代码。
5.7 Warp
命令行界面始于 20 世纪 60 年代,与 Multics 和 Unix 等操作系统一起成长起来。虽然多年来出现了华丽的图形界面,但 CLI 在很大程度上仍保持了其本色。它的宗旨就是简单:用纯文本输入命令,然后返回所需的内容,没有任何附加功能。
尽管 CLI 非常简单,但其普及程度却令人难以置信。它们对于管理云系统、处理计算机上的文件和程序以及建立流畅的工作流程至关重要。它们擅长自动执行任务、处理数据、管理网络和开发软件。
掌握 CLI 可以大大加快工作进度,使您的工作更加精确。一个突出的好处是,你可以混合搭配不同的命令来处理复杂的任务。此外,由于你可以对这些命令行进行编程,你就有了更多的空间来根据自己的喜好进行调整并自动执行任务。这意味着开发人员可以根据自己的需要进行设置,使整个工作流程更顺畅、更高效。
虽然 CLI 功能强大,但并不完美。一个很大的问题是,它们不适合协作,因此会影响工作效率和团队合作。一旦关闭终端会话,就会丢失所有内容。命令行通常也会卡在一台机器上,在不同设备间切换非常麻烦。此外,终端会让人望而生畏,尤其是对于棘手的任务。而且不要忘了,对很多人来说,熟练掌握 CLI 命令及其语法并不是一件容易的事。
因此,该领域确实存在创新空间。Warp 就是一家引领创新的初创公司。
公司创始人兼首席执行官扎克-劳埃德(Zach Lloyd)于 2020 年创办了这家公司。在此之前,他曾在谷歌担任谷歌工作表的首席工程师。"劳埃德说:"我做了 20 多年的开发人员。"虽然 CLI 功能强大且非常有用,但仍有很多需要改进的地方。
Warp 是用 Rust 构建的,这是一种以快速高效著称的编程语言。Warp 不拘泥于常见的 JavaScript,而是利用 Rust 的优势,运行起来几乎就像一个安装在电脑上的应用程序,只不过是直接在浏览器中运行而已。这种与 Rust 的巧妙结合意味着使用 Warp 的人都能获得更流畅、更快速的体验,使整个应用程序的交互变得更好。
把 Warp 想象成一个类固醇终端。它拥有先进的文本输入功能,如选择、光标定位和完成菜单,允许用户无缝浏览命令历史记录。这消除了滚动浏览长文本的麻烦。此外,Warp 还能让复制输出变得轻而易举,只需轻轻点击即可。
在 Warp 中,每条命令及其输出都形成一个独特的块。你可以毫不费力地将鼠标悬停在这些块上,重温过去的命令。选择一个区块,就可以使用 Warp AI,通过右键菜单访问,它提供了错误的解释和解决方案。这与传统的 CLI 形成了鲜明对比,传统 CLI 提供的指导非常有限,主要依赖用户的专业知识来解读错误信息和排除故障。
Warp AI 还带有聊天功能。使用时,以 # 开始提示。例如,假设你想知道以下内容:
- 提示: # 如何使用 grep 在递归搜索中排除目录?
Warp 会给出这个问题的答案,你可以把它复制到终端中。
请记住,劳埃德是 Copilot 的忠实用户,他在自己的开发过程中使用了 Copilot。"他说:"我在使用 Warp 的同时也使用 Copilot。"它们配合得非常好。
Instagram 的联合创始人迈克-克里格(Mike Krieger)也是 Warp 的忠实粉丝。他说:"我每天上班都在使用 Warp。我最喜欢的是它的速度:无论是运行速度还是使用时的感觉,尤其是出色的超前键入和搜索功能。Warp 将终端带入了现代,我迫不及待地想看到他们将 Warp 带到何处。
Warp 可在 Mac、Linux 和 Windows 上使用。此外还有网络版。Warp 的定价分为三个等级:
- 免费版本每天最多提供20个人工智能请求。
- 团队版的使用范围更广,每个用户每月 12 美元,每天最多可提供 100 个人工智能请求。
- 有特殊要求的大型企业可以考虑企业版,根据客户需求定制价格。
5.8 Bito AI
2006年,Amar Goel和Anand Das创办了在线广告公司PubMatic,并于2020年上市。在经营PubMatic的过程中,他们认识到人工智能在提高编码效率方面的潜力,从而萌生了创建 Bito AI 的想法。曾在微软和安永担任产品负责人的穆克什-阿加瓦尔(Mukesh Agarwal)加入了他们的创始团队。
Bito具备多语言功能,支持20种语言,包括独特的混合语言,如印地语和英语的结合体Hinglish。
该工具具备几个显著的功能。其一是可以为常用的编码结构创建自定义提示模板,从而简化开发流程。此外,该平台还包括安全和性能检查,提供优化建议,以提高代码的安全性和效率。
Bito拥有包含约24万个token的庞大上下文窗口,从而增强了其理解和分析能力。此外,它还使用用户机器本地的向量数据库。这使系统能够有效处理大型代码库,确保生成更相关、更准确的结果。这一功能大大提高了该工具管理大型编码项目的效率和有效性。
它还能很好地处理内存泄漏。当程序占用了电脑的部分内存,却又忘记归还时,就会发生这种情况。如果这种情况持续发生,会让人非常头疼。随着程序的不断运行,内存会不断泄漏,从而侵蚀你的可用内存总量。这会导致运行速度变慢,因为物理内存不够用,系统会开始使用交换空间。如果内存泄漏情况非常严重,甚至会导致程序或整个电脑因内存耗尽而崩溃。
内存泄漏的发现和修复都很棘手。它们通常不会马上造成问题,可能只是在程序运行一段时间后才开始出现。这种延迟使得找出并解决它们变得更加困难。但Bito可以嗅出潜在的内存泄漏。你只需使用"在 IDE 中插入代码选中"(Insert Code Selected in IDE)选项,并插入如下提示:
- 提示: 找出代码中的问题。
你猜怎么着?它不仅会标记出问题,还会给出一些修复建议。
在隐私方面,Bito 确保不会存储任何实际代码。不过,它确实会保存沿途生成的元数据。
Bito 有两个版本:
-
免费版本面向个人用户。
-
付费版本每个用户每月15美元。它包含的功能包括无限制的人工智能代码完成和访问24万个token的上下文窗口,从而增强了整体编码体验。
根据Bito的内部分析,该工具的用户报告说,他们的工作效率提高了31%。他们每月还使用该工具近200次。目前,该平台拥有约 100,000 名用户。
5.9 Cursor
Anysphere是Cursor的开发商。该公司无疑对其有着大胆的设想:
在未来几年里,我们希望打造一个比以往任何时候都更有帮助、更令人愉悦、更有趣的代码编辑器。Cursor应该是一个不可能写出错误的地方。一个只需50行伪代码就能编写出2000行PR的编辑器。一个可以立即解答任何代码库问题的工具。甚至是一个源代码本身开始融化的界面...
与此同时,仍然相当强大。它还吸引了OpenAI 等投资者的兴趣。2023年10月,该公司成功融资800万美元,总融资额达到1100万美元。
Cursor提供 GPT-4 和 GPT-3.5 两种选择,但它也通过专有模型增强了自己的能力。这些模型包括14亿个向量和15万个代码库。此外,该平台还采用了Merkle树等先进的人工智能技术,进一步提高了效率。
Cursor 是 VS Code 的一个分叉,兼容 Windows、Mac 和 Linux。这是一个巨大的优势,因为它让你免去了学习新集成开发环境的麻烦。当你下载 Cursor 时,它可以方便地导入你现有的 VS Code 扩展。您可以直接在 CLI 中利用其人工智能功能,将高级功能无缝集成到您熟悉的编码环境中。
例如,在聊天区,你可以轻松导入文档并向它提问。下面是一个提示示例:
- 提示: @python docs
你也可以使用 @ 来处理特定文件。你可以输入以下内容
- 提示: @the_app.ts 是做什么的?@the_app.ts 是做什么的?
Cursor 可以直接在终端中进行调试。它的人工智能会筛选你的文件,并参与一个逻辑过程来定位并尝试解决问题,从而简化故障排除体验。
杰弗里-拜尔斯(Jeffrey Biles)是一名全栈网络开发人员,也是 Cursor 的早期用户。他说:
我非常喜欢通过按键将应用程序上下文快速加载到人工智能中。它在回答问题、记忆语法、重构小段代码和编写模板时非常有效。不过,当要求它理解分布在多个文件中的大型数据模型时,它就达到了极限。不过,随着模型变得越来越好,比如使用更大的上下文窗口,它的性能也会越来越好。
Tosh Velaga 是 Cursor 的另一位用户。他是一名软件工程师,也是多家人工智能公司的创始人,如 Typeblock 和 STBL(生产 Stable Diffusion)。他认为
我非常喜欢的一个功能是Command+L快捷键,可以询问有关代码的问题。当我在一个新的代码库中使用一种我没有经验的后端语言时,这个功能超级有用。这项功能帮助我更快地掌握了代码。我认为还有一个好处是,你可以携带自己的 API 密钥,这样就可以节省成本,在 GPT-3.5 和 GPT-4 之间切换。
参考资料
- 软件测试精品书籍文档下载持续更新 https://github.com/china-testing/python-testing-examples 请点赞,谢谢!
- 本文涉及的python测试开发库 谢谢点赞! https://github.com/china-testing/python_cn_resouce
- python精品书籍下载 https://github.com/china-testing/python_cn_resouce/blob/main/python_good_books.md
- Linux精品书籍下载 https://www.cnblogs.com/testing-/p/17438558.html
5.10 Code Llama
越来越多的开源项目专注于人工智能辅助开发,这在学术界也是一个热门话题。Meta是这一领域的佼佼者之一。它的Code Llama系统自2023年8月推出以来,一直在掀起波澜。
Code Llama建立在LLaMA 2 LLM的基础上,LLaMA 2 LLM经过了惊人的2万亿个词库和4096个词库的上下文长度的训练。它包括经过微调的模型,这些模型在超过一百万个人类注释的训练下得到了加强,使其更加有效和可靠。
LLaMA 2 有一些特殊版本,如 LLaMA 2-Chat,它是为聊天应用量身定制的,在关键基准上优于其他开源聊天模型,尤其是在帮助性和安全性方面。此外,它还与 Hugging Face 等平台集成,并与微软和亚马逊等公司建立了重要的合作关系,以部署云服务。
Code Llama 功能多样,支持 Python、C++、Java、PHP、JavaScript、C# 和 Bash 等大多数大型语言。它有三种大小的模型,分别有 70 亿、130 亿和 340 亿个参数。它们都是在 5000 亿个大量代码中训练出来的。7B 和 13B 模型的有趣之处在于,它们具有中间填充能力,因此可以将代码插入现有脚本中。这让它们在代码补全等任务中大显身手。7B 模型可以仅在单 GPU 上运行,通常速度更快。但正如你所期望的那样,34B 型号的性能更强大。
Code Llama 的功能超出了 LLaMA 2 基本型号的范围。它的所有型号都能在上下文中处理多达 100,000 个标记。这对于编写较长程序的代码来说非常有用。更大的上下文窗口也使其成为调试的好帮手。
Code Llama 有几个专门版本。首先是Python版本,该版本通过使用 1,000 亿字节的大量代码而变得更加锐利。然后是指令版本。该版本经过了额外的自然语言训练,以提高自然语言应用的结果。
Code Llama 34B 的表现令人印象深刻。它在 HumanEval 中获得了 53.7% 的高分,在 MBPP(最基本的 Python 编程)中获得了 56.2% 的高分。这些成绩都优于其他开源项目,Code Llama 的表现与 ChatGPT 不相上下。此外,Code Llama 还通过了安全测试。Meta 指出,它的响应甚至比 ChatGPT 更安全。
5.11 其他开源模型
在代码生成的开源领域也有一些很酷的创新。让我们来看看其中一些杰出的平台。
5.11.1 StableCode
Stable AI 是广受欢迎的文本到图像系统 Stable Diffusion 的幕后公司,该公司推出了 StableCode。StableCode 以开源项目 BigCode 为基础进行训练,BigCode 是 Hugging Face 和 ServiceNow Research 的合资企业。BigCode 组建了一个名为 "堆栈"(The Stack)的数据集,这是一个 6.4TB 的海量数据集,其中包含独一无二、可免费使用的 GitHub 代码,非常适合用于训练人工智能模型。
https://github.com/Stability-AI/StableCode
StableCode 有自己独特的技术,它使用旋转位置嵌入(RoPE)而不是 ALiBi(线性偏差注意)方法。StableCode 已经过大幅微调,包括清理数据。它用途广泛,支持 Python、Go、Java、JavaScript、C、Markdown 和 C++ 等语言。
StableCode 有三个版本可供查看:
- StableCode-Completion-Alpha-3B-4k
这是一个只有解码器的模型,拥有30亿个参数,非常适合处理多种语言和4000个上下文token长度。
- StableCode-Instruct-Alpha-3B
同样是 30 亿参数模型,该版本针对指令进行了调整。
- StableCode-Completion-Alpha-3B
同样具有30亿个参数,该版本在完成大量代码时表现出色,可处理多达 16,000 个标记。
5.11.2 AlphaCode
谷歌旗下的DeepMind开发了AlphaCode人工智能系统。它在代码竞赛中表现出色,在Codeforces(一个举办编程竞赛的网站)举办的竞赛中,它的得分排在前54%。AlphaCode 能够处理各种艰巨的任务,这些任务需要批判性思维、逻辑、算法、编码技能和对自然语言的理解。这个系统的能力甚至得到了《科学》杂志的赞誉。
代码竞赛通常涉及棘手的算法和烧脑的理论问题,这与日常的编程任务有些不同。就拿 AlphaCode 要应对的这个测试来说,这是一个名为 Backspace 的难题。参赛者必须在 s 和 t 两个字符串上做文章,并使用退格键将 s 改为 t。它还需要提出聪明的算法。这展示了竞技编程所需的高级问题解决技能。
DeepMind 的目标是使用 AlphaCode 实现代码生成的完全自动化,这标志着人工智能驱动的编码技术取得了重大进展。
5.11.3 PolyCoder
PolyCoder尤其擅长加快C语言的编程速度,因此对游戏开发人员很有吸引力。PolyCoder还擅长总结多种语言的代码。由于在不同的数据集上进行了训练,它善于发现C、C++、Java、Python和JavaScript等多种编程语言中的常见模式和结构。
PolyCoder的训练数据集达249 GB,涵盖12种不同的编程语言。此外,它还包含27亿个参数。
5.11.4 CodeT5
CodeT5 采用一体化预训练编码器-解码器模型。这使它能胜任不同的编码任务,如发现代码中的错误或查找代码克隆,以及新结构,无论是将编程语言转化为纯英文,还是反之亦然,甚至是在编程语言之间切换。
它的设计包括一些特殊技巧,通过充分利用编程语言的深层结构,提高了正确理解代码和输出代码的能力。
CodeT5 在 CodeXGLUE(CODE 通用语言理解评估基准)的 14 项不同挑战中大显身手。它在所有生成任务(如总结代码、将文本转化为代码、在代码之间进行翻译以及润色代码)中都超越了 PLBART 等旧型号。在理解任务方面,CodeT5 在查找错误和识别山寨代码方面也同样出色。
5.11.4 企业软件公司
SAP、ServiceNow 和 Salesforce 等大型软件公司一直在开发自己的代码生成系统。它们拥有巨大的优势:庞大的客户群、巨大的资源、广泛的分销网络和值得信赖的品牌。庞大的人才库也是一大助力。此外,它们在市场上的规模足以引领潮流和制定标准。
将新技术与现有产品相结合,意味着它们可以提供完整的解决方案,让客户流连忘返。由于它们已经拥有基础设施和全球业务,因此可以快速扩展这些新技术,满足现在和未来的市场需求。
以下是这些公司的一些代码生成系统:
-
Salesforce代码生成器
它可以让开发人员轻松调整客户关系管理和 Salesforce 中的其他零碎功能。它可以帮助你使用最新的 Salesforce 语言和框架来完成工作。此外,你还可以从开放式 VSX 市场(这是一个 VS 代码扩展的开放式大操场)获取第三方附加组件。最棒的是什么?你不需要安装或设置这些功能。它们一开始就可以使用。 -
SAP 构建代码
这是专为 Java 和 JavaScript 用户设计的。此外,它还与 SAP Joule(SAP 自己的人工智能小伙伴)挂钩。你还可以利用一些强大的数据库系统,如 SAP 的 HANA(高性能分析设备)。 -
StarCoder LLM
ServiceNow 和 Hugging Face 合作创建了这个开源项目。该项目功能强大,拥有 150 亿个参数,使用 80 多种编程语言对多达万亿个令牌进行训练。他们在管理、安全和遵守规则等方面严格把关,只对获得许可的代码进行培训。
5.12 小结
人工智能辅助编程工具为开发人员带来了新的变化,提供了一些很酷的新能力。亚马逊、谷歌、Meta 和 Salesforce 等大公司都在关注这一领域。我们也不要忘记那些小型的创新型初创企业,它们以其出色的功能和低廉的价格吸引了众多关注。开源项目也正在通过提供一流的人工智能编码工具掀起波澜。
随着这些人工智能模型变得越来越大、越来越智能,它们在编写、解释和调整代码方面也变得越来越出色。展望未来,成功的企业将使这些工具顺利融入开发人员的工作中。