草庐IT

谷歌Bard加入AI编程功能 向微软GitHub Copilot和亚马逊CodeWhisperer看齐

极客AI 2024-01-02 原文

谷歌在其生成式AI产品中增加了代码生成和调试功能,并命名为Bard AI,宣称其能够帮助开发人员采用20种编程语言编写和调试代码。这意味着,谷歌这一产品将与微软的GitHub Copilot和亚马逊的CodeWhisperer展开竞争。

谷歌的研究部门Google Research产品经理Paige Bailey在一篇博客文章中写道,“从现在开始,Bard可以帮助用户完成编程和软件开发,包括代码生成、调试和代码解释。”

Bailey指出,Bard的编程和软件开发辅助能力涵盖20多种编程语言,包括C++、Go、Java、JavaScript、Python和Typescript。生成式AI现在也能够帮助开发人员为谷歌Sheets编写功能。

该公司表示,除了生成代码之外,Bard还可以帮助向开发人员解释代码片段。对于试图学习一门新的编程语言的开发人员来说,这可以帮助他们理解特定代码块的输出。

分析师和专家声称,将生成式AI添加到低代码和无代码平台将有助于开发人员最大限度地利用代码解释功能,并促进新编程语言的学习。一些低代码的供应商(例如微软和Mendix)声称正在为他们的产品添加类似的功能。

Bard甚至可以调试它生成的代码片段

谷歌表示,Bard可以帮助调试代码,甚至包括它自己生成的代码片段。

Bailey介绍说:“如果Bard给了用户一个错误信息或代码,没有达到其预期,用户只要告诉Bard,‘这个代码不能运行,请修复它’,Bard可以帮助调试它。”

Bard还确保它引用的是源代码,以防生成式AI引擎详细地引用了现成的开源项目。相比之下,微软的GitHub Copilot在从这些项目复制代码时不会注重这一点,导致该公司就Copilot AI编码助手提起集体诉讼。

谷歌警告称Bard仍然是试验性产品

不过,谷歌警告称,Bard现在仍处于试验阶段,有时可能会在展示时提供不准确、误导性或虚假的信息。

Bailey在博客文章中说:“在编码方面,Bard可能会给用户提供无法产生预期输出的代码,或者为其提供不优化或不完整的代码。在采用Bard之前,一定要仔细检查Bard的回复,仔细测试和审查代码中的错误、缺陷和漏洞。”

在包括微软、亚马逊和谷歌在内的大型科技公司在生成式AI领域争夺领先地位之际,Bard推出了新功能(包括将Python代码导出到Google Colab的能力)。

在开发领域,GitHub Copilot和Amazon CodeWhisperer似乎拥有先发优势,它们较早发布了代码生成功能。

GitHub Copilot使用OpenAI的GPT-3引擎提供生成式AI功能,GitHub已经发布了下一代Copilot X,并希望在该软件工具中添加更高级的基于生成式AI的功能。

CopilotX将能够提取请求、命令行和文档来回答有关项目的问题。

