人工智能编码助手可以帮助开发人员编写代码,还可以分析、解释、调试、重构和转换代码,从而使开发人员专注于高价值的工作,提升开发人员的生产力和体验。
随着大模型技术的不断成熟,人工智能编码助手市场随之快速发展,企业必须了解并充分利用人工智能编码助手的优势,同时降低应用风险。
《人工智能编码助手市场指南》报告通过定义人工智能编码助手市场、分析市场现状和未来发展趋势、介绍人工智能编码助手典型用例并为企业试点和评估供应商提供一套可行流程,旨在为企业应用人工智能编码助手提供参考。
01
市场定义
人工智能编码助手是在大模型的基础上使用数百万行优秀的代码数据(包括开源代码库、企业私有代码库等)预训练而成,帮助开发人员编写代码。开发人员使用自然语言和代码片段相组合的方式提示编码助手生成新代码。人工智能编码助手还可以分析、解释、调试和重构代码;生成文档;以及在不同的编程语言之间进行转换。人工智能编码助手通常支持多种编程语言和自然语言,并且可以集成到编程环境中,如代码编辑器、命令行终端和聊天界面等。
国外人工智能编码助手产品起步较早,2020年6月,随着OpenAI发布GPT3.0, GitHub上的开发工程师就开始研究如何借助GPT的能力自动生成代码。2021年6月,微软和OpenAI共同推出人工智能编码工具GitHub Copilot,通过学习大量源代码和开发人员的编程习惯,可以自动帮助工程师完成代码编写、提供代码建议和代码补全等功能。目前,Github Copilot被认为是目前智能研发领域最为完善的产品之一。
国内人工智能编码助手产品的起步较晚,随着2023年初大模型的爆火,国内头部大模型厂商逐渐推出自己的人工智能编码助手,如阿里基于通义千问的通义灵码、科大讯飞基于讯飞星火的 iFlyCode、百度基于文心一言的 Comate。
02
人工智能编码助手典型用例
(1)代码补全
代码补全是人工智能编码助手最基础的核心功能之一,开发人员使用代码编辑器提供的代码补全功能来提高他们完成编程任务的效率。在开发人员输入时,代码编辑器会自动发现可能的代码,开发人员只需一个按键,代码编辑器就能帮助他们补全代码。
人工智能编码助手通常通过以下方式增强代码补全能力:
• 与开发环境的集成:AI编码助手可以直接集成到开发人员使用的代码编辑器中,这种无缝集成可实现实时的代码补全;
• 预测能力:人工智能编码助手不仅能查看光标上方的代码和注释,还能扫描后面的代码行以了解上下文。这种上下文意识使人工智能编码助手能够预测复杂的代码结构,如循环和函数;
• 相关性和准确性:人工智能编码助手擅长从开源数据和专有数据中找出它们以前见过的模式,这些模式是它们训练集的一部分。人工智能编码助手尤其擅长预测模板和重复代码;
• 开发人员体验:人工智能编码助手使开发人员从琐碎的工作中解放出来,使他们能够专注于编码的创造性和复杂性方面,从而提高开发人员的工作体验;
• 语义理解:人工智能编码助手能够理解代码文件上下文中变量和方法的语义和命名规则;
• 上下文感知:除了关注当前的代码文件外,人工智能编码助手还可以使用开发人员在代码编辑器中打开的其他文件的上下文,以及其他可获取的元数据,来改善它们的预测。基于企业代码和文档对基础模型进行过提示或微调的产品,可以进一步提高代码建议的相关性,并调用开发人员自己都不知道的企业代码和库。
除了上述之外,人工智能编码助手还能生成注释和文档字符串(docstrings),解释方法的目的和功能,可以帮助开发人员增加有用注释,并创建解释方法的文档字符串。
(2)自然语言生成代码
在代码大模型的支持下,人工智能编码助手中的对话聊天界面可以让开发人员通过自然语言对话的方式提示人工智能编码助手,生成新的代码块甚至是整个程序。
人工智能编码助手正在将对话聊天界面与代码补全功能结合起来。这样,开发人员就可以使用自然语言生成代码,并动态使用代码补全功能。供应商正在整合这两种形式,进一步提高开发人员的工作效率。
(3)单元测试生成
单元测试生成是代码补全和代码生成在测试环节的变体,开发人员可以提示人工智能编码助手自动生成单元测试。
单元测试对于提高应用的可靠性来说至关重要,但其生产过程对于开发人员来说繁琐重复。因此,开发人员很少编写和维护单元测试。企业实践表明,使用人工智能编码助手后开发人员和以前相比编写了更多的单元测试(例如国金证券推广人工智能编码助手后单元测试覆盖率提升20%)。
但是,开发人员过度利用人工智能编码助手生成测试的便捷性,可能会有损测试驱动开发(TDD)的严谨性。开发人员还有可能接受不完整、不严格的单元测试。因此,企业应要求开发人员利用人工智能编码助手辅助其工作,而不是将单元测试的工作完全委托给人工智能编码助手。
以上为报告内容节选,完整版报告可在微信小程序“沙丘智库”查看,或添加微信号zimu738咨询