CN117331561B - 一种智能低代码页面开发***及方法 - Google Patents
一种智能低代码页面开发***及方法 Download PDFInfo
- Publication number
- CN117331561B CN117331561B CN202311604254.XA CN202311604254A CN117331561B CN 117331561 B CN117331561 B CN 117331561B CN 202311604254 A CN202311604254 A CN 202311604254A CN 117331561 B CN117331561 B CN 117331561B
- Authority
- CN
- China
- Prior art keywords
- text
- prompt
- page
- code
- module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000011161 development Methods 0.000 title claims abstract description 86
- 238000000034 method Methods 0.000 title claims abstract description 57
- 239000013598 vector Substances 0.000 claims abstract description 124
- 238000009877 rendering Methods 0.000 claims abstract description 32
- 238000004590 computer program Methods 0.000 claims description 15
- 238000012986 modification Methods 0.000 claims description 11
- 238000000605 extraction Methods 0.000 claims description 10
- 230000004048 modification Effects 0.000 claims description 10
- 238000010586 diagram Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 10
- 230000006872 improvement Effects 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 230000003993 interaction Effects 0.000 description 7
- 238000012545 processing Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 230000002452 interceptive effect Effects 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000012549 training Methods 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 229920001296 polysiloxane Polymers 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 239000010979 ruby Substances 0.000 description 1
- 229910001750 ruby Inorganic materials 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000013526 transfer learning Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
- G06N5/041—Abduction
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Machine Translation (AREA)
Abstract
本说明书公开了一种智能低代码页面开发***及方法,人机对话前端界面模块将描述文本发送给提示词服务后端模块,得到描述文本的特征向量,以此查找到与描述文本相关的各第一参考组件,根据描述文本和用户意图判断提示词得到第一提示文本,以便得到用户意图判断结果,根据用户意图判断结果、各第一参考组件的信息、页面开发提示词和描述文本得到第二提示文本,进而得到前端页面代码并返回,智能低代码平台编辑器渲染模块基于前端页面代码得到前端页面。可见,通过上述方案,无需复杂的操作,能够基于用户输入的自然语言描述自动生成前端页面,提升了页面开发的效率和灵活性,降低了前端页面开发和配置的门槛。
Description
技术领域
本说明书涉及计算机技术领域,尤其涉及一种智能低代码页面开发***及方法。
背景技术
低代码开发平台是无需编码或者通过少量代码就能快速生成应用的开发平台。通过组件拖拽、编辑等方式,使得无开发经验或少量开发经验的人员可以不用写代码就能创建页面和应用。
目前,普通的低代码开发平台存在如下问题:页面模板或者组件都是预置的,不能完全满足用户的需求,需要用户在此基础上进行二次编辑配置,过程比较繁琐,对于复杂一些的页面搭建需求灵活性不足,配置成本很高。
另外,针对上述问题,现有技术中,还通过预设自然语言描述规范,使用户基于规范提供生成页面所需组件的自然语言描述语句,基于用户提供的自然语言描述语句,确定相应的组件代码,从而开发页面。
但上述方案需要用户完全按照平台制定的规范去一次性描述好自己的需求,这在一定程度上增加了用户描述需求的难度,灵活性不高。并且,针对已生成页面的再修改没有明确提供自然语言转换的规范或者相应的方式,提高了用户开发页面的门槛,从而降低了页面开发的效率。
因此,本说明书提供了一种智能低代码页面开发***及方法,以进一步提高生产效率。
发明内容
本说明书提供一种智能低代码页面开发***及方法,以部分的解决现有技术存在的上述问题。
本说明书采用下述技术方案:
本说明书提供了一种智能低代码页面开发***,所述***包括:人机对话前端界面模块、提示词服务后端模块、大模型问答模块、智能低代码平台编辑器渲染模块;
所述人机对话前端界面模块,用于响应于用户输入的描述文本,将所述描述文本发送给所述提示词服务后端模块,所述描述文本用于以自然语言描述的方式描述针对前端页面的操作需求,所述操作需求至少包括新建页面和修改页面;
所述提示词服务后端模块,用于接收所述描述文本,确定所述描述文本的特征向量;根据所述描述文本的特征向量,查找与所述描述文本相关的各第一参考组件;根据所述描述文本和用户意图判断提示词,生成第一提示文本,将所述第一提示文本发送给所述大模型问答模块;响应于所述大模型问答模块返回的用户意图判断结果,根据所述用户意图判断结果、所述各第一参考组件的信息、页面开发提示词和所述描述文本,生成第二提示文本,将所述第二提示文本发送给所述大模型问答模块;接收所述大模型问答模块发送的前端页面代码,将所述前端页面代码转发给所述智能低代码平台编辑器渲染模块;
所述大模型问答模块,用于接收所述第一提示文本,将所述第一提示文本输入预训练的自然语言模型,得到用户意图判断结果,并将所述用户意图判断结果返回给所述提示词服务后端模块;接收所述第二提示文本,将所述第二提示文本输入预训练的自然语言模型,得到前端页面代码;将所述前端页面代码发送给提示词服务后端模块;
所述智能低代码平台编辑器渲染模块,用于接收所述提示词服务后端模块发送的前端页面代码,对所述前端页面代码进行解析,渲染得到前端页面,并展示所述前端页面。
本说明书提供了一种智能低代码页面开发方法,所述方法应用于提示词服务后端模块,所述方法包括:
接收人机对话前端界面模块发送的描述文本,确定所述描述文本的特征向量;所述描述文本用于以自然语言描述的方式描述针对前端页面的操作需求,所述操作需求至少包括新建页面和修改页面;
根据所述描述文本的特征向量,查找与所述描述文本相关的各第一参考组件;
根据所述描述文本和用户意图判断提示词,生成第一提示文本,将所述第一提示文本发送给大模型问答模块,以使所述大模型问答模块将所述第一提示文本输入预训练的自然语言模型,得到用户意图判断结果,并返回;
响应于所述大模型问答模块返回的用户意图判断结果,根据所述用户意图判断结果、所述各第一参考组件的信息、页面开发提示词和所述描述文本,生成第二提示文本,将所述第二提示文本发送给所述大模型问答模块,以使所述大模型问答模块将所述第二提示文本输入预训练的自然语言模型,得到前端页面代码,并返回;其中,所述前端页面代码由各目标组件的代码构成;
接收所述大模型问答模块发送的前端页面代码,将所述前端页面代码转发给智能低代码平台编辑器渲染模块,使得所述智能低代码平台编辑器渲染模块对所述前端页面代码进行解析,渲染得到前端页面,并展示所述前端页面。
可选地,所述根据所述描述文本的特征向量,查找与所述描述文本相关的各第一参考组件,具体包括:
确定向量数据库中预先存储的各组件的特征向量;所述组件包括布局类型的组件和用户界面UI类型的组件;
分别确定所述描述文本的特征向量和所述各组件的特征向量之间的向量距离;
根据所述描述文本的特征向量和所述各组件的特征向量之间的向量距离,从所述各组件中,选择指定数量的各第一参考组件。
可选地,所述确定向量数据库中预先存储的各组件的特征向量,具体包括:
获取多个组件分别对应的标识、描述和代码;
针对每个组件,将该组件的描述输入到预先训练的特征提取模型,得到该组件的特征向量;
将该组件的标识、该组件的描述、该组件的特征向量和该组件的代码进行绑定,并存储在向量数据库中。
可选地,所述根据所述描述文本和用户意图判断提示词,生成第一提示文本,具体包括:
获取预先编写的用户意图判断提示词,所述用户意图判断提示词用于引导预训练的自然语言模型基于所述描述文本判断用户意图的类型,所述用户意图的类型至少包括新建类、修改类和其他类;
获取若干预先编写的与用户意图判断相关的参考问答对,作为第一示例;
获取第一输出指示符,所述第一输出指示符用于指示预训练的自然语言模型输出的用户意图判断结果的格式;
根据所述用户意图判断提示词、所述第一示例、所述描述文本和所述第一输出指示符,生成第一提示文本。
可选地,所述根据所述用户意图判断结果、所述各第一参考组件的信息、页面开发提示词和所述描述文本,生成第二提示文本,具体包括:
获取预先编写的业务开发提示词,所述业务开发提示词用于引导预训练的自然语言模型根据输入生成符合用户意图的前端页面代码;
获取用于描述参考页面的参考文本和生成所述参考页面所采用的各第二参考组件的信息,并根据所述参考文本、所述各第二参考组件的信息和所述各第一参考组件的信息,确定第二示例;其中,所述第二参考组件的信息包括所述第二参考组件的标识、描述和代码;所述第一参考组件的信息包括所述第一参考组件的标识、描述和代码;
获取第二输出指示符,所述第二输出指示符用于指示预训练的自然语言模型输出的前端页面代码的格式;
根据所述用户意图判断结果、所述第二示例、所述描述文本和所述第二输出指示符,生成第二提示文本。
可选地,所述根据所述参考文本、所述各第二参考组件的信息和所述各第一参考组件的信息,确定第二示例,具体包括:
当所述用户意图判断结果为新建页面意图时,将所述参考文本、所述各第二参考组件的信息和所述各第一参考组件的信息拼接,得到第二示例;
当所述用户意图判断结果为修改页面意图时,获取历史提示文本以及所述历史提示文本对应的已生成页面所采用的组件的代码,根据所述参考文本、所述各第二参考组件的信息、所述各第一参考组件的信息、所述历史提示文本和所述历史提示文本对应的已生成页面所采用的组件的代码,确定第二示例;其中,所述历史提示文本包括用于确定所述已生成页面所采用的组件的代码的提示文本。
本说明书提供了一种智能低代码页面开发装置,所述装置应用于提示词服务后端模块,所述装置包括:
描述文本接收单元,用于接收人机对话前端界面模块发送的描述文本,确定所述描述文本的特征向量;所述描述文本用于以自然语言描述的方式描述针对前端页面的操作需求,所述操作需求至少包括新建页面和修改页面;
第一参考组件确定单元,用于根据所述描述文本的特征向量,查找与所述描述文本相关的各第一参考组件;
第一提示文本确定单元,用于根据所述描述文本和用户意图判断提示词,生成第一提示文本,将所述第一提示文本发送给大模型问答模块,以使所述大模型问答模块将所述第一提示文本输入预训练的自然语言模型,得到用户意图判断结果,并返回;
第二提示文本确定单元,用于响应于所述大模型问答模块返回的用户意图判断结果,根据所述用户意图判断结果、所述各第一参考组件的信息、页面开发提示词和所述描述文本,生成第二提示文本,将所述第二提示文本发送给所述大模型问答模块,以使所述大模型问答模块将所述第二提示文本输入预训练的自然语言模型,得到前端页面代码,并返回;其中,所述前端页面代码由各目标组件的代码构成;
转发单元,用于接收所述大模型问答模块发送的前端页面代码,将所述前端页面代码转发给智能低代码平台编辑器渲染模块,使得所述智能低代码平台编辑器渲染模块对所述前端页面代码进行解析,渲染得到前端页面,并展示所述前端页面。
本说明书提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述智能低代码页面开发方法。
本说明书提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述智能低代码页面开发方法。
本说明书采用的上述至少一个技术方案能够达到以下有益效果:
本说明书提供的智能低代码页面开发***中,人机对话前端界面模块将用户输入的描述文本发送给提示词服务后端模块,得到描述文本的特征向量,以此查找到与描述文本相关的各第一参考组件,根据描述文本和用户意图判断提示词得到第一提示文本,通过大模型问答模块基于第一提示文本得到用户意图判断结果并返回,根据用户意图判断结果、各第一参考组件的信息、页面开发提示词和描述文本得到第二提示文本,通过大模型问答模块基于第二提示文本得到前端页面代码并返回,从而智能低代码平台编辑器渲染模块基于前端页面代码得到前端页面。可见,通过上述方案,改变以往传统低代码平台拖拉拽的交互形式,无需复杂的配置,能够基于用户输入的自然语言描述自动生成前端页面,更加切合用户需求的同时,大大提升了页面开发的效率和灵活性,降低了前端页面开发和配置的门槛。
附图说明
此处所说明的附图用来提供对本说明书的进一步理解,构成本说明书的一部分,本说明书的示意性实施例及其说明用于解释本说明书,并不构成对本说明书的不当限定。在附图中:
图1为本说明书中一种智能低代码页面开发***的示意图;
图2为本说明书中一种智能低代码页面开发方法的交互流程示意图;
图3为本说明书中一种智能低代码页面开发方法的流程示意图;
图4为本说明书中一种智能低代码页面开发方法的流程示意图;
图5为本说明书提供的一种智能低代码页面开发装置的示意图;
图6为本说明书提供的对应于图2的电子设备示意图。
具体实施方式
为使本说明书的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书保护的范围。
另外,需要说明的是,本说明书中所有获取信号、信息或数据的动作都是在遵照所在地相应的数据保护法规政策的前提下,并获得由相应装置所有者给予授权的情况下进行的。
需要说明的是,在不冲突的情况下,下述的实施例及实施方式中的特征可以相互组合。
基于前述传统方案中的问题,本说明书提供一种智能低代码页面开发***,如图1所示,该***包括人机对话前端界面模块、提示词服务后端模块、大模型问答模块、智能低代码平台编辑器渲染模块,其中,人机对话前端界面模块用于与用户进行人机智能对话,接收用户输入的自然语言文本,以及展示引导文本等。提示词服务后端模块用于对用户输入的自然语言文本进行分析,查询与用户需求相关的组件、组装不同类型的提示文本等。大模型问答模块部署有预训练的自然语言模型,通过调用该预训练的自然语言模型,能够在不同类型的提示文本的提示下得到用户意图判断结果,或者符合用户开发页面意图的前端页面代码。智能代码平台编辑器渲染模块用于解析前端页面代码,生成新的页面或修改已生成的页面。
基于上述智能低代码页面开发***,基于同样的思路,本说明书提供一种智能低代码页面开发方法,该方法由前述智能低代码页面开发***中人机对话前端界面模块、提示词服务后端模块、大模型问答模块、智能低代码平台编辑器渲染模块之间交互实现。
以下结合附图,详细说明本说明书各实施例提供的技术方案。
图2为本说明书提供的一种智能低代码页面开发方法的交互流程示意图。
S100:人机对话前端界面模块响应于用户输入的描述文本,将所述描述文本发送给提示词服务后端模块。
其中,所述描述文本用于以自然语言描述的方式描述针对前端页面的操作需求,所述操作需求至少包括新建页面和修改页面,所述自然语言描述的方式为不遵从特定规范的描述方式。
在本说明书中,用户输入的描述文本的方式是自语言描述的方式,该方式无需用户遵循任何特定的描述规范或格式,从而,用户不需要预先学习描述文本的输入规范,只要确定页面开发需求即可,减少了用户的工作量并降低了门槛。
在用户输入的描述文本中,描述了用户开发页面的需求。一般的,用户对于前端页面的开发需求可拆解为意图描述和组件描述。其中,意图描述即为用户针对前端页面的操作需求,该操作需求包括新建页面和修改页面。也就是说,用户对于前端页面的开发意图一般是创建一个新的前端页面,或者是针对已经生成的前端页面进行修改。
在本说明书中,图2所示的交互流程可以执行多次,也即,用户通过与人机对话前端界面模块的多轮交互,多次输入不同的描述文本,使得智能低代码页面开发***的各模块多次重复下述步骤,执行生成前端页面、针对已生成的前端页面进行二次或多次编辑修改,直至前端页面符合用户的全部开发需求。可见,即使用户无法一次性完整描述页面的开发需求,也可以通过用户与人机对话前端界面模块的多轮交互得到符合用户的全部开发需求的前端页面,降低了用户开发页面的门槛。
例如,用户通过人机交互前端对话界面,输入描述自己的需求的描述文本:“我想要一个模型管理页面,有两个选项卡,一个叫我的模型,一个公开模型,每个选项卡下都包含一个列表,列表字段为模型名称、作者、创建时间”。当用户输入后,人机交互前端对话页面模块会将描述文本发送给提示词服务后端模块,以便提示词服务后端模块执行后续步骤。
S102:提示词服务后端模块接收所述描述文本,确定所述描述文本的特征向量。
在此步骤中,提示词服务后端模块会将用户输入的描述文本进行向量化,从自然语言形式的描述文本中提取语义特征,该语义特征可以表征用户开发前端页面的需求。
具体的,提示词服务后端模块可调用预先训练的特征提取模型,将上述描述文本进行向量化,得到对应于用户需求的描述文本的特征向量W,W={w0,w1,...,wn}。
其中,预先训练的特征提取模型可以是基于通用语料库训练得到的,也可以是基于与前端页面开发相关的语料训练得到的,常用的相关特征提取模型可以由Word2vec、BERT、OpenAI的Embeddings模型(text-embedding-ada-002)等构建得到,本说明书对特征提取模型的结构和训练方式均不作限定。
S104:根据所述描述文本的特征向量,查找与所述描述文本相关的各第一参考组件。
在本说明书中,预先构建有向量数据库,在该向量数据库中存储有不同组件的信息,其中,组件的信息包括组件的标识、描述、代码和特征向量。并且,同一组件的不同信息之间存在对应关系,也就是说,通过组件的信息中的某一个具体的信息,就能够在向量数据库中查找到该组件的其他信息。
例如,向量数据库中存储有下述组件的信息:
component:组件标识,例如“按钮”。
explain:该组件的描述,例如“按钮,componentName为Button,props中对应按钮的属性,type表示什么类型的按钮,title表示按钮上显示的字段,例如查询按钮,title就是查询,对应的JSON DSL为 : {"componentName": "Button", "props": {"type": "primary", "title": "\u67e5\u8be2", "disabled": false, "size": "middle"}, "slots": {}, "children": []};”。
JSON schema: 该组件的JSON结构化定义代码,例如按钮组件的schema为{"componentName": "Button", "props": {"type": "primary", "title": "\u67e5\u8be2", "disabled": false, "size": "middle"}, "slots": {}, "children":[]};”。
embeddings:该组件描述进行向量化后对应的向量 V,V={v0,v1,...,vn}。
提示词服务后端模块可基于描述文本的特征向量,对向量数据库发起检索请求,通过计算每个组件的特征向量与描述文本的特征向量之间的相似度,确定与描述文本的特征向量相似的若干个组件的特征向量,并基于筛选出的这若干个组件的特征向量,从向量数据库中查找相对应的组件,作为描述文本对应的各第一参考组件。
具体的,首先,确定向量数据库中预先存储的各组件的特征向量,所述组件包括布局类型的组件和用户界面UI类型的组件。
向量数据库中存储的各组件的特征向量是预先将各组件的描述(或者标识、描述和代码)输入到特征提取模型中得到的,存储的方法是将每个组件的标识、描述、代码和特征向量进行绑定。具体的,获取多个组件分别对应的标识、描述和代码,针对每个组件,将该组件的描述输入到预先训练的特征提取模型,得到该组件的特征向量,将该组件的标识、该组件的特征向量、该组件的描述和该组件的代码进行绑定,并存储在向量数据库中。
所述向量数据库表的字段主要包含如下几个:
component:组件标识。
explain:该组件的描述。
JSON schema: 该组件的JSON结构化定义代码。
embeddings:该组件的描述进行向量化后对应的向量,记为 V,V={v0,v1,...,vn}。
本说明书中,组件包括布局类型的组件和用户界面UI类型的组件,其中所述布局组件用于确定前端页面的整体结构,包含例如选项卡布局(Tabs)、栅格布局(Grid)、卡片布局(Cards)等组件;所述UI组件用于确定前端页面中的具体内容,包含例如按钮(Button)、表格(Table)、表单(Form)、输入框(Input Field)等组件。
分别确定所述描述文本的特征向量和所述各组件的特征向量之间的向量距离。
根据所述描述文本的特征向量和所述各组件的特征向量之间的向量距离,从所述各组件中,选择指定数量的各第一参考组件。
其中,每个组件的特征向量与描述文本的特征向量之间的相似度可以通过向量距离确定,向量距离越小,相似度越大,反之,向量距离越大,相似度越小。本说明书中,向量距离可采用L2距离(即欧氏距离)、内积、汉明距离等方法计算得到,本说明书对此不做限定。
以距离公式采用L2距离进行计算为例,向量距离的计算公式可如下所示:
在实际应用中,如果基于向量距离确定描述文本的特征向量与向量数据库存储的所有组件的特征向量的向量距离都较大,说明向量数据库中没有存储与描述文本相关的组件,或者用户输入的描述文本存在描述上的错误。
此时,提示词后端服务模块可生成引导文本,并将引导文本返回给人机对话前端界面模块,以便人机对话前端界面模块显示引导文本,所述引导文本用于引导用户重新输入描述文本。
和/或,获取多个新增组件的标识、描述和代码,并根据各新增组件的标识、描述和代码,通过特征提取模型,得到新增组件的特征向量,将新增组件的标识、描述、代码和特征向量存入向量数据库,基于新增后的向量数据库,重新确定描述文本对应的各第一参考组件。
S106:根据所述描述文本和用户意图判断提示词,生成第一提示文本。
具体的,首先可基于描述文本和预训练的自然语言模型确定用户开发前端页面的具体意图,从而,提示词服务后端模块可组装用于表示用户意图判断提示的第一提示文本,并基于第一提示文本调用大模型问答模块向预训练的自然语言模型发起提问,从而得到用户意图的判断结果。
其中,用户意图判断提示词实际上是一条引导预训练的自然语言模型完成用户意图判断的提示指令,在用户意图判断提示词中包括了预训练的自然语言模型所扮演的角色、第一提示文本中描述文本所在的位置,以及输出的用户意图判断结果的范围。
例如,用户意图判断提示词可以如下:
#指令:
你是一个分类器,你将接收用户的输入,根据用户输入的语义进行分类,分为新建类,修改类和其他类三类。请扮演好这个角色,用户输入的信息将会被####分割开。
在实际应用中,描述文本和用户意图判断提示词可按照预先编写的提示文本模板所示的拼接方式进行拼接,从而得到第一提示文本。
当然,根据不同的应用场景,还可以对第一提示文本进行扩充,也即在描述文本和用户意图判断提示词的基础上,添加其他文本内容,以扩充第一提示文本所包含的信息,以便更好的引导预训练的自然语言模型输出准确性更高的用户意图判断结果。对第一提示文本进行扩充的其他文本内容可以是与用户意图判断相关的少样本提示文本、用于指示判断结果格式的输出指示符等。
S108:将所述第一提示文本发送给大模型问答模块。
S110:大模型问答模块接收所述第一提示文本,将所述第一提示文本输入预训练的自然语言模型,得到用户意图判断结果。
本说明书中,预训练的自然语言模型是基于通用语料库预训练的生成式人工智能(Artificial Intelligence Generated Content,AIGC),如ChatGPT、GPT3、GPT4等,预训练的自然语言模型可以通过已有数据和知识的学习,能够泛化生成新的知识或内容。
由此,将第一提示文本输入到预训练的自然语言模型,该预训练的自然语言模型可输出用户意图判断结果。本说明书中,用户意图判断结果包括新建类、修改类和其他类中的一个,其中,新建类对应于用户输入的描述文本表征的用户意图为新建一个前端页面,修改类对应于用户输入的描述文本表征用户的意图为修改已经生成的前端页面的至少部分,其他类对应于用户输入的描述文本表征用户的意图为针对前端页面除新建和修改之外的操作。
例如,第一提示文本如下:
#指令:
你是一个分类器,你将接收用户的输入,根据用户输入的语义进行分类,分为新建类,修改类和其他类三类。请扮演好这个角色,用户输入的信息将会被####分割开。
#描述文本:
我想要一个模型管理页面,有两个选项卡,一个叫我的模型,一个公开模型,每个选项卡下都包含一个列表,列表字段为模型名称、作者、创建时间。
基于上述第一提示文本,预训练的自然语言模型返回的用户意图判断结果为:新建类。
S112:将所述用户意图判断结果返回给所述提示词服务后端模块。
S114:提示词服务后端模块响应于所述大模型问答模块返回的用户意图判断结果,根据所述用户意图判断结果、所述各第一参考组件的信息、页面开发提示词和所述描述文本,生成第二提示文本。
进一步的,为了实现前端页面的创建或修改,需要调用不同的组件,而调用组件的方法是由智能低代码平台编辑器渲染模块解析前端页面代码并渲染,为此,提示词服务后端模块基于返回的用户意图判断结果,以便进行下一阶段的前端页面代码的生成。
为此,需要生成第二提示文本,第二提示文本用于引导预训练的自然语言模型基于用户意图判断结果以及描述文本生成用于实现用户的页面开发意图的前端页面代码。
在第二提示文本中,除了包含有用户意图判断结果以及描述文本,还包括了描述文本对应的各第一参考组件的信息(标识、描述和代码)以及页面开发提示词。其中,第一参考组件的信息是基于S104确定的与描述文本相关的各第一参考组件,从向量数据库中查找得到的。页面开发提示词实际上是引导预训练的自然语言模型完成组件代码生成的提示指令,在页面开发提示词中包括了预训练自然语言模型所扮演的角色(或者希望预训练的自然语言模型执行的任务)。
例如,页面开发提示词可以如下:
#指令:
“你是一个强大的页面生成工具,可以根据输入的信息生成JSON schema”。
在实际应用中,可以将用户意图判断结果、各第一参考组件的信息、页面开发提示词和描述文本按照预先编写的提示文本模板所示的拼接方式进行拼接,从而得到第二提示文本。
当然,根据不同的应用场景,还可以对第二提示文本进行扩充,也即,在用户意图判断结果、各第一参考组件的信息、页面开发提示词和描述文本的基础上,添加其他文本内容,以扩充第二提示文本所包含的信息,以便更好的引导预训练的自然语言模型输出准确性更高的组件代码。对第二提示文本进行扩充的其他文本内容可以是与生成组件代码相关的少样本提示文本、历史提示文本、已生成页面所采用的组件代码、用于指示组件代码格式的输出指示符等。
S116:将所述第二提示文本发送给所述大模型问答模块。
S118:大模型问答模块接收所述第二提示文本,将所述第二提示文本输入预训练的自然语言模型,得到前端页面代码。其中,所述前端页面代码由各目标组件的代码构成。
此步骤所使用的预训练的自然语言模型与S110所使用的预训练的自然语言模型可以是同一个也可以不是同一个,本说明书对此不做限定。
将第二提示文本作为输入,预训练的自然语言模型可以基于第二提示文本中的用户意图判断结果,确定生成的组件代码用于执行新建前端页面,或者是修改已生成页面,又或者是其他操作。并且,第二提示文本中还包括描述文本以及与描述文本相关的各第一参考组件,这为预训练的自然语言模型直接生成组件代码提供了参考以及组件实现的功能的指导。
另外,由于预训练的自然语言模型输出代码的格式可以是现有的任意类型的格式,如JSON、SQL、python。因此,在第二提示文本中还可以引入用于限制预训练的自然语言模型输出的前端页面代码的格式的指示符,以便预训练的自然语言模型输出的前端页面代码的格式符合要求。
需要说明的是,在本说明书一个或多个实施例中,预训练的自然语言模型在第二提示文本的引导下生成的前端页面代码,实际上是由多个目标组件的代码经过结合而构成的。实际上,各目标组件的代码之间需要通过嵌套等逻辑关系才能够构成完整的前端页面代码(json schema)。例如,选项卡布局组件中嵌套一个列表UI组件的话,实际上是在选项卡布局组件的代码中的children字段中把列表UI组件的代码添加进去,具体代码可如下所示:
"componentName": "TabPane",
"props": {
"label":"我的模型"
"key": "myModels",
"disabled": false
},
"slots": {},
"children":[
{
"componentName": "Table",
"props": {
"rowKey": "id"
}
总之,预训练的自然语言模型能够基于第二提示文本确定符合用户页面开发需求的各目标组件的代码,并将各目标组件的代码通过嵌套等逻辑关系有机结合起来构成完整的前端页面代码。
S120:将所述前端页面代码发送给提示词服务后端模块。
S122:提示词服务后端模块接收所述大模型问答模块发送的前端页面代码,将所述前端页面代码转发给所述智能低代码平台编辑器渲染模块。
除了将前端页面代码转发给智能低代码平台编辑器渲染模块以渲染得到前端页面之外,提示词服务后端模块还会将本轮页面开发过程中生成的第二提示文本以及前端页面代码进行存储,以用于下一轮页面开发过程中修改已生成页面时,作为下一轮生成第二提示文本的依据。
S124:智能低代码平台编辑器渲染模块接收所述提示词服务后端模块发送的前端页面代码,对所述前端页面代码进行解析,渲染得到前端页面,并展示所述前端页面。
另外,基于渲染出的前端页面,用户可继续通过所述的人机对话前端界面模块,使用自然语言描述的方式,重复所述上述图2所示步骤,对已经生成的页面进行二次编辑修改。即使用户不能一次性完整描述出自身针对前端页面的开发需求,也可以通过多次输入描述文本,不断完善前端页面。
本说明提供的智能低代码页面开发方法中,人机对话前端界面模块将用户输入的描述文本发送给提示词服务后端模块,得到描述文本的特征向量,以此查找到与描述文本相关的各第一参考组件,根据描述文本和用户意图判断提示词得到第一提示文本,通过大模型问答模块基于第一提示文本得到用户意图判断结果并返回,根据用户意图判断结果、各第一参考组件的信息、页面开发提示词和描述文本得到第二提示文本,通过大模型问答模块基于第二提示文本得到前端页面代码并返回,从而智能低代码平台编辑器渲染模块基于前端页面代码得到前端页面。
可见,通过上述方案,改变以往传统低代码平台拖拉拽的交互形式,无需复杂的配置,能够基于用户输入的自然语言描述自动生成前端页面,更加切合用户需求的同时,大大提升了页面开发的效率和灵活性,降低了前端页面开发和配置的门槛。
在本说明书一个或多个实施例中,上述S106还可以按照下述方案实现,如图3所示:
S200:获取预先编写的用户意图判断提示词,所述用户意图判断提示词用于引导预训练的自然语言模型基于所述描述文本判断用户意图的类型。
用户意图的类型至少包括新建类、修改类和其他类。
S202:获取若干预先编写的与用户意图判断相关的参考问答对,作为第一示例。
少样本提示(Few-shot Prompting)信息,提供给预训练的自然语言模型的一些示例。第一示例与用户意图判断相关,可以是预先编写的文本作为问题,绑定该文本所表达的意图作为答案的问答对。将与用户意图判断相关的参考问答对作为第一示例,预训练的自然语言模型无需进行迁移学习,直接就能够从第一示例中学习到与前端页面开发的用户意图判断相关的能力。
S204:获取第一输出指示符,所述第一输出指示符用于指示预训练的自然语言模型输出的用户意图判断结果的格式。
第一输出指示符用于指示预训练的自然语言模型需要输出的用户意图判断结果类型或者格式,比如“你只回复判断结果如:新建类修改类其他类”。
S206:根据所述用户意图判断提示词、所述第一示例、所述描述文本和所述第一输出指示符,生成第一提示文本。
按照预先编写的提示文本模板所示的拼接方式,将用户意图判断提示词、第一示例、描述文本和第一输出指示符进行拼接,得到第一提示文本。
完整的第一提示文本的示例如下:
#指令:
你是一个分类器,你将接收用户的输入,根据用户输入的语义进行分类,分为新建类,修改类和其他类三类。请扮演好这个角色,用户输入的信息将会被####分割开。
#少样本提示:
以下是一些第一示例:
用户:####挺无聊的,没事干,学习一下前端页面的知识####
答复:其他类;
用户:####创建一个表格,包含人名,年龄,籍贯三列####
答复:新建类;
用户:####将表格中的第一列删除。####
答复:修改类;
#第一输出指示符:
你只回复判断结果如:新建类修改类其他类。
#描述文本:
我想要一个模型管理页面,有两个选项卡,一个叫我的模型,一个公开模型,每个选项卡下都包含一个列表,列表字段为模型名称、作者、创建时间。
在本说明书一个或多个实施例中,上述S114还可以按照下述方案实现,如图4所示:
S300:获取预先编写的业务开发提示词,所述业务开发提示词用于引导预训练的自然语言模型根据输入生成符合用户意图的前端页面代码。
业务开发提示词用于说明希望预训练的自然语言模型执行的任务,比如“你是一个强大的页面生成工具,可以根据输入的信息生成JSON schema”。
S302:获取用于描述参考页面的参考文本和生成所述参考页面所采用的各第二参考组件的信息,并根据所述参考文本、所述各第二参考组件的信息和所述各第一参考组件的信息,确定第二示例。其中,所述第二参考组件的信息包括所述第二参考组件的标识、描述和代码。所述第一参考组件的信息包括所述第一参考组件的标识、描述和代码。
与前述S202类似,预训练的自然语言模型能够基于少样本提示学习相应的能力。由于第二提示文本用于引导模型输出前端页面代码,因此,第二提示文本中的第二示例可以包括用于生成参考页面的参考文本,以及生成参考页面所采用的各第二参考组件的信息。
其中,参考页面可以是历史上基于用户人机对话生成的前端页面,相应的,生成参考页面所采用的组件即为第二参考组件。从而,可以在向量数据库中获取到各第二参考组件的信息。
第二示例中还可以包括与描述文本相关的各第一参考组件的信息,第一参考组件与描述文本相关,说明第一参考组件符合用户生成前端页面的意图,因此,将第一参考组件添加到第二示例中,可引导预训练的自然语言模型更加理解用户开发页面的实际意图。
S304:获取第二输出指示符,所述第二输出指示符用于指示预训练的自然语言模型输出的前端页面代码的格式。
第二输出指示符指示预训练的自然语言模型需要输出的内容类型或者格式,比如JSON。
S306:根据所述用户意图判断结果、所述第二示例、所述描述文本和所述第二输出指示符,生成第二提示文本。
按照预先编写的提示文本模板所示的拼接方式,将用户意图判断结果、第二示例、描述文本和第二输出指示符进行拼接,得到第二提示文本。
完整的第二提示文本的示例如下:
#指令:
你是一个强大的页面生成工具,根据输入信息生成JSON Schema。
#第二参考组件的信息:
如果要生成的是表单页面,根据如下格式来描述整个页面,页面的根节点用Root表示,props中的布局默认值为horizontal,slots为{},表单中的所有子组件都添加到Form组件的children中,最下方默认有两个按钮,一个是提交按钮,一个取消按钮,对应的JSONSchema的默认结构为:{"componentName":"Root","slots":{},"children":[{"componentName":"Form",
"props":{"layout":"horizontal"},"slots":{},"children":[]},{"componentName":"Button","props":{"type":"primary","title":"提交",
"disabled":false,"size":"middle","shape":""},"slots":{},"children":[]},{"componentName":"Button","props":{"type":"default","title":"取消","disabled":false,"size":"middle","shape":"-"},"slots":{},
"children":[]}]};
如果要生成的是列表或者表格页面,根据下面主页面的结构信息来生成代码,所有子组件都添加到Container组件的children中,其中包含了两个必需的子模块,搜索模块,搜索条件根据表格或列表的列动态生成,以及查询和重置按钮;添加按钮模块,主页面JSON schema为:{"componentName":"Root","slots":{},"children":[{"componentName":"Container","props":{"style":{"padding":"20px"}},"slots":{},"children":[{"componentName":"Input","props":{"placeholder":"请输入名称","bordered":true,"size":"middle","style":{"width":"200px"}},"slots":{},"children":[]},
{"componentName":"DatePicker","props":{"placeholder":"请选择日期","picker":"date","format":
"YYYY-MM-DD",
"style":{"width":"200px"}},"slots":{},"children":[]},{"componentName":"Select","props":{"placeholder":"请选择状态一","bordered":true,"size":"middle","placement":"topRight","options":
[{"value":"value1","label":"选项1"},{"value":"value2","label":"选项2"},{"value":"value3","label":"选项3","disabled":true}],"style":{"width":"200px"}},"slots":{},"children":[]},{"componentName":
"Button","props":{"type":"primary","title":"查询","disabled":false,"size":"middle","shape":"-"},
"slots":{},"children":[]},{"componentName":"Button","props":{"type":"primary","title":"重置","disabled":false,"size":
"middle","shape":"-"},"slots":{},"children":[]},{"componentName":"Col","props":{"span":6},"slots":{},"children":[{"componentName":"Button","props":{"type":"primary","title":"添加","disabled":
false,"size":"middle","shape":"-"},"slots":{},"children":[]}]}]}]}
#第一参考组件的信息:
你还拥有如下子组件和组件对应的JSON schema,根据用户需求进行页面生成:
表格,componentName为Table,表格的列放在children中,未指定列时默认包含资源和配置两列,对应列的内容默认为文本类型,表格对应的JSON DSL为 : {"componentName": "Table", "props": {"rowKey": "id"}, "slots": {}, "children":[{"componentName": "TableColumn", "props": {"title": "\u8d44\u6e90"}, "slots": {}, "children": [{"componentName": "Text", "props": {"content": "\u8d44\u6e90\u60c5\u51b5"}, "slots": {}, "children": []}]}, {"componentName":"TableColumn", "props": {"title": "\u914d\u7f6e"}, "slots": {}, "children":[{"componentName": "Text", "props": {"content": "\u914d\u7f6e\u60c5\u51b5"},"slots": {}, "children": []}]}]};
tab选项卡,componentName为Tabs,tab选项卡是一个布局组件,props属性中的items对应有几个选项卡,与children中的TabPane数量是对应起来的,子组件添加到对应的TabPane的children字段中,tab选项卡的JSON schema为 : {"componentName": "Tabs", "props": {"items": [{"key": "1", "label": "Tab 1"}, {"key": "2", "label": "Tab 2"}, {"key": "3", "label": "Tab 3"}]}, "slots": {}, "children":[{"componentName": "TabPane", "props": {"label": "Tab 1", "key": "1", "disabled": false}, "slots": {}, "children": []}, {"componentName": "TabPane", "props": {"label": "Tab 2", "key": "2", "disabled": false}, "slots": {}, "children": []}, {"componentName": "TabPane", "props": {"label":"Tab 3", "key": "3", "disabled": false}, "slots": {}, "children": []}]};
#第二输出指示符:
根据以上的信息生成页面的JSON schema,不要返回JSON格式之外的任何文本。
#描述文本:
用户输入:我想要一个模型管理页面,有两个选项卡,一个叫我的模型,一个公开模型,每个选项卡下都包含一个列表,列表字段为模型名称、作者、创建时间。
在本说明书一个可选的实施例中,上述S302生成第二示例还存在下述两种情况:
第一种:当用户意图判断结果为新建页面意图时,将参考文本、各第二参考组件的代码和各第一参考组件的信息拼接,得到第二示例。此种情况与前述S302类似,此处不赘述。
第二种:当用户意图判断结果为修改页面意图时,获取历史提示文本以及所述历史提示文本对应的已生成页面所采用的组件的代码,根据所述参考文本、所述各第二参考组件的信息、所述各第一参考组件的信息、所述历史提示文本和所述历史提示文本对应的已生成页面所采用的组件的代码,确定第二示例。其中,所述历史提示文本包括用于确定所述已生成页面所采用的组件的代码的提示文本。
具体的,在每一次基于人机对话和预训练的自然语言模型进行前端界面开发时,提示词服务后端模块都可以将当前轮次的第二提示文本和生成的前端页面代码绑定并存储在历史数据库中。这些信息可用于下一轮次的页面开发过程中生成新的第二提示文本。
以上为本说明书的一个或多个实施例提供的智能低代码页面开发方法,基于同样的思路,本说明书还提供了相应的智能低代码页面开发装置,如图5所示。
图5为本说明书提供的一种智能低代码页面开发装置示意图,所述装置应用于提示词服务后端模块,所述装置包括:
描述文本接收单元400,用于接收人机对话前端界面模块发送的描述文本,确定所述描述文本的特征向量;所述描述文本用于以自然语言描述的方式描述针对前端页面的操作需求,所述操作需求至少包括新建页面和修改页面;
第一参考组件确定单元402,用于根据所述描述文本的特征向量,查找与所述描述文本相关的各第一参考组件;
第一提示文本确定单元404,用于根据所述描述文本和用户意图判断提示词,生成第一提示文本,将所述第一提示文本发送给大模型问答模块,以使所述大模型问答模块将所述第一提示文本输入预训练的自然语言模型,得到用户意图判断结果,并返回;
第二提示文本确定单元406,用于响应于所述大模型问答模块返回的用户意图判断结果,根据所述用户意图判断结果、所述各第一参考组件的信息、页面开发提示词和所述描述文本,生成第二提示文本,将所述第二提示文本发送给所述大模型问答模块,以使所述大模型问答模块将所述第二提示文本输入预训练的自然语言模型,得到前端页面代码,并返回;其中,所述前端页面代码由各目标组件的代码构成。
转发单元408,用于接收所述大模型问答模块发送的前端页面代码,将所述前端页面代码转发给智能低代码平台编辑器渲染模块,使得所述智能低代码平台编辑器渲染模块对所述前端页面代码进行解析,渲染得到前端页面,并展示所述前端页面。
可选地,所述第一参考组件确定单元402具体用于,确定向量数据库中预先存储的各组件的特征向量;所述组件包括布局类型的组件和用户界面UI类型的组件;分别确定所述描述文本的特征向量和所述各组件的特征向量之间的向量距离;根据所述描述文本的特征向量和所述各组件的特征向量之间的向量距离,从所述各组件中,选择指定数量的各第一参考组件。
可选地,所述第一参考组件确定单元402具体用于,获取多个组件分别对应的标识、描述和代码;针对每个组件,将该组件的描述输入到预先训练的特征提取模型,得到该组件的特征向量;将该组件的标识、该组件的描述、该组件的特征向量和该组件的代码进行绑定,并存储在向量数据库中。
可选地,所述第一提示文本确定单元404具体用于,获取预先编写的用户意图判断提示词,所述用户意图判断提示词用于引导预训练的自然语言模型基于所述描述文本判断用户意图的类型,所述用户意图的类型至少包括新建类、修改类和其他类;获取若干预先编写的与用户意图判断相关的参考问答对,作为第一示例;获取第一输出指示符,所述第一输出指示符用于指示预训练的自然语言模型输出的用户意图判断结果的格式;根据所述用户意图判断提示词、所述第一示例、所述描述文本和所述第一输出指示符,生成第一提示文本。
可选地,所述第二提示文本确定单元406,具体用于获取预先编写的业务开发提示词,所述业务开发提示词用于引导预训练的自然语言模型根据输入生成符合用户意图的前端页面代码;获取用于描述参考页面的参考文本和生成所述参考页面所采用的各第二参考组件的信息,并根据所述参考文本、所述各第二参考组件的信息和所述各第一参考组件的信息,确定第二示例;其中,所述第二参考组件的信息包括所述第二参考组件的标识、描述和代码;所述第一参考组件的信息包括所述第一参考组件的标识、描述和代码;获取第二输出指示符,所述第二输出指示符用于指示预训练的自然语言模型输出的前端页面代码的格式;根据所述用户意图判断结果、所述第二示例、所述描述文本和所述第二输出指示符,生成第二提示文本。
可选地,所述第二提示文本确定单元406,具体用于当所述用户意图判断结果为新建页面意图时,将所述参考文本、所述各第二参考组件的代码和所述各第一参考组件的信息拼接,得到第二示例;当所述用户意图判断结果为修改页面意图时,获取历史提示文本以及所述历史提示文本对应的已生成页面所采用的组件的代码,根据所述参考文本、所述各第二参考组件的信息、所述各第一参考组件的信息、所述历史提示文本和所述历史提示文本对应的已生成页面所采用的组件的代码,确定第二示例;其中,所述历史提示文本包括用于确定所述已生成页面所采用的组件的代码的提示文本。
本说明书还提供了一种计算机可读存储介质,该存储介质存储有计算机程序,计算机程序可用于执行上述图2所示的智能低代码页面开发方法。
本说明书还提供了图6所示的电子设备的示意结构图。如图6所述,在硬件层面,该电子设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,以实现上述图2所示的智能低代码页面开发方法。当然,除了软件实现方式之外,本说明书并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device, PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字***“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20 以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的***、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本说明书的实施例可提供为方法、***、或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书是参照根据本说明书实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本说明书的实施例可提供为方法、***或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于***实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。
Claims (9)
1.一种智能低代码页面开发***,其特征在于,所述***包括:人机对话前端界面模块、提示词服务后端模块、大模型问答模块、智能低代码平台编辑器渲染模块;
所述人机对话前端界面模块,用于响应于用户输入的描述文本,将所述描述文本发送给所述提示词服务后端模块,所述描述文本用于以自然语言描述的方式描述针对前端页面的操作需求,所述操作需求至少包括新建页面和修改页面;
所述提示词服务后端模块,用于接收所述描述文本,确定所述描述文本的特征向量;根据所述描述文本的特征向量,查找与所述描述文本相关的各第一参考组件;根据所述描述文本和用户意图判断提示词,生成第一提示文本,将所述第一提示文本发送给所述大模型问答模块;响应于所述大模型问答模块返回的用户意图判断结果,根据所述用户意图判断结果、所述各第一参考组件的信息、页面开发提示词和所述描述文本,生成第二提示文本,将所述第二提示文本发送给所述大模型问答模块;接收所述大模型问答模块发送的前端页面代码,将所述前端页面代码转发给所述智能低代码平台编辑器渲染模块;
所述大模型问答模块,用于接收所述第一提示文本,将所述第一提示文本输入预训练的自然语言模型,得到用户意图判断结果,并将所述用户意图判断结果返回给所述提示词服务后端模块;接收所述第二提示文本,将所述第二提示文本输入预训练的自然语言模型,得到前端页面代码;其中,所述前端页面代码由各目标组件的代码构成;将所述前端页面代码发送给提示词服务后端模块;
所述智能低代码平台编辑器渲染模块,用于接收所述提示词服务后端模块发送的前端页面代码,对所述前端页面代码进行解析,渲染得到前端页面,并展示所述前端页面;
所述提示词服务后端模块,具体用于确定向量数据库中预先存储的各组件的特征向量;所述组件包括布局类型的组件和用户界面UI类型的组件;分别确定所述描述文本的特征向量和所述各组件的特征向量之间的向量距离;根据所述描述文本的特征向量和所述各组件的特征向量之间的向量距离,从所述各组件中,选择指定数量的各第一参考组件。
2.一种智能低代码页面开发方法,其特征在于,所述方法应用于提示词服务后端模块,所述方法包括:
接收人机对话前端界面模块发送的描述文本,确定所述描述文本的特征向量;所述描述文本用于以自然语言描述的方式描述针对前端页面的操作需求,所述操作需求至少包括新建页面和修改页面;
根据所述描述文本的特征向量,查找与所述描述文本相关的各第一参考组件;
根据所述描述文本和用户意图判断提示词,生成第一提示文本,将所述第一提示文本发送给大模型问答模块,以使所述大模型问答模块将所述第一提示文本输入预训练的自然语言模型,得到用户意图判断结果,并返回;
响应于所述大模型问答模块返回的用户意图判断结果,根据所述用户意图判断结果、所述各第一参考组件的信息、页面开发提示词和所述描述文本,生成第二提示文本,将所述第二提示文本发送给所述大模型问答模块,以使所述大模型问答模块将所述第二提示文本输入预训练的自然语言模型,得到前端页面代码,并返回;其中,所述前端页面代码由各目标组件的代码构成;
接收所述大模型问答模块发送的所述前端页面代码,将所述前端页面代码转发给智能低代码平台编辑器渲染模块,使得所述智能低代码平台编辑器渲染模块对所述前端页面代码进行解析,渲染得到前端页面,并展示所述前端页面;
所述根据所述描述文本的特征向量,查找与所述描述文本相关的各第一参考组件,具体包括:
确定向量数据库中预先存储的各组件的特征向量;所述组件包括布局类型的组件和用户界面UI类型的组件;
分别确定所述描述文本的特征向量和所述各组件的特征向量之间的向量距离;
根据所述描述文本的特征向量和所述各组件的特征向量之间的向量距离,从所述各组件中,选择指定数量的各第一参考组件。
3.如权利要求2所述的方法,其特征在于,所述确定向量数据库中预先存储的各组件的特征向量,具体包括:
获取多个组件分别对应的标识、描述和代码;
针对每个组件,将该组件的描述输入到预先训练的特征提取模型,得到该组件的特征向量;
将该组件的标识、该组件的描述、该组件的特征向量和该组件的代码进行绑定,并存储在向量数据库中。
4.如权利要求2所述的方法,其特征在于,所述根据所述描述文本和用户意图判断提示词,生成第一提示文本,具体包括:
获取预先编写的用户意图判断提示词,所述用户意图判断提示词用于引导预训练的自然语言模型基于所述描述文本判断用户意图的类型,所述用户意图的类型至少包括新建类、修改类和其他类;
获取若干预先编写的与用户意图判断相关的参考问答对,作为第一示例;
获取第一输出指示符,所述第一输出指示符用于指示预训练的自然语言模型输出的用户意图判断结果的格式;
根据所述用户意图判断提示词、所述第一示例、所述描述文本和所述第一输出指示符,生成第一提示文本。
5.如权利要求2所述的方法,其特征在于,所述根据所述用户意图判断结果、所述各第一参考组件的信息、页面开发提示词和所述描述文本,生成第二提示文本,具体包括:
获取预先编写的业务开发提示词,所述业务开发提示词用于引导预训练的自然语言模型根据输入生成符合用户意图的前端页面代码;
获取用于描述参考页面的参考文本和生成所述参考页面所采用的各第二参考组件的信息,并根据所述参考文本、所述各第二参考组件的信息和所述各第一参考组件的信息,确定第二示例;其中,所述第二参考组件的信息包括所述第二参考组件的标识、描述和代码;所述第一参考组件的信息包括所述第一参考组件的标识、描述和代码;
获取第二输出指示符,所述第二输出指示符用于指示预训练的自然语言模型输出的前端页面代码的格式;
根据所述用户意图判断结果、所述第二示例、所述描述文本和所述第二输出指示符,生成第二提示文本。
6.如权利要求5所述的方法,其特征在于,所述根据所述参考文本、所述各第二参考组件的信息和所述各第一参考组件的信息,确定第二示例,具体包括:
当所述用户意图判断结果为新建页面意图时,将所述参考文本、所述各第二参考组件的信息和所述各第一参考组件的信息拼接,得到第二示例;
当所述用户意图判断结果为修改页面意图时,获取历史提示文本以及所述历史提示文本对应的已生成页面所采用的组件的代码,根据所述参考文本、所述各第二参考组件的信息、所述各第一参考组件的信息、所述历史提示文本和所述历史提示文本对应的已生成页面所采用的组件的代码,确定第二示例;其中,所述历史提示文本包括用于确定所述已生成业务所采用的组件的代码的提示文本。
7.一种智能低代码页面开发装置,其特征在于,所述装置应用于提示词服务后端模块,所述装置包括:
描述文本接收单元,用于接收人机对话前端界面模块发送的描述文本,确定所述描述文本的特征向量;所述描述文本用于以自然语言描述的方式描述针对前端页面的操作需求,所述操作需求至少包括新建页面和修改页面;
第一参考组件确定单元,用于根据所述描述文本的特征向量,查找与所述描述文本相关的各第一参考组件;
第一提示文本确定单元,用于根据所述描述文本和用户意图判断提示词,生成第一提示文本,将所述第一提示文本发送给大模型问答模块,以使所述大模型问答模块将所述第一提示文本输入预训练的自然语言模型,得到用户意图判断结果,并返回;
第二提示文本确定单元,用于响应于所述大模型问答模块返回的用户意图判断结果,根据所述用户意图判断结果、所述各第一参考组件的信息、页面开发提示词和所述描述文本,生成第二提示文本,将所述第二提示文本发送给所述大模型问答模块,以使所述大模型问答模块将所述第二提示文本输入预训练的自然语言模型,得到前端页面代码,并返回;其中,所述前端页面代码由各目标组件的代码构成;
转发单元,用于接收所述大模型问答模块发送的前端页面代码,将所述前端页面代码转发给智能低代码平台编辑器渲染模块,使得所述智能低代码平台编辑器渲染模块对所述前端页面代码进行解析,渲染得到前端页面,并展示所述前端页面;
所述第一参考组件确定单元具体用于,确定向量数据库中预先存储的各组件的特征向量;所述组件包括布局类型的组件和用户界面UI类型的组件;分别确定所述描述文本的特征向量和所述各组件的特征向量之间的向量距离;根据所述描述文本的特征向量和所述各组件的特征向量之间的向量距离,从所述各组件中,选择指定数量的各第一参考组件。
8.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述权利要求2~6任一项所述的方法。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现上述权利要求2~6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311604254.XA CN117331561B (zh) | 2023-11-28 | 2023-11-28 | 一种智能低代码页面开发***及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311604254.XA CN117331561B (zh) | 2023-11-28 | 2023-11-28 | 一种智能低代码页面开发***及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117331561A CN117331561A (zh) | 2024-01-02 |
CN117331561B true CN117331561B (zh) | 2024-02-13 |
Family
ID=89283351
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311604254.XA Active CN117331561B (zh) | 2023-11-28 | 2023-11-28 | 一种智能低代码页面开发***及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117331561B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117555644B (zh) * | 2024-01-11 | 2024-04-30 | 之江实验室 | 一种基于自然语言交互的前端页面构建方法及装置 |
CN117971190B (zh) * | 2024-03-28 | 2024-07-02 | 易方信息科技股份有限公司 | 基于大语言模型的页面自动化操作生成方法及相关装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113760276A (zh) * | 2020-10-14 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 一种生成页面代码的方法和装置 |
CN115145551A (zh) * | 2022-08-02 | 2022-10-04 | 北京航空航天大学 | 一种面向机器学习应用低代码开发的智能辅助*** |
CN115562656A (zh) * | 2022-10-18 | 2023-01-03 | 康键信息技术(深圳)有限公司 | 页面的生成方法、装置、存储介质及计算机设备 |
CN115617327A (zh) * | 2022-11-08 | 2023-01-17 | 浙江极氪智能科技有限公司 | 低代码页面搭建***、方法及计算机可读存储介质 |
CN115857920A (zh) * | 2021-09-23 | 2023-03-28 | 华为云计算技术有限公司 | 应用页面开发方法、装置、***、计算设备及存储介质 |
CN116028035A (zh) * | 2022-12-16 | 2023-04-28 | 网易(杭州)网络有限公司 | 一种代码处理方法、前端页面开发***及电子设备 |
CN116541116A (zh) * | 2023-05-09 | 2023-08-04 | 之江实验室 | 一种云原生***的应用界面渲染方法、装置、介质及设备 |
CN116931911A (zh) * | 2023-06-15 | 2023-10-24 | 明物数智科技研究院(南京)有限公司 | 一种基于aigc的智能低代码应用开发平台及开发方法 |
-
2023
- 2023-11-28 CN CN202311604254.XA patent/CN117331561B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113760276A (zh) * | 2020-10-14 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 一种生成页面代码的方法和装置 |
CN115857920A (zh) * | 2021-09-23 | 2023-03-28 | 华为云计算技术有限公司 | 应用页面开发方法、装置、***、计算设备及存储介质 |
WO2023045862A1 (zh) * | 2021-09-23 | 2023-03-30 | 华为云计算技术有限公司 | 应用页面开发方法、装置、***、计算设备及存储介质 |
CN115145551A (zh) * | 2022-08-02 | 2022-10-04 | 北京航空航天大学 | 一种面向机器学习应用低代码开发的智能辅助*** |
CN115562656A (zh) * | 2022-10-18 | 2023-01-03 | 康键信息技术(深圳)有限公司 | 页面的生成方法、装置、存储介质及计算机设备 |
CN115617327A (zh) * | 2022-11-08 | 2023-01-17 | 浙江极氪智能科技有限公司 | 低代码页面搭建***、方法及计算机可读存储介质 |
CN116028035A (zh) * | 2022-12-16 | 2023-04-28 | 网易(杭州)网络有限公司 | 一种代码处理方法、前端页面开发***及电子设备 |
CN116541116A (zh) * | 2023-05-09 | 2023-08-04 | 之江实验室 | 一种云原生***的应用界面渲染方法、装置、介质及设备 |
CN116931911A (zh) * | 2023-06-15 | 2023-10-24 | 明物数智科技研究院(南京)有限公司 | 一种基于aigc的智能低代码应用开发平台及开发方法 |
Non-Patent Citations (3)
Title |
---|
Improving Collaboration Efficiency Between UX/UI Designers and Developers in a Low-Code Platform;Pacheco, Joao.et;《24TH ACM/IEEE INTERNATIONAL CONFERENCE ON MODEL-DRIVEN ENGINEERING LANGUAGES AND SYSTEMS COMPANION (MODELS-C 2021)》;全文 * |
基于配置文件的web页面自动生成***;尹航;詹舒波;;软件(10);全文 * |
面向深度学***台的设计与实现;孙禹铭;《中国优秀硕士学位论文全文数据库 (信息科技辑)》;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN117331561A (zh) | 2024-01-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN117331561B (zh) | 一种智能低代码页面开发***及方法 | |
CN111695345B (zh) | 文本中实体识别方法、以及装置 | |
CN110457449B (zh) | 在线训练模型的方法、装置、设备及存储介质 | |
CN115952272B (zh) | 一种生成对话信息的方法、装置、设备及可读存储介质 | |
CN113221555B (zh) | 一种基于多任务模型的关键词识别方法、装置及设备 | |
CN107622080B (zh) | 一种数据处理方法及设备 | |
CN116188632A (zh) | 一种图像的生成方法、装置、存储介质及电子设备 | |
US20240184543A1 (en) | Page multiplexing method, page multiplexing device, storage medium and electronic apparatus | |
CN117555644B (zh) | 一种基于自然语言交互的前端页面构建方法及装置 | |
CN117591661B (zh) | 一种基于大语言模型的问答数据构建方法及装置 | |
CN108446266B (zh) | 一种语句拆分的方法、装置及设备 | |
CN117076650A (zh) | 一种基于大语言模型的智能对话方法、装置、介质及设备 | |
CN116127328B (zh) | 一种对话状态识别模型的训练方法、装置、介质及设备 | |
CN117216271A (zh) | 一种文章文本处理方法、装置以及设备 | |
CN117216222A (zh) | 一种智能问答方法、装置及相关设备 | |
CN116662657A (zh) | 一种模型训练和信息推荐的方法、装置、存储介质及设备 | |
CN111209277A (zh) | 一种数据处理方法、装置、设备及介质 | |
CN116243914A (zh) | 国际化软件开发的方法、国际化软件开发***及服务器 | |
CN112988986B (zh) | 人机交互方法、装置与设备 | |
CN114117028A (zh) | 一种信息推荐方法、装置、存储介质及电子设备 | |
CN113344197A (zh) | 一种识别模型的训练方法、业务执行的方法以及装置 | |
CN117369783B (zh) | 一种安全代码生成模型的训练方法及装置 | |
CN115017915B (zh) | 一种模型训练、任务执行的方法及装置 | |
CN116795972B (zh) | 一种模型训练的方法、装置、存储介质及电子设备 | |
CN115658891B (zh) | 一种意图识别的方法、装置、存储介质及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |