AI 驱动的低代码平台-网易CodeWave 低代码平台 AI 智能化实践

一、实践背景:

随着低代码赛道的蓬勃发展,越来越多的低代码产品如雨后般春笋涌出开始进入市场,面对市场的考验,低代码平台也在面临两大问题

定制开发的使用门槛太高,效率太低。低代码产品进入到企业当中,首先要通过平台完成很多定制开发工作,以便跟企业自身it设施集成,这个过程要求用户在熟悉编码能力的基础上使用平台进行搭建,其使用门槛相当高。

另外则是老生常谈的话题:质量问题。低代码产品并没有考虑性能、高可用、安全、可观测性等核心 Web 应用不可或缺的部分,搭建者的良莠不齐,也无法保证低代码部分设计合理,没有性能问题。因此很多客户只会通过低代码构建不太重要的一些内部管理系统,无法搭建核心应用。

目前市场上的厂商逐步开始往以下这两块方向努力:​

•提升效率,通过一定的机制让用户使用的门槛更低,使用更高效

•提升质量,使用户搭建的产品能够达到基本的开发工程师的质量要求,保证线上不出问题

(前往文档阅读全文:点击跳转)



随着人工智能技术的发展,很多低代码厂商逐步尝试将人工智能技术引入,用于解决问题。

同时代码生成技术以及智能体编程技术出现后,不少公司开始大规模落地AIGC编码技术(ai copilot),但实际落地时发现只能解决线下开发的一部分问题,究其原因有以下的几点:​

1.程序设计语言是人用来指挥计算机干活的,是人与计算机的一种协议。自然语言是人类沟通的媒介,他的特点就是模糊性,很难精确跟需求幂等。​

2.随着复杂度上升,软件开发需要通过组件、服务的封装以屏蔽细节,需要依赖业务背景知识的输入构建逻辑。由于 AIGC 依赖大模型无记忆,缺少现有 IT 资产和领域知识的输入,很难在高度封装的基础上启动开发。

3.需要稳定运行的系统需要很多的周边设施,如中间件、存储、运维等。AIGC 技术目前只能有限的解决一些代码生成问题。​

4.基于各类评测,AIGC 仍然难以完成复杂度高、专业度高的编码工作,甚至在一些简单场景的表现都较差。

究其原因传统开发方式自由度过大,上下文复杂且不标准,概念太多,不利于 AI 构建能够收敛的应用,往往用户第一次描述的需求是模糊和发散的,代码生成无法实现用户最终意图。同时 AIGC 的编码产品缺少所见即所得的能力,也很难让用户进行需求的更改。编码是很复杂的事情,从需求转换成应用本身需要设计很多模块,编码者需要具备的问题拆解和规划能力 AI 是很难具备的。

那如果有什么机制或工具能够快速生成代码,既能够从语言层面保证AI生成代码的收敛和可维护性,又能借助现有的工具和库,还能完成应用从开发到上线托管的全流程,是否就可以解决问题?

——这便是 CodeWave 低代码平台+AIGC 的实践。

二、实践内容:

CodeWave 的低代码平台是一个围绕自研 NASL 语言的智能开发平台。 NASL 是网易数帆 CodeWave 智能开发平台用于描述 Web 应用的领域特定语言。它主要包含两部分:基础语言和 Web 应用特定领域(如数据定义、数据查询、页面、流程、权限等)的子语言集合。他通过一套基础的语言系统(例如类型、常量变量、表达式等)支撑了各种 Web 应用的领域语言,做到了一套语言就可以描述 Web 应用开发的方方面面。





基于这样的设计,我们只需要构建能够生产 NASL 的低代码平台,并将生成的 NASL 转换为应用实际运行时的前后端代码,就可以完成应用从开发到构建部署的全流程了。因此 CodeWave 提供了多种设计器来生产 NASL,并提供了 language server 能力做类型检查,保证用户开发产物的质量,最终通过翻译器,在发布阶段把 nasl 转换为 java 和 js 代码。产品架构如下:





