前言:
在当今的软件开发领域,提高开发效率和代码质量一直是开发者们追求的目标。而“图生代码”技术的出现,为我们带来了一种全新的开发方式。在本文中,我们将深入探讨如何将组件库和大模型结合,实现图生代码功能,以及为开发过程带来的诸多优势。
一、 什么是图生代码?
图生代码,顾名思义,就是通过输入图形化的方式来生成代码。通过简单的上传草图或原型图,自动生成页面对应前端代码。它可以大大减少手动编写代码的工作量,降低出错的风险,同时也降低了研发小白参与项目的门槛,促使研发效率提升。
随着大模型能力的不断提升,图生代码能力得到加强。通过机器学习大模型可以自动识别和理解图形化设计文件,更加快速的编写代码。同时,大模型还可以对图形化模型进行标注,为开发者提供更清晰的指导和理解。
二、 图生代码技术原理
目前,图生代码的主要技术方案有以下两类:
1.基于前端低代码平台的方法
前端低代码平台是一种允许开发者通过图形界面和配置而非传统的手写代码来构建应用程序的技术方案。它提供一个拖放界面,让用户可以直观地设计应用界面。内置预定义的 UI 组件,用户可以直接使用或自定义。允许用户将界面元素与数据源连接,实现动态更新。提供可重用的模板和预设配置,加速开发过程。
它允许开发者通过使用图形用户界面(GUI)和配置模型来创建应用程序,而不是编写大量的代码。这种方法可以显著提高开发效率,降低开发难度,使得非专业开发者也能够参与到应用程序的创建过程中。
2.基于人工智能的方法:
该方法主要有三个步骤。:
第一步:使用人工智能模型(比如目标检测网络)对 UI 图像进行处理,将图像划分为多个子区域,得到每个区域对应前端组件类别和位置。
第二步:使用图像分类模型识别子区域的图标信息,使用 OCR 模型得到子区域的文字内容。
第三步:结合第一步得到前端组件类别和位置、第二步得到的图标信息及文字内容,以及预设的组件属性,得到各个组件的前端代码。
研发人员可根据项目需求和技术偏好,在上述两类技术方案中做出最佳选择。
三、 从HaloE组件库中获取训练数据
代码生成质量的提升,需要依靠大量丰富、准确的训练数据,获取后的原始数据需要通过数据预处理,形成可供模型训练的数据,进行模型训练:
本文中图生代码技术的训练数据来自于移动云HaloE前端组件库,该组件库是一套为前端工程师提供的基于Vue的桌面端和移动端组件库,包含基础组件、业务组件和模版页面。HaloE基于[普适]、[多元]、[开放]、[共生]的设计价值观,试图建立一套企业级设计体系。提供统一的、符合移动云设计企标规范的前端组件库,提升开发效率,降低页面实现难度。
HaloE 组件库已在Gitee上开源,欢迎大家使用:
Vue3.0 gitee.com/halo-e/halo…
Vue2.0 gitee.com/halo-e/halo…
训练数据主要从三个方面进行的获取:
1.真实代码数据获取:从使用HaloE搭建的真实项的前端代码进行获取,并进行数据预处理,真实数据存在极其多的业务相关数据,需要人工手工方式介入,进行代码修改和抽取。这些数据将作为高权重指标数据。
2.UI原型代码化:由于真实数据的获取不易,所以辅助以人工开发前端产品原型的方式,利用人工在开发产品时,将开发的原型页面保存。
3.随机布局生成:首先利用组件库的API文档编写每个单独组件的属性API、事件API、样式选择。之后利用布局合理性随机选择组件进行代码填充,形成最终的布局页面。同时大批量数据的效果图则需要利用爬虫的方式将随机代码转换成效果图用于大模型学习时一一对应分析。
在初步实现图生代码后,我们发现预览出的页面在间距、元素排列方面存在诸多不足,为了解决这一问题,将典型页面场景中的布局进行抽取、归纳和概括,形成了一套适配HaloE前端组件库的布局规范,并将此套规范应用到数据训练中。
四、 图生代码的主要优势
1.极致开发效率: 通过图形化方式进行开发,无需手动逐行编写代码,大大减少了开发时间和工作量。
2.降低开发门槛:团队新成员也能轻松上手,参与软件开发过程。
3.高质量代码保障:自动生成的代码通常经过优化和测试,具有较高的质量和可靠性。
4.高效团队协作:多个开发者可以同时在同一个项目上工作,提高团队协作效率。通过自然语言处理和图像识别技术,团队成员之间的沟通更为高效。
五、 如何在湛卢代码助手中调用图生代码功能
目前,基于HaloE前端组件库的图生代码功能已经在湛卢代码助手上线,欢迎大家前往VSCode插件市场,搜索“zhanlu”安装使用,或点击链接安装:marketplace.visualstudio.com/items?itemN…