有关谷歌Bard加入AI编程功能 向微软GitHub Copilot和亚马逊CodeWhisperer看齐的更多相关文章

  1. ruby - 如何离开加入Arel? - 2

    Arel3.0.2提供了两个类来指定连接类型:Arel::Nodes::InnerJoin和Arel::Nodes::OuterJoin并使用InnerJoin默认。foo=Arel::Table.new('foo')bar=Arel::Table.new('bar')foo.join(bar,Arel::Nodes::InnerJoin)#innerfoo.join(bar,Arel::Nodes::OuterJoin)#outerfoo.join(bar,???)#left如果要生成左连接,如何连接两个表? 最佳答案 你可以使用

  2. ruby-on-rails - Cucumber 是否只是 rspec 的包装器以帮助将测试组织成功能? - 2

    只是想确保我理解了事情。据我目前收集到的信息,Cucumber只是一个“包装器”,或者是一种通过将事物分类为功能和步骤来组织测试的好方法,其中实际的单元测试处于步骤阶段。它允许您根据事物的工作方式组织您的测试。对吗? 最佳答案 有点。它是一种组织测试的方式,但不仅如此。它的行为就像最初的Rails集成测试一样,但更易于使用。这里最大的好处是您的session在整个Scenario中保持透明。关于Cucumber的另一件事是您(应该)从使用您的代码的浏览器或客户端的角度进行测试。如果您愿意,您可以使用步骤来构建对象和设置状态,但通常您

  3. ruby-on-rails - rails 功能测试 - 2

    在Rails自动生成的功能测试(test/functional/products_controller_test.rb)中,我看到以下代码:classProductsControllerTest我的问题是:方法调用products()在哪里/如何定义?products(:one)到底是什么意思?看代码,大概意思是“创建一个产品”,但是它是如何工作的呢?注意我是Ruby/Rails的新手,如果这些是微不足道的问题,我深表歉意。 最佳答案 如果您查看test/fixtures文件夹,您会看到一个products.yml文件。这是在您创建

  4. ruby-on-rails - 使用 gmaps4rails 动态加载谷歌地图标记 - 2

    如何只加载map边界内的标记gmaps4rails?当然,在平移和/或缩放后加载新的。与此直接相关的是,如何获取map的当前边界和缩放级别? 最佳答案 我是这样做的,我只在用户完成平移或缩放后替换标记,如果您需要不同的行为,请使用不同的事件监听器:在你看来(index.html.erb):{"zoom"=>15,"auto_adjust"=>false,"detect_location"=>true,"center_on_user"=>true}},false,true)%>在View的底部添加:functiongmaps4rail

  5. ruby-on-rails - 功能测试 Authlogic? - 2

    在我的一些Controller中,我有一个before_filter检查用户是否登录?用于CRUD操作。application.rbdeflogged_in?unlesscurrent_userredirect_toroot_pathendendprivatedefcurrent_user_sessionreturn@current_user_sessionifdefined?(@current_user_session)@current_user_session=UserSession.findenddefcurrent_userreturn@current_userifdefine

  6. ruby - Ruby 中允许 "p *1..10"打印出数字 1-10 的功能是什么? - 2

    require'pp'p*1..10这会打印出1-10。为什么这么简洁?您还可以用它做什么? 最佳答案 它是“splat”运算符。它可用于分解数组和范围并在赋值期间收集值。这里收集赋值中的值:a,*b=1,2,3,4=>a=1b=[2,3,4]在此示例中,内部数组([3,4])中的值被分解并收集到包含数组中:a=[1,2,*[3,4]]=>a=[1,2,3,4]您可以定义将参数收集到数组中的函数:deffoo(*args)pargsendfoo(1,2,"three",4)=>[1,2,"three",4]

  7. ruby - 现代计算机的功能是否不足以处理字符串而无需使用符号(在 Ruby 中) - 2

    我读过的关于Ruby符号的每一篇文章都在谈论符号相对于字符串的效率。但是,这不是1970年代。我的电脑可以处理一些额外的垃圾收集。我错了吗?我拥有最新最好的奔腾双核处理器和4GBRAM。我认为这应该足以处理一些字符串。 最佳答案 您的计算机可能能够处理“一点点额外的垃圾收集”,但是当“一点点”发生在运行数百万次的内部循环中时呢?如果它在内存有限的嵌入式系统上运行呢?有很多地方你可以随意使用字符串,但在某些地方你不能。这完全取决于上下文。 关于ruby-现代计算机的功能是否不足以处理字符串

  8. ruby - 如何在 Cucumber 的功能名称中使用空格 - 2

    我正在使用Windows并尝试运行一个现有的功能包,该功能包最初是在MacOS上构建的,这允许他们通过使用带空格的"\"来解决问题。我正在使用Ruby2.2.3和Cucumber。功能名称包含空格,我无法更改它。我尝试使用""和''来绕过空白,但每次都有同样的问题。这是问题的一个例子。如果我运行:cucumberfeatures/'Namecontainingwhitespaces.feature'它工作正常。但是当我运行时:cucumber-pmy_profile和cucumber.yml包含:my_profile:features/'Namecontainingwhitespace

  9. ruby - 如何测试在运行之间提供功能的 Ruby 脚本? - 2

    单元测试的好方法是测试脚本在执行之间保持正确数据的能力——在使用Ctrl-C终止脚本然后重新运行之后?是否有针对执行类似操作的现有模块或脚本的任何测试可以针对最佳实践进行审查? 最佳答案 像http://avdi.org/devblog/2010/07/19/greenletters-painless-automation-and-testing-for-command-line-applications/一样使用库或者期望、运行、终止并重新运行您的程序,并检查它是否运行正确。好的做法是将程序设计为独立的模块,每个模块都经过良好测试

  10. ruby - 从谷歌开发者网站下载后,client_secret.json 为空 - 2

    我正在尝试从googleAPI下载client_secret.json。我正在执行https://developers.google.com/gmail/api/quickstart/ruby中列出的步骤.使用此向导在GoogleDevelopersConsole中创建或选择项目并自动启用API。在左侧边栏中,选择同意屏幕。选择电子邮件地址并输入产品名称(如果尚未设置),然后单击“保存”按钮。在左侧边栏中,选择凭据并点击创建新客户端ID。选择应用程序类型已安装应用程序,已安装应用程序类型为其他,然后单击“创建客户端ID”按钮。点击新客户端ID下的下载JSON按钮。将此文件移动到您的工作

随机推荐