代码生成方法、装置和电子设备
文献发布时间:2024-04-18 19:58:30
技术领域
本公开涉及计算机技术领域,尤其涉及一种代码生成方法、装置和电子设备。
背景技术
随着计算机的发展,用户可以使用电子设备实现各种功能。例如,用户可以通过电子设备获取各种资源。
在一些场景中,开放平台(例如提供数据或者提供软件服务的平台),可以将自身的系统和数据,通过公开其应用程序编程接口(API)来使外部的程序使用该系统的资源,而不需要更改该系统的源代码。开放平台可以提供用于接口转发的软件开发工具包,以提供该平台的统一、便捷的接口调用机制。。
发明内容
提供该公开内容部分以便以简要的形式介绍构思,这些构思将在后面的具体实施方式部分被详细描述。该公开内容部分并不旨在标识要求保护的技术方案的关键特征或必要特征,也不旨在用于限制所要求的保护的技术方案的范围。
第一方面,本公开实施例提供了一种代码生成方法,该方法包括:获取软件开发工具包的第一语言SDK代码,其中,所述软件开发工具包括应用程序编程接口,所述应用程序编程接口用于调用开放平台的资源;将所述第一语言SDK代码和预设的第一引导信息,导入自然语言生成模型,其中,所述自然语言生成模型用于根据引导信息生成响应的答案信息;获取所述自然语言生成模型输出的第二语言SDK代码;其中,所述第一引导信息包括第二语言种类和接口命名指定信息,所述接口命名指定信息用于指定所述应用程序编程接口的命名方式在第一语言SDK代码中与第二语言SDK代码中相同。
第二方面,本公开实施例提供了一种代码生成装置,包括:第一获取单元,用于获取软件开发工具包的第一语言SDK代码,其中,所述软件开发工具包括应用程序编程接口,所述应用程序编程接口用于调用开放平台的资源;导入单元,用于将所述第一语言SDK代码和预设的第一引导信息,导入自然语言生成模型,其中,所述自然语言生成模型用于根据引导信息生成响应的答案信息;第二获取单元,用于获取所述自然语言生成模型输出的第二语言SDK代码;其中,所述第一引导信息包括第二语言种类和接口命名指定信息,所述接口命名指定信息用于指定所述应用程序编程接口的命名方式在第一语言SDK代码中与第二语言SDK代码中相同。
第三方面,本公开实施例提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面所述的代码生成方法。
第四方面,本公开实施例提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面所述的代码生成方法的步骤。
本公开实施例提供的代码生成方法、装置和电子设备,通过将所述第一语言SDK代码和预设的第一引导信息,导入生成式预训练模型,得到第二语音SDK代码,第一引导信息包括第二语音种类和接口命名指定信息,接口命名指定信息用于指定不改变应用程序编程接口的命名方式,由此,可以在开放平台提供SDK代码生成的场景中,通过自然语言生成模型,实现SDK代码的语言种类的转换,在转换之前,指定接口命名方式不变,可以得到接口命名方式规范的转换后代码。进而,提供该平台的统一、便捷的接口调用机制,减少调用出错概率;提高翻译准确性,避免造成代码遗漏;降低人工成本大;在SDK代码需要迭代的场景中,可以实现快速迭代。
附图说明
结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。
图1是根据本公开的代码生成方法的一个实施例的流程图;
图2是根据本公开的代码生成方法的一个实施例的流程图;
图3是根据本公开的代码生成方法的一个应用场景的示意图;
图4是根据本公开的代码生成方法的一个应用场景的示意图;
图5是根据本公开的代码生成装置的一个实施例的结构示意图;
图6是本公开的一个实施例的代码生成方法可以应用于其中的示例性系统架构;
图7是根据本公开实施例提供的电子设备的基本结构的示意图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
在本公开的一个或者多个实施例中,软件开发工具包(Software DevelopmentKit,SDK),辅助开发某一类软件的相关文档、范例和工具的集合。有的平台(例如提供数据或者提供软件服务的平台),将自身的系统和数据,通过公开其应用程序编程接口(API)来使外部的程序使用该系统的资源,而不需要更改该系统的源代码。这些平台可以提供用于接口转发的软件开发工具包,以提供该平台的统一、便捷的接口调用机制。平台的用于接口转发的SDK,可以支持多种编程语言(例如,NodeJS、Java、Python、Go、PHP和Rust),使得开发者能够在各种环境中快速集成和使用平台。
在本公开的一个或者多个实施例中,为了多种语言的SDK,可以先编写一种语言的SDK,然后基于编写的SDK进行语言转换,得到多种语言的SDK。由此,可以规范化接口调用规范,多种编程语言SDK均采用同一套代码逻辑,同一套API,节省人力;只需要一次编写过程,加速产研迭代功能;由转换得到多种语言的SDK,无需专门熟悉某种语言的工作人员编写或者维护。对比来说,在一些相关技术中,开发一个多语言的SDK。先要实现翻译语言,然后人工手动翻译成另外几种语言。存在以下问题:手动翻译非常容易出问题,容易造成代码遗漏;每一种需要都需要熟悉该语言的人员翻译,人工成本大;翻译后的代码接口命名和字段命名规范可能不同,更容易造成用户调用出错;迭代速度慢,每次改动都需要熟悉该语言的人员手动更新。
在本公开的一个或者多个实施例中,可以根据静态、成熟度和代码量,选择翻译语言(翻译语言为待转换的语言,例如使用Go),利用翻译语言编写SDK的代码。然后,翻译语言的代码导入自然语言生成式模型(例如自己搭建或者使用开源模型);并且,导入使用自然语言生成式模型的引导词(例如自然语言描述的文本),作为模型的重要输入来指导模型生成内容。再后,可以得到自然语言生成模型输出的其它语言的SDK代码。
在本公开的一个或者多个实施例中,可以在引导词中指出翻译语言种类(输入模型的代码的语言种类)和被翻译语言种类(模型输出的代码的语言种类)。通过改变引导词中指定的被翻译语言种类,可以得到不同语言种类的SDK代码。
在本公开的一个或者多个实施例中,翻译文件数量和大小是一个重要的注意项。例如有的模型限制单次输入不超过24576个单词,每次翻译内容不多余20000个字符。因此,可以将SDK代码都写在一个文件里,提高翻译准确度。
在本公开的一个或者多个实施例中,SDK的测试用例也可以使用上述自然语言生成模型进行翻译。例如,可以先编写一种语言的测试用例,然后,将引导词和测试用例导入至自然语言生成模型,由自然语言生成模型输出另外一种语言的测试用例。通过改变引导词中指定的被翻译语言种类,可以得到不同语言种类的测试用例。
请参考图1,其示出了根据本公开的代码生成方法的一个实施例的流程。如图1所示该代码生成方法,包括以下步骤:
步骤101,获取软件开发工具包的第一语言SDK代码。
在本实施例中,代码生成方法的执行主体(例如服务器和/或终端设备)可以获取软件开发工具包的第一语言SDK代码。
在这里,所述软件开发工具包括应用程序编程接口,所述应用程序编程接口用于调用开放平台的资源。
软件开发工具包也可以称为SDK,第一语言SDK代码可以是第一语言种类的SDK代码。为了方便,也可以称第一语言SDK代码为第一语言SDK。
第一语言SDK代码可以由人工编辑生成,也可以由经过自然语言生成模型转换得到。
开放平台的资源可以包括但是不限于开放平台的数据或者系统服务等。
第一语言SDK代码的语言种类,可以称为第一语言种类。第一语言种类可以根据实际应用场景确定,在此不做限定。
步骤102,将所述第一语言SDK代码和预设的第一引导信息,导入自然语言生成模型。
在这里,所述自然语言生成模型用于根据引导信息生成响应的答案信息。
引导信息,也可以称为引导词(prompt),引导信息可以用于指示自然语言生成模型将第一语音SDK代码转换为第二语言SDK代码。
自然语言生成模型(Neural Language Generation,NLG),利用人工智能和语言学的方法来自动地生成可理解的自然语言文本。NLG降低了人类和计算机之间沟通的难度,被广泛应用于机器新闻写作、聊天机器人等领域。
在一些场景中,自然语言生成模型可以是预训练得到的。预训练模型通过在大规模无标注的文本语料上进行预训练,获得了具有强大表达能力和泛化性的文本编码器,在自然语言理解任务(如文本分类、阅读理解、信息抽取)上取得了显著的性能效果。但NLP中的另一任务,即自然语言生成,如机器翻译、文本摘要、对话生成等,不仅需要对输入文本进行较好的表示编码,还需要强大的解码器生成文本,由此可以提出生成式预训练模型,例如UniLM、BART、T5、GPT等。
可选的,可以将所述第一语言SDK代码和预设的第一引导信息,导入生成式预训练模型,得到第二语音SDK代码。
作为示例,第一引导信息可以包括:请将这段代码翻译为Python代码,并且不改变API命名。
步骤103,获取所述自然语言生成模型输出的第二语言SDK代码。
在这里,所述第一引导信息包括第二语言种类和接口命名指定信息。第一引导信息中的第二语音种类可以作为被翻译语言。
在这里,所述接口命名指定信息用于指定所述应用程序编程接口的命名方式在第一语言SDK代码中与第二语言SDK代码中相同。
需要说明的是,本实施例提供的代码生成方式,通过将所述第一语言SDK代码和预设的第一引导信息,导入生成式预训练模型,得到第二语音SDK代码,第一引导信息包括第二语音种类和接口命名指定信息,接口命名指定信息用于指定不改变应用程序编程接口的命名方式,由此,可以在开放平台提供SDK代码生成的场景中,通过自然语言生成模型,实现SDK代码的语言种类的转换,在转换之前,指定接口命名方式不变,可以得到接口命名方式规范的转换后代码。进而,提供该平台的统一、便捷的接口调用机制,减少调用出错概率;提高翻译准确性,避免造成代码遗漏;降低人工成本大;在SDK代码需要迭代的场景中,可以实现快速迭代。
作为示例,请参考图3,图3中示出了将第一引导信息和第一语言SDK代码导入至自然语言生成模型,自然语言生成模型输出第二语言SDK代码。
在一些实施例中,所述第一语言SDK代码一次性导入至所述自然语言生成模型。
在这里,将待转换的第一语言SDK代码存储于同一个文件中,然后一次性输入至自然语言生成模型,可以利用自然语言生成模型对整体代码理解较好较全面的特性,提高转换得到的第二语言SDK代码的准确性。
在一些实施例中,所述自然语言生成模型具有用于限制单次输入字符量的第一数量阈值。
在一些实施例中,所述将所述第一语言SDK代码和预设的第一引导信息,导入自然语言生成模型,包括:响应于所述第一语言SDK代码的字符数量大于所述第一数量阈值,将所述第一语言SDK代码存储于至少两个子文件,不同子文件中的代码之间不具有调用关系;将所述至少两个子文件中的代码分别导入所述自然语言生成模型。
在一些实施例中,所述获取所述自然语言生成模型输出的第二语言SDK代码,包括:拼接所述自然语言生成模型的与所述指示两个子文件对应的输出,得到所述第二语言SDK代码。
需要说明的是,通过将第一语言SDK代码分解为至少两块相关性较低的代码,分批转换;然后拼接分批转换的转换结果,可以在第一语音SDK代码较多的时候,利用具有输入字符限制的自然语言生成模型进行代码转换,提高利用自然语言生成模型进行转换的适用性,并且,减少不同批次的代码之间的相关性,避免由于子文件中的代码对其它代码具有强依赖而导致的代码转换准确率降低,从而提高转换准确性。
在一些实施例中,所述第一引导信息还包括字段命名指定信息;其中,所述字段命名指定信息用于指定软件开发应用包中的字段在第一语言SDK代码中与第二语言SDK代码中相同。
在这里,SDK中的字段命名在不同语音种类的SDK中保持一致,可以提高SDK命名的规范性,保证对平台资源调用的准确性。
在一些实施例中,第一语言SDK代码的第一语言种类为静态语言。换句话说,可以选择静态语言的代码作为自然语言生成模型的输入。
作为示例,所使用的静态语言可以包括但是不限于以下任一一种:go、java和rust。
由此,可以利用静态语言携带的信息更多的特点,使得自然语言生成模型获得更多上下文,提高输出的代码的准确率。
在一些实施例中,第一语言SDK代码的第一语言种类,可以根据预估各种语言种类的SDK代码量确定。
可选的,可以在静态语言中,选择预估的代码量较少的语言,作为第一语言种类。
不同语言种类的SDK代码,代码量不同。在这里,对于输入到自然语言生成模型中的第一语言SDK代码,可以采用代码量较低或者最低的第一语言种类,一方面可以减少人员编写代码的工作量;另一方面可以减少导入至自然语言生成模型的代码量,降低计算量,降低需要分多个文件存储第一语言SDK代码的概率。
在一些实施例中,所述第一语言种类包括GO种类,所述第二语言种类包括以下任一一项:NodeJS、Java、Python、PHP和Rust。
GO语言的代码,代码量比较少,相当于说,比如说用同样的内容用其他语言去写,代码量会比GO的代码量多。选用GO语言得到的代码更精简,GO语言又是静态的,这样的话能生成的内容就是更多。
在一些实施例中,所述方法还包括:获取用于测试第一语言SDK代码的第一语言测试用例;将第一语言测试用例和第二引导信息,导入自然语言生成模型,其中,所述第二引导信息包括第二语言种类;获取所述自然语言生成模型输出的第二语言测试用例;基于所述第二语言测试用例,测试所述第二语言SDK代码。
作为示例,请参考图4,图4示出了将第一语言测试用例导入至自然语言生成模型,自然语言生成模型输出第二语音测试用例。其中,第一语言测试用例用于测试第一语言SDK代码,第二语言测试用例用于测试第二语音SDK代码。
需要说明的是,利用自然语言生成模型,翻译与SDK代码对应的测试用例,可以提高不同语言种类的测试用例的生成速度,并且提高测试用例的准确性,从而可以实现快速测试,提高SDK的上线速度。
请参考图2,其示出了根据本公开的代码生成方法的一个实施例的流程。如图2所示该代码生成方法,包括以下步骤:
步骤201,获取软件开发工具包的第一语言SDK代码。
在本实施例中,代码生成方法的执行主体(例如服务器和/或终端设备)可以获取软件开发工具包的第一语言SDK代码,其中,所述软件开发工具包括应用程序编程接口。
在这里,所述软件开发工具包括应用程序编程接口,所述应用程序编程接口用于调用开放平台的资源。
步骤202,响应于所述第一语言SDK代码的字符数量大于所述第一数量阈值,将所述第一语言SDK代码存储于至少两个子文件。
在这里,所述自然语言生成模型用于根据引导信息生成响应的答案信息。
步骤203,将所述至少两个子文件中的代码分别导入所述自然语言生成模型。
步骤204,拼接所述自然语言生成模型的与所述指示两个子文件对应的输出,得到所述第二语言SDK代码。
在这里,所述第一引导信息包括第二语言种类和接口命名指定信息。
在这里,所述接口命名指定信息用于指定所述应用程序编程接口的命名方式在第一语言SDK代码中与第二语言SDK代码中相同。
需要说明的是,本实施例提供的代码生成方式,通过将第一语言SDK代码分解为至少两块相关性较低的代码,分批转换;然后拼接分批转换的转换结果,可以在第一语音SDK代码较多的时候,利用具有输入字符限制的自然语言生成模型进行代码转换,提高利用自然语言生成模型进行转换的适用性,并且,减少不同批次的代码之间的相关性,避免由于子文件中的代码对其它代码具有强依赖而导致的代码转换准确率降低,从而提高转换准确性。
进一步参考图5,作为对上述各图所示方法的实现,本公开提供了一种代码生成装置的一个实施例,该装置实施例与图1所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图5所示,本实施例的代码生成装置包括:第一获取单元501、导入单元502和第二单元503。其中,第一获取单元,用于获取软件开发工具包的第一语言SDK代码,其中,所述软件开发工具包括应用程序编程接口,所述应用程序编程接口用于调用开放平台的资源;导入单元,用于将所述第一语言SDK代码和预设的第一引导信息,导入自然语言生成模型,其中,所述自然语言生成模型用于根据引导信息生成响应的答案信息;第二获取单元,用于获取所述自然语言生成模型输出的第二语言SDK代码;其中,所述第一引导信息包括第二语言种类和接口命名指定信息,所述接口命名指定信息用于指定所述应用程序编程接口的命名方式在第一语言SDK代码中与第二语言SDK代码中相同。
在本实施例中,代码生成装置的第一获取单元501、导入单元502和第二单元503的具体处理及其所带来的技术效果可分别参考图1对应实施例中步骤101、步骤102和步骤103的相关说明,在此不再赘述。
在一些实施例中,所述第一语言SDK代码一次性导入至所述自然语言生成模型。
在一些实施例中,所述自然语言生成模型具有用于限制单次输入字符量的第一数量阈值;以及所述将所述第一语言SDK代码和预设的第一引导信息,导入自然语言生成模型,包括:响应于所述第一语言SDK代码的字符数量大于所述第一数量阈值,将所述第一语言SDK代码存储于至少两个子文件,不同子文件中的代码之间不具有调用关系;将所述至少两个子文件中的代码分别导入所述自然语言生成模型;以及所述获取所述自然语言生成模型输出的第二语言SDK代码,包括:拼接所述自然语言生成模型的与所述指示两个子文件对应的输出,得到所述第二语言SDK代码。
在一些实施例中,所述第一引导信息还包括字段命名指定信息;其中,所述字段命名指定信息用于指定软件开发应用包中的字段在第一语言SDK代码中与第二语言SDK代码中相同。
在一些实施例中,第一语言SDK代码的第一语言种类为静态语言。
在一些实施例中,第一语言SDK代码的第一语言种类,根据预估各种语言种类的SDK代码量确定。
在一些实施例中,所述第一语言种类包括GO种类,所述第二语言种类包括以下任一一项:NodeJS、Java、Python、PHP和Rust。
在一些实施例中,所述装置还用于:获取用于测试第一语言SDK代码的第一语言测试用例;将第一语言测试用例和第二引导信息,导入自然语言生成模型,其中,所述第二引导信息包括第二语言种类;获取所述自然语言生成模型输出的第二语言测试用例;基于所述第二语言测试用例,测试所述第二语言SDK代码。
请参考图6,图6示出了本公开的一个实施例的代码生成方法可以应用于其中的示例性系统架构。
如图6所示,系统架构可以包括终端设备601、602、603,网络604,服务器605。网络604用以在终端设备601、602、603和服务器605之间提供通信链路的介质。网络604可以包括各种连接种类,例如有线、无线通信链路或者光纤电缆等等。
终端设备601、602、603可以通过网络604与服务器605交互,以接收或发送消息等。终端设备601、602、603上可以安装有各种客户端应用,例如网页浏览器应用、搜索类应用、新闻资讯类应用。终端设备601、602、603中的客户端应用可以接收用户的指令,并根据用户的指令完成相应的功能,例如根据用户的指令在信息中添加相应信息。
终端设备601、602、603可以是硬件,也可以是软件。当终端设备601、602、603为硬件时,可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、MP3播放器(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。当终端设备601、602、603为软件时,可以安装在上述所列举的电子设备中。其可以实现成多个软件或软件模块(例如用来提供分布式服务的软件或软件模块),也可以实现成单个软件或软件模块。在此不做具体限定。
服务器605可以是提供各种服务的服务器,例如接收终端设备601、602、603发送的信息获取请求,根据信息获取请求通过各种方式获取信息获取请求对应的展示信息。展示信息的相关数据发送给终端设备601、602、603。
需要说明的是,本公开实施例所提供的代码生成方法可以由终端设备执行,相应地,代码生成装置可以设置在终端设备601、602、603中。此外,本公开实施例所提供的代码生成方法还可以由服务器605执行,相应地,代码生成装置可以设置于服务器605中。
应该理解,图6中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图7,其示出了适于用来实现本公开实施例的电子设备(例如图6中的终端设备或服务器)的结构示意图。本公开实施例中的终端设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图7示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图7所示,电子设备可以包括处理装置(例如中央处理器、图形处理器等)701,其可以根据存储在只读存储器(ROM)702中的程序或者从存储装置708加载到随机访问存储器(RAM)703中的程序而执行各种适当的动作和处理。在RAM 703中,还存储有电子设备700操作所需的各种程序和数据。处理装置701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
通常,以下装置可以连接至I/O接口705:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置706;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置707;包括例如磁带、硬盘等的存储装置708;以及通信装置709。通信装置709可以允许电子设备与其他设备进行无线或有线通信以交换数据。虽然图7示出了具有各种装置的电子设备,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置709从网络上被下载和安装,或者从存储装置708被安装,或者从ROM 702被安装。在该计算机程序被处理装置701执行时,执行本公开实施例的方法中限定的上述功能。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
在一些实施方式中,客户端、服务器可以利用诸如HTTP(HyperText TransferProtocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”),广域网(“WAN”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:获取软件开发工具包的第一语言SDK代码,其中,所述软件开发工具包括应用程序编程接口,所述应用程序编程接口用于调用开放平台的资源;将所述第一语言SDK代码和预设的第一引导信息,导入自然语言生成模型,其中,所述自然语言生成模型用于根据引导信息生成响应的答案信息;获取所述自然语言生成模型输出的第二语言SDK代码;其中,所述第一引导信息包括第二语言种类和接口命名指定信息,所述接口命名指定信息用于指定所述应用程序编程接口的命名方式在第一语言SDK代码中与第二语言SDK代码中相同。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定,例如,第一获取单元还可以被描述为“获取代码的单元”。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范种类的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
- 报文预定义代码生成方法、装置、电子设备和存储介质
- 多版本代码生成方法、设备及电子设备
- 可弯曲电子设备、可弯曲电子设备的控制方法、装置及电子设备
- 电子设备显示屏驱动芯片驱动方法、装置及电子设备
- 天线结构及电子设备的信号接收方法、装置、电子设备
- 代码生成方法、代码生成装置、可视化平台及电子设备
- 代码生成方法、代码生成装置、存储介质及电子设备