通过 Nasl 来定义编程语言,并以此设计低代码平台架构的优势,主要体现在三点:​

产品上限高。 能够通过丰富的表达能力来表达 Web 开发中的各种场景,包括页面、数据查询、逻辑、流程等,并且可以根据业务的需求定制翻译能力

质量可控。尽可能减少专业概念的数量,通过类型检查、静态、动态分析和排错来降低用户写出低质量代码的可能性。

AI友好。通过统一的 NASL 语言及可扩展的定义,可以方便的对大模型进行训练后让其生成,不需要让大模型生成各种语言框架,这点是 CodeWave 平台区别于其他低代码平台的重要因素:一颗大心脏。只有架构本身对 AI 友好, 才能更好的结合 AIGC 能力。



基于这样的架构设计,我们就推出了一系列的 AI 能力:

自然语言生成NASL(NL2NASL):利用AI生成技术,将用户的自然语言描述转换成产品代码。用户可以通过文字描述,自动化生成页面、逻辑、实体等。

AI Coach-智能编程助手:在用户搭建业务逻辑的过程中,提供智能编程的帮助:

1. 推荐能力:推荐用户合适的逻辑组件

2. 解读能力:将逻辑进行自然语言解读

3. 架构优化能力:提供对制品应用性能、安全、架构等方面的智能分析,帮助用户改善通过低代码平台制作的产品的质量

D2C-设计稿转低代码页面:通过深度学习和计算机视觉等技术,自动识别设计稿元素,将Sketch、Figma和masterGo的设计稿自动生成页面布局和组件

D2C-图片转低代码页面:通过深度学习和计算机视觉等技术,支持对图片格式的设计稿进行智能解析,生成页面布局和组件

AI 知识库:针对客户自有的文档,通过 RAG 技术进行内容检索和摘要,实现智能文档问答



NL2NASL-自然语言生成 NASL

1、产品思路

我们很容易就能够发现,如果把原来的编辑器通过用户输入代替,就能够给低代码平台带来各类自然语言的辅助功能。因此我们直接规划了一系列的自然语言生成的场景:





但根据用户的调研,我们认为用户迫切要解决的,是逻辑的编写和使用效率提升,如下图所示:





根据之前调研的结果,本着 AIGC 真正给用户提效的原则, 我们优先上线了自然语言生成逻辑的功能。CodeWave 智能开发平台的开发者在使用低代码平台编写逻辑时,首先需要深入理解业务逻辑,并将其转化为可视化逻辑片段。他们需要能够高效、高质量地编写逻辑,避免操作复杂、重复编写的问题。有些开发者缺乏传统代码开发经验,因此逻辑开发上手门槛较高,难度较大。为了解决这个问题,我们提供开发辅助,降低逻辑编写门槛,帮助开发者快速上手,提高逻辑开发效率。

在技术调研时我们考虑了 LangChain 和 Agent 框架等,并确定了基于 LangChain(JS/TS版)框架的方案。

代码生成的 AI agent 整体架构如下(LogicChain 为例):





其分为三个阶段:

对话阶段:澄清需求、定位组件、判断操作。大模型根据用户输入的需求做意图识别和任务拆解,用户确认后,将执行计划,上下文生成的 ts 代码,以及通过 RAG 技术检索出的平台资产上下文(包括扩展逻辑和组件逻辑等),组装成 Prompt 传递给大语言模型。

实施阶段:大语言模型按限定要求生成 ts 代码,然后通过 ts2nasl 的 transformer 解析并转换成 nasl json 格式。再结合原来用户操作的上下文路径,在编辑器中组合执行。

优化阶段:对大模型返回的代码进行后处理,修正组件名和页面组件重复,修正不符合要求的接口签名,处理多组件组合情况的一些问题。

采用对话式操作流程,开发者可以在编写逻辑的过程中随时向 AI 助手提问,并通过多轮对话详细描述意图。AI 助手会分析开发者的意图并向开发者反馈,开发者可以根据分析内容选择是否执行,如果不执行,可以持续进行对话。AI 助手可以自由展开或收起,随时提问,随时开启新对话。



