对话式智能合约生成方法、装置、存储介质及电子设备制造方法及图纸

技术编号:38318073 阅读:12 留言:0更新日期:2023-07-29 09:00
本申请提供一种对话式智能合约生成方法、装置、存储介质及电子设备,涉及区块链领域。其中,电子设备通过与用户进行对话,确定用户需要的目标合约子功能;根据目标合约子功能,向用户提供引导语句,其中,引导语句用于引导用户提供目标合约子功能需要的参数。然后,根据用户对引导语句响应语句,获得目标合约子功能需要的参数;最后,根据目标合约子功能需要的参数,生成提供目标合约子功能的合约代码片段。如此,将智能合约划分为多个合约子功能,并在与用户对话的过程中确定出用户需要的目标合约子功能后,引导用户提供合约代码片段需要的参数,从而使得用户无需了解合约语言的细节即可获得智能合约代码。即可获得智能合约代码。即可获得智能合约代码。

【技术实现步骤摘要】
对话式智能合约生成方法、装置、存储介质及电子设备


[0001]本申请涉及区块链领域,具体而言,涉及一种对话式智能合约生成方法、装置、存储介质及电子设备。

技术介绍

[0002]现有的智能合约开发需要掌握专门的智能合约开发语言,例如,Solidity、Golang、Javascript等,对普通用户而言准入门槛较高。
[0003]以Solidity语言为例,其语法与C++相似,但是有一些区别。Solidity包括一些高级特性,如继承、事件和库,使得开发人员可以更轻松地编写复杂的智能合约。Solidity还支持不同的数据类型,包括布尔型、整型、地址型、字符串型和字节数组等。此外,Solidity还具有一些内置的函数,用于与区块链上的数据进行交互。
[0004]此外,Solidity作为一门静态类型语言,这意味着变量必须在编译时声明其类型。Solidity编译器将代码转换为Ethereum虚拟机(EVM)可以理解的字节码。智能合约可以使用Ethereum虚拟机上的Gas来执行。Gas是Ethereum区块链中的计费单位,用于支付运行智能合约的费用。因此,在编写Solidity智能合约时,需要考虑Gas使用情况,以确保代码的执行效率和经济性。
[0005]因此,对于一个没有计算机基础的人而言,掌握一门智能合约编程语言不是件易事,这其中不仅要理解开发语言本身的特性、应用场景、编程技巧,还要结合区块链特征编写出适用、合理且经济的代码,同时还要花费一定的时间和精力,具有相当高的学习成本。
专利技术内
[0006]为了克服现有技术中的至少一个不足,本申请提供一种对话式智能合约生成方法、装置、存储介质及电子设备,具体包括:
[0007]第一方面,本申请提供一种对话式智能合约生成方法,所述方法包括:
[0008]通过与用户进行对话,确定所述用户需要的目标合约子功能;
[0009]根据所述目标合约子功能,向所述用户提供引导语句,其中,所述引导语句用于引导所述用户提供所述目标合约子功能需要的参数;
[0010]根据所述用户对所述引导语句响应语句,获得所述目标合约子功能需要的参数;
[0011]根据所述目标合约子功能需要的参数,生成提供所述目标合约子功能的合约代码片段。
[0012]结合第一方面的可选实施方式,所述方法还包括:
[0013]获取至少一条合约代码片段;
[0014]将所述至少一条合约代码片段拼装成提供完整合约功能的智能合约代码。
[0015]结合第一方面的可选实施方式,所述将所述至少一条合约代码片段拼装成提供完整合约功能的智能合约代码,包括:
[0016]获取所述至少一条合约代码片段各自在对话上下文中的位置;
[0017]将所述至少一条合约代码片段按照各自在对话上下文中的位置进行拼装,得到所述提供完整合约功能的智能合约代码。
[0018]结合第一方面的可选实施方式,所述获取所述至少一条合约代码片段各自在对话上下文中的位置,包括:
[0019]获取上下文描述对象,其中,所述上下文描述对象记录有目标合约子功能在所述对话上下文中的出现位置;
[0020]根据所述上下文描述对象,获取所述至少一条合约代码片段各自在对话上下文中的位置。
[0021]结合第一方面的可选实施方式,所述根据所述目标合约子功能,向所述用户提供引导语句,包括:
[0022]获取所述目标合约子功能所需参数的参数名称;
[0023]根据所述参数名称,生成所述引导语句。
[0024]结合第一方面的可选实施方式,通过与用户进行对话,确定所述用户需要的目标合约子功能,包括:
[0025]接收用户输入的交互语句;
[0026]将所述交互语句与多个合约子功能的描述信息进行匹配,获得匹配成功的目标描述信息;
[0027]将所述目标描述信息对应的合约子功能,作为所述目标合约子功能。
[0028]结合第一方面的可选实施方式,所述将所述交互语句与多个合约子功能的描述信息进行匹配,获得匹配成功的目标描述信息,包括:
[0029]将所述交互语句转换为第一特征向量;
[0030]将所述多个合约子功能的描述信息转换为多个第二特征向量;
[0031]将所述多个第二特征向量分别与所述第一特征向量输入预先训练的语义识别模型,获得所述语义识别模型输出的多个匹配结果;
[0032]根据所述多个匹配结果,获得匹配成功的目标描述信息。
[0033]第二方面,本申请提供一种对话式智能合约生成装置,所述装置包括:
[0034]需求分析模块,用于通过与用户进行对话,确定所述用户需要的目标合约子功能;
[0035]参数引导模块,用于根据所述目标合约子功能,向所述用户提供引导语句,其中,所述引导语句用于引导所述用户提供所述目标合约子功能需要的参数;
[0036]所述参数引导模块,还用于根据所述用户对所述引导语句响应语句,获得所述目标合约子功能需要的参数;
[0037]代码生成模块,用于根据所述目标合约子功能需要的参数,生成提供所述目标合约子功能的合约代码片段。
[0038]结合第二方面的可选实施方式,所述代码生成模块还用于:
[0039]获取至少一条合约代码片段;
[0040]将所述至少一条合约代码片段拼装成提供完整合约功能的智能合约代码。
[0041]结合第二方面的可选实施方式,所述代码生成模块还用于:
[0042]获取所述至少一条合约代码片段各自在对话上下文中的位置;
[0043]将所述至少一条合约代码片段按照各自在对话上下文中的位置进行拼装,得到所
述提供完整合约功能的智能合约代码。
[0044]结合第二方面的可选实施方式,所述代码生成模块还用于:
[0045]获取上下文描述对象,其中,所述上下文描述对象记录有目标合约子功能在所述对话上下文中的出现位置;
[0046]根据所述上下文描述对象,获取所述至少一条合约代码片段各自在对话上下文中的位置。
[0047]结合第二方面的可选实施方式,所述参数引导模块还用于:
[0048]获取所述目标合约子功能所需参数的参数名称;
[0049]根据所述参数名称,生成所述引导语句。
[0050]结合第二方面的可选实施方式,所述需求分析模块还用于:
[0051]接收用户输入的交互语句;
[0052]将所述交互语句与多个合约子功能的描述信息进行匹配,获得匹配成功的目标描述信息;
[0053]将所述目标描述信息对应的合约子功能,作为所述目标合约子功能。
[0054]结合第二方面的可选实施方式,所述需求分析模块还用于:
[0055]将所述交互语句转换为第一特征向量;
[0056]将所述多个合约子功能的描述信息转换为多个第二特征向量;
[0057]将所述多个第二特征向量分别本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种对话式智能合约生成方法,其特征在于,所述方法包括:通过与用户进行对话,确定所述用户需要的目标合约子功能;根据所述目标合约子功能,向所述用户提供引导语句,其中,所述引导语句用于引导所述用户提供所述目标合约子功能需要的参数;根据所述用户对所述引导语句响应语句,获得所述目标合约子功能需要的参数;根据所述目标合约子功能需要的参数,生成提供所述目标合约子功能的合约代码片段。2.根据权利要求1所述对话式智能合约生成方法,其特征在于,所述方法还包括:获取至少一条合约代码片段;将所述至少一条合约代码片段拼装成提供完整合约功能的智能合约代码。3.根据权利要求2所述的对话式智能合约生成方法,其特征在于,所述将所述至少一条合约代码片段拼装成提供完整合约功能的智能合约代码,包括:获取所述至少一条合约代码片段各自在对话上下文中的位置;将所述至少一条合约代码片段按照各自在对话上下文中的位置进行拼装,得到所述提供完整合约功能的智能合约代码。4.根据权利要求3所述的对话式智能合约生成方法,其特征在于,所述获取所述至少一条合约代码片段各自在对话上下文中的位置,包括:获取上下文描述对象,其中,所述上下文描述对象记录有目标合约子功能在所述对话上下文中的出现位置;根据所述上下文描述对象,获取所述至少一条合约代码片段各自在对话上下文中的位置。5.根据权利要求1所述的对话式智能合约生成方法,其特征在于,所述根据所述目标合约子功能,向所述用户提供引导语句,包括:获取所述目标合约子功能所需参数的参数名称;根据所述参数名称,生成所述引导语句。6.根据权利要求1所述的对话式智能合约生成方法,其特征在于,通过与用户进行对话,确定所述用户需要的目标合约子功能...

【专利技术属性】
技术研发人员:张锦喜梁增健庞启荣顾世杰王廉灏
申请(专利权)人:广东卓启云链科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1