因为内容过多,论坛阅读体验不好,感兴趣可以点击前往文档阅读: https://docs.popo.netease.com/lingxi/05e99ffec7134c8c83f43a746fb5e9ae


更多高质量内容获取:扫码关注【网易CodeWave】公众号

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/19024.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

错误信息:Traceback (most recent call last):

错误信息 Traceback (most recent call last): File "E:\python.learning\pythonDateExcavateTreat\数据挖掘课程设计\2_京东用户意向购买数据探索.py", line 74, in <module> df_ui df_ui.to_frame().reset_index() File "E:\python.learning\lib\site-…

决策树模型-预测用户是否购买某母婴产品

1&#xff0c;场景描述 假设我们是京东的数据分析师&#xff0c;负责分析母婴产品的购买行为。我们想预测用户是否会购买一款新上线的母婴产品。为了进行预测&#xff0c;我们将利用用户的历史购买数据、浏览行为和其他特征&#xff0c;通过决策树模型进行分析&#xff0c;并提…

猫狗分类识别模型建立②模型建立

一、导入依赖库 pip install opencv-python pip install numpy pip install tensorflow pip install keras 二、模型建立 pip install opencv-python pip install numpy pip install tensorflow pip install kerasimport os import xml.etree.ElementTree as ETimpor…

NSSCTF-Web题目4

[SWPUCTF 2021 新生赛]hardrce 1、题目 2、知识点 rce&#xff1a;远程代码执行、url取反编码 3、解题思路 打开题目 出现一段代码&#xff0c;审计源代码 题目需要我们通过get方式输入变量wllm的值 但是变量的值被过滤了&#xff0c;不能输入字母和\t、\n等值 所以我们需…

【教学类-59-】专注力视觉训练01(圆点百数图)

背景需求&#xff1a; 视觉训练的神奇效果&#xff0c;让你的宝贝成为焦点 - 小红书魔法视觉追踪-视觉训练—— &#x1f50d;视觉训练&#x1f50d; &#x1f539;想要提高宝宝的专注力&#xff0c;视觉训练是个绝佳方法&#xff01; &#x1f539;让宝宝仔细观察数字的路线&a…

Java中的super关键字详解

在Java编程中&#xff0c;super关键字是一个非常重要的概念&#xff0c;尤其是在继承和多态的场景中。理解super关键字的使用方法和其背后的机制&#xff0c;对于掌握面向对象编程&#xff08;OOP&#xff09;的基本概念至关重要。本篇博客将详细讲解super关键字的各种用法及其…

代码随想录算法训练营第22天(py)| 二叉树 | 669. 修剪二叉搜索树、108.将有序数组转换为二叉搜索树、538.把二叉搜索树转换为累加树

669. 修剪二叉搜索树 力扣链接 给定一个二叉搜索树&#xff0c;同时给定最小边界L 和最大边界 R。通过修剪二叉搜索树&#xff0c;使得所有节点的值在[L, R]中 (R>L) 思路 如果当前节点元素小于low&#xff0c;递归右子树&#xff0c;返回符合条件的头节点 如果当前节点元…

网络请求客户端WebClient的使用

在 Spring 5 之前&#xff0c;如果我们想要调用其他系统提供的 HTTP 服务&#xff0c;通常可以使用 Spring 提供的 RestTemplate 来访问&#xff0c;不过由于 RestTemplate 是 Spring 3 中引入的同步阻塞式 HTTP 客户端&#xff0c;因此存在一定性能瓶颈。根据 Spring 官方文档…

OrangePi AIpro 快速上手初体验——接口、样例和目标检测

​ 一、 开发板简介 OrangePi AIpro开发板是香橙派联合华为精心打造的高性能 AI 开发板&#xff0c;其搭载了昇腾 AI 处理器&#xff0c;可提供 8TOPS INT8 的计算能力&#xff0c;内存提供了 8GB 和 16GB两种版本。可以实现图像、视频等多种数据分析与推理计算&#xff0c;可…

【已解决】使用token登录机制,token获取不到,blog_list.html界面加载不出来

Bug产生 今天使用token完成用户登录信息的存储的时候被卡了大半天。 因为登录的功能写的已经很多了&#xff0c;所以今天就没有写一点验一点&#xff0c;而是在写完获取博客列表功功能&#xff0c;验证完它的后端后&#xff0c;了解完令牌的基本使用以及Jwt的基本使用方式——…

4.共享文件夹的设置

注&#xff1a;设置共享文件夹&#xff1a;首先要先关机 一、点击 编辑虚拟机设置 二、点击 选项 选项卡 三、点击 共享文件夹 四、在本地建立一个共享文件夹后选择路径 五、Linux系统文件夹中的共享文件夹路径 六、在Linux系统中查看共享文件夹 Ubuntushare是共享文件夹&…

【简单介绍下idm有那些优势】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…

Windows:在控制台程序中注入CTRL+C中断

一、引言 当你的控制台程序是一个循环执行Task的任务体时&#xff0c;我们有时候会需要为程序增加强制的中断指令&#xff0c;譬如CTRLC. 先不说解决方法&#xff0c;如果让你去实现&#xff0c;阁下将如何破解。 思路自然很简单&#xff0c;我们可以在程序中捕获鼠标事件&…

国内加密软件排行榜,每一款加密软件都是精品

在数字化快速发展的今天&#xff0c;数据安全和隐私保护已成为企业和个人关注的焦点。加密软件作为保护数据安全的重要手段&#xff0c;其重要性日益凸显。以下是根据权威机构的评测和用户反馈&#xff0c;整理的国内加密软件排行榜及其特点概述。 1、加密软件安企神免费试用7天…

web前端海报:深入探索其设计、技术与实现

web前端海报&#xff1a;深入探索其设计、技术与实现 Web前端海报&#xff0c;作为数字化时代的一种重要宣传手段&#xff0c;以其独特的视觉效果和交互体验&#xff0c;逐渐成为了各类活动、品牌和产品推广的必备利器。本文将围绕web前端海报的设计、技术与实现&#xff0c;从…

贷款借钱平台 小额贷款系统开发小额贷款源码 贷款平台开发搭建

这款是贷款平台源码/卡卡贷源码/小贷源码/完美版 后台51800 密码51800 数据库替换application/database.php程序采用PHPMySQL&#xff0c;thinkphp框架代码开源&#xff0c;不加密后台效果&#xff1a;手机版效果 这款是贷款平台源码/卡卡贷源码/小贷源码/完美版 后台51800 密码…

LeetCode第399场周赛c++题解

3164.优质数对的总数II 给你两个整数数组 nums1 和 nums2&#xff0c;长度分别为 n 和 m。同时给你一个正整数 k。 如果 nums1[i] 可以被 nums2[j] * k 整除&#xff0c;则称数对 (i, j) 为 优质数对&#xff08;0 < i < n - 1, 0 < j < m - 1&#xff09;。 返…

《web应用技术》第九次作业

一、将前面的代码继续完善功能 1.采用XML映射文件的形式来映射sql语句&#xff1b; <?xml version"1.0" encoding"UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis…

HiWoo Box工业智能网关

随着工业4.0的浪潮席卷全球&#xff0c;智能化、网络化已成为工业发展的必然趋势。在这个时代&#xff0c;工业智能网关成为了连接工业设备与网络的关键节点&#xff0c;扮演着至关重要的角色。HiWoo Box作为一款工业智能网关&#xff0c;以其卓越的性能和广泛的应用场景&#…

人生建议:向猫学习

心安理得地被爱 猫从不担心自己不配得到爱&#xff0c;也正是这幅理所应当、宠辱不惊的样子&#xff0c;让人欲罢不能。或许 当你相信自己值得世界上最好的爱时&#xff0c;你就会拥有。 多晒太阳多睡觉 猫喜欢睡觉&#xff0c;尤其喜欢躺阳光好的地方。阳光和睡眠&#xff0c…