CN117289905B - 一种应用软件开发方法和装置、存储介质和电子设备 - Google Patents
一种应用软件开发方法和装置、存储介质和电子设备 Download PDFInfo
- Publication number
- CN117289905B CN117289905B CN202311591837.3A CN202311591837A CN117289905B CN 117289905 B CN117289905 B CN 117289905B CN 202311591837 A CN202311591837 A CN 202311591837A CN 117289905 B CN117289905 B CN 117289905B
- Authority
- CN
- China
- Prior art keywords
- development
- template type
- code
- prompt
- application software
- 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
- 238000000034 method Methods 0.000 title claims abstract description 78
- 238000003860 storage Methods 0.000 title claims abstract description 15
- 238000011161 development Methods 0.000 claims abstract description 350
- 230000006870 function Effects 0.000 claims description 12
- 238000012545 processing Methods 0.000 claims description 9
- 238000005096 rolling process Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 abstract description 11
- 239000008186 active pharmaceutical agent Substances 0.000 description 22
- 239000003595 mist Substances 0.000 description 12
- 238000010586 diagram Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 230000008451 emotion Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000013519 translation 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/20—Software design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/10—Requirements analysis; Specification techniques
-
- 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/35—Creation or generation of source code model driven
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开一种应用软件开发方法和装置、存储介质和电子设备,所述方法包括:根据应用软件非标准化开发模式,获取开发提示模板类型,以及基于所述开发提示模板类型输入的开发需求信息;根据所述开发提示模板类型对应的提示模板描述信息与所述开发需求信息,生成目标提示;根据所述目标提示,获取大语言模型提供的与所述开发需求信息对应的输出结果;其中,所述输出结果满足所述应用软件非标准化开发模式的开发要求和所述开发提示模板类型的类型要求。从而能够协助开发人员实现应用软件开发过程中需要的开发代码内容,且开发代码内容符合非标准化开发模式的规范和开发提示模板类型要求。
Description
技术领域
本申请涉及计算机应用技术,具体涉及一种应用软件开发方法和装置。本申请同时涉及一种计算机存储介质和电子设备。
背景技术
随着计算机技术和互联网技术的不断发展,承载于电子设备上的应用软件层出不穷,在满足娱乐需求的情况下,也满足生活、工作等各方面的需求。
然而,应用软件的开发过程包括软件的需求分析、软件功能实现的算法、软件的架构设计、编码、调整、测试等等一些系列的开发工作,该过程开发人员常常需要处理大量重复性、繁琐的编写代码等相关开发工作。因此,代码编写效率是影响整体开发工作进度的重要因素。
发明内容
本申请提供一种应用软件开发方法,以解决现有技术中,因为非标准化开发模式中基于大语言模型进行应用软件开发时受限于其自身开发语言的局限,而导致的无法借助大语言模型进行应用软件开发的问题。
本申请提供一种应用软件开发方法,包括:
根据应用软件非标准化开发模式,获取开发提示模板类型,以及基于所述开发提示模板类型输入的开发需求信息;
根据所述开发提示模板类型对应的提示模板描述信息与所述开发需求信息,生成目标提示;
根据所述目标提示,获取大语言模型提供的与所述开发需求信息对应的输出结果;其中,所述输出结果满足所述应用软件非标准化开发模式的开发要求和所述开发提示模板类型的类型要求。
在一些实施例中,所述根据应用软件非标准化开发模式,获取开发提示模板类型,包括:
根据所述应用软件非标准化开发模式中代码生成类型,将所述应用软件非标准化开发模式中开发语言规范的描述信息进行拆分,确定所述代码生成类型对应的所述开发提示模板类型。
在一些实施例中,所述根据所述开发提示模板类型对应的提示模板描述信息与所述开发需求信息,生成目标提示,包括:
将对所述开发提示模板类型对应的所述开发语言规范的描述信息确定为第一描述信息;
将对所述开发需求信息的描述确定为第二描述信息;
根据所述第一描述信息和所述第二描述信息,生成所述目标提示。
在一些实施例中,所述将对所述开发提示模板类型对应的所述开发语言规范的描述信息确定为第一描述信息,包括:
当所述开发提示模板类型为普通代码提示模板类型时,根据对所述普通代码提示模板类型对应的所述开发语言规范中类型定义和语法规则的描述,确定所述第一描述信息,所述第一描述信息,包括至少如下一种描述:
对所述普通代码提示模板类型在所述开发语言规范中使用编程语言的描述;
基于所述普通代码提示模板类型在所述开发语言规范中使用的编程语言,对支持语法和/或禁用语法的描述;
基于所述普通代码提示模板类型在所述开发语言规范中使用的编程语言,对支持类方法、支持对象方法、支持函数的描述;
基于所述普通代码提示模板类型在所述开发语言规范中使用的编程语言,对禁用类方法、禁用对象方法、禁用函数的描述。
在一些实施例中,所述将对所述开发提示模板类型对应的所述开发语言规范的描述信息确定为第一描述信息,包括:
当所述开发提示模板类型为视图代码提示模板类型时,根据对所述视图代码提示模板类型对应的所述开发语言规范中视图组件属性和组件样式的描述,确定所述第一描述信息所述第一描述信息,包括至少如下一种描述:
对所述视图代码提示模板类型在所述开发语言规范中,使用的编程语言的描述;
基于所述视图代码提示模板类型在所述开发语言规范中基于使用的编程语言,对定义的视图组件属性和视图组件样式的描述;
基于所述视图代码提示模板类型在所述开发语言规范中使用的编程语言,对定义的通用样式、显示组件样式、文本组件样式、图片组件样式、滚动容器组件样式中至少一种样式所在字段位置的描述;
基于所述视图代码提示模板类型在所述开发语言规范中使用的编程语言,对通用组件属性和组件标签的定位位置的描述;
基于所述视图代码提示模板类型在所述开发语言规范中使用的编程语言,对支持的组件进行描述;
基于所述视图代码提示模板类型在所述开发语言规范中,对支持的视图组件属性和样式的描述;
基于所述视图代码提示模板类型在所述开发语言规范中,对禁用的视图组件属性和样式的描述。
在一些实施例中,所述将对所述开发提示模板类型对应的所述开发语言规范的描述信息确定为第一描述信息,包括:
当所述开发提示模板类型为API代码提示模板类型时,根据对所述API代码提示模板类型对应的所述开发语言规范中API接口定义的描述,确定所述第一描述信息,所述第一描述信息,包括至少如下一种描述:
对所述API代码提示模板类型在所述开发语言规范中,使用编程语言的描述;
基于所述API代码提示模板类型在所述开发语言规范中使用的编程语言,定义接口时使用指定定义方法的描述。
在一些实施例中,所述根据所述目标提示,获取大语言模型提供的与所述开发需求信息对应的输出结果,包括:
将所述目标提示输入到所述大语言模型中;
获取所述大语言模型根据所述目标提示,生成的符合所述应用软件非标准化开发模式和所述开发需求信息的开发代码内容;
将所述开发代码内容输出在与所述开发需求信息对应的位置。
本申请还提供一种应用软件开发装置,包括:
第一获取单元,用于根据应用软件非标准化开发模式,获取开发提示模板类型,以及基于所述开发提示模板类型输入的开发需求信息;
生成单元,用于根据所述开发提示模板类型对应的提示模板描述信息与所述开发需求信息,生成目标提示;
第二获取单元,用于根据所述目标提示,获取大语言模型提供的与所述开发需求信息对应的输出结果;其中,所述输出结果满足所述应用软件非标准化开发模式的开发要求和所述开发提示模板类型的类型要求。
本申请还提供一种计算机存储介质,用于存储网络平台产生数据,以及对应所述网络平台产生数据进行处理的程序;
所述程序在被处理器读取执行时,执行如上述应用软件开发方法。
本申请还提供一种电子设备,包括:
处理器;
存储器,用于存储对网络平台产生数据进行处理的程序,所述程序在被所述处理器读取执行时,执行如上述应用软件开发方法。
与现有技术相比,本申请具有以下优点:
本申请提供的一种应用软件开发方法,从应用角度概括而言,该方法通过用户在前端开发平台AI助手侧选择需要的开发提示模板类型,在该开发提示模板类型下输入开发需求信息。将该开发提示模板类型对应的prompt与所述开发需求进行合并,生成目标prompt,并输入到大语言模型中,在所述AI助手侧输出符合非标准化开发模式的规范和当前开发提示模板类型要求的开发代码内容。该方法一方面,能够在非标准化开发模式下,依然能够协助开发人员实现应用软件开发过程中需要的开发代码内容。另一方面,考虑到非标准化开发模式下无法借助大语言模型进行辅助开发,或者借助大语言模型得到的开发代码不准确或错误等,提出该方案。
本申请鉴于非标准化开发模式下由于涉及规范较为复杂,容易超出大语言模型上下文Token范围的限制,会导致上下文的信息丢失,使得大语言模型的输出与输入不相关或不相符。因此,本实施例中,结合非标准化开发模式的代码生成场景,将非标准化开发模式的规范描述,按照代码类型拆分为多个prompt模板类型,从而能够降低对上下文Token的占用。再通过将所述开发提示模板类型对应的提示模板描述信息与所述开发需求信息进行合并生成目标提示,使得大语言模型能够输出与输入相符且具有相关性和准确度的开发代码内容。另外,这种模板类型拆分也便于对各个prompt模板进行优化。
附图说明
图1是本申请提供的一种应用软件开发方法实施例的流程图。
图2是本申请提供的一种应用软件开发方法实施例中应用软件非标准化开发模式的框架示意图。
图3是本申请提供的一种应用软件开发方法实施例中应用软件非标准化开发模式的架构示意图。
图4是本申请提供的一种应用软件开发装置实施例的结构示意图。
图5是本申请提供的一种电子设备实施例的结构示意图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
本申请中使用的术语是仅仅出于对特定实施例描述的目的,而非旨在限制本申请。在本申请中和所附权利要求书中所使用的描述方式例如:“一种”、“第一”、和“第二”等,并非对数量上的限定或先后顺序上的限定,而是用来将同一类型的信息彼此区分。
基于上述背景技术可知,本申请的发明构思来源于应用软件开发过程中涉及的代码编写和开发效率所存在的问题。现有技术中,为提高应用软件的开发效率,降低开发人员的工作强度,提出通过大语言模型进行辅助开发的方案。但并不是每种开发模式均能够通过大语言模型实现辅助代码的生产,特别是基于非标准化开发语言的开发模式下,大语言模型并不能生产出符合要求或者生产出与非标化开发语言适配的辅助代码,故此,本申请提供一种应用软件开发方法,能够避免在基于非标准开发语言的开发模式下进行应用软件开发无法通过大语言模型获得相应开发代码的问题。
如图1所示,图1是本申请提供的一种应用软件开发方法实施例的流程图,该方法可以包括:
步骤S101:根据应用软件非标准化开发模式,获取开发提示模板类型,以及基于所述开发提示模板类型输入的开发需求信息;
步骤S102:根据所述开发提示模板类型对应的提示模板描述信息与所述开发需求信息,生成目标提示;
步骤S103:根据所述目标提示,获取大语言模型提供的与所述开发需求信息对应的输出结果;其中,所述输出结果满足所述应用软件非标准化开发模式的开发要求和所述开发提示模板类型的类型要求。
在对上述步骤S101到步骤S103进行详细描述前,先对本申请中涉及的技术名词或概念进行解释。
本申请中应用软件非标准化开发模式是一种基于非标准化开发语言的开发模式,比如:Mist开发模式,其为一种研发的一套高性能的动态模板引擎,它使用JSON格式描述页面(模板)结构,同时支持CSS样式表达和动态脚本(JS等)嵌入。由于模板文件可随服务端下发,因此客户端可具备动态更新页面的能力;其与React Native或与Weex不同,Mist面向客户端开发人员,从设计上保证Native原生的性能和体验;此外,Mist还提供一种全新的UI开发方式,可极大提高页面开发效率,本实施例中为使用基于TypeScript和React JSX语法的DSL,即:Mist DSL。
如图2所示,图2是本申请提供的一种应用软件开发方法实施例中应用软件非标准化开发模式的框架示意图。在 TypeScript 和 React 中,JSX(JavaScript XML)被用作一种在 JavaScript 文件中编写类似于 HTML 的结构化代码的语法扩展。JSX 可以更容易地创建和操作用户界面,使得开发者可以以一种类似于模板语言的方式来描述组件的结构和样式。
DSL (Domain-Specific Language)是指针对特定领域的编程语言,它被用来解决特定问题或领域中的特定需求。在这种情况下,“TypeScript和React JSX语法的DSL” 指的是一种特定于 TypeScript 和 React 的领域特定语言(DSL),用于定义和描述TypeScript 和 React 中的组件结构和行为,是一种标准化语言。
通过使用 TypeScript 和 React JSX 语法的 DSL,开发者可以在代码中更直观地定义组件的结构、属性和事件处理等内容,使得代码更加可读性高、易于维护和重用。这种 DSL 是基于 TypeScript 和 React 的特性和语法约定而设计的,以更好地支持开发者在这个特定的领域中进行组件开发。
本申请中基于非标准化开发语言的开发模式,即Mist DSL,其是基于TypeScript和React JSX等前端语法和框架,同时又包括Mist中定制和扩展的非标准语言特性,例如:Mist DSL只支持部分类型定义和语法规则,又例如,Mist DSL不支持for语句和可选表达式,Array、Object对象只读并且需要使用自定义API进行修改等。此外,Mist DSL的视图组件具有自己的属性和样式定义,也可以扩展自定义的API和类型等。因此,在基于MistDSL进行应用软件开发时为一种非标准化开发模式。
当然,这种非标准化开发语言的开发模式并不限于Mist DSL,对于包括较为特殊的编程语言或者某些语言不常见或不被广泛支持的开发语言,例如:嵌入式领域特定语言(Embedded Domain-Specific Languages,EDSL):它是专门设计用于特定领域的小型编程语言,通常嵌入在主机语言中,以实现特定的任务或领域需求,当然还可以包括伪语言(Pseudolanguages),伪语言是一种语法和结构类似于编程语言的描述性语言。它们通常用于描述算法、逻辑、规范或教学目的,而不是用于实际的开发或运行,但不排除其被用于应用软件的开发。
在本实施中,所述应用软件非标准开发模式主要以Mist DSL为例进行描述,但应用软件非标准开发模式并不限于Mist DSL。
大语言模型(LLM:Large Language Model)也称大型语言模型,是一种人工智能模型,旨在理解和生成人类语言。它们在大量的文本数据上进行训练,可以执行广泛的任务,包括文本总结、翻译、情感分析等等。
本申请提供的应用软件开发方法能够应用在依托于底层大语言模型的应用软件开发AI助手中实现应用软件的辅助开发。
关于所述步骤S101:根据应用软件非标准化开发模式,获取开发提示模板类型,以及基于所述开发提示模板类型输入的开发需求信息。
所述步骤S101的目的在于,获取基于应用软件非标准化开发模式下的相关信息,即:开发提示模板类型和开发需求信息。
所谓开发需求信息可以是开发人员在应用软件开发过程中涉及的开发需求信息,可以通过AI助手进行输入。
所谓开发提示模板类型即为prompt模板类型,其可以根据实际开发需求或者开发应用软件的场景需求确定,不同场景需求所涉及的开发提示模板类型可以不同,也可以包括一种或多种类型,并且能够更具需求的变化进行开发提示模板类型的调整;进而能够在基于Mist DSL开发模式下根据场景的需求设计不同的开发提示模板提高辅助开发的效率。
所述步骤S101的具体实现过程可以包括:
步骤S101-1:根据所述应用软件非标准化开发模式中代码生成类型,将所述应用软件非标准化开发模式中开发语言规范的描述信息进行拆分,确定所述代码生成类型对应的所述开发提示模板类型。
在本实施例中,所述代码生成类型可以是视图组件代码、接口调用代码、逻辑代码、模型声明代码等。其中,模型声明代码可以是一种自定义代码生成形式。不同的应用软件需求场景可以包括不同的代码生成类型,例如:对于包括大量图形化组件的应用软件需要视图组件代码,如果该应用软件还需要调用Mist原生能力,则还需要接口调用代码等。
不同的代码生成类型在开发过程中需要有相对应的描述信息,因为需要对MistDSL这种非标准化开发模式下的开发语言规范中的描述信息进行拆分,从而使得不同代码生成类型能够对应不同描述信息,从而建立代码生成类型对应的开发提示模板类型。换言之,为了更好辅助应用软件的开发,提高开发效率。可以将需要生成的代码进行分类,而不同代码生成类型在非标准化开发模式下存在开发语言规范的描述信息当中,根据代码生成类型与开发语言规范描述信息之间的匹配关系,确定不同开发提示模板类型,能够有效提高开发效率,即开发者可以根据需要辅助生成软件类型选择对应的开发提示模板类型即可。
本实施例中,所述开发提示模板类型可以包括:视图代码提示模板类型、普通代码提示模板类型、API代码提示模板类型、模型声明提示模板类型等。所述模型声明提示模板类型是在该提示模板类型下能够根据JSON数据生成模型声明,或者是一种自定义生成模板声明,即根据不同数据交互格式生成所需要代码的自定义形式。
关于步骤S102:根据所述开发提示模板类型对应的提示模板描述信息与所述开发需求信息,生成目标提示。
所述步骤S102的目的在于生成目标提示,即目标prompt。所谓目标提示是用于提供给大语言模型,以便大语言模型能够识别出在非标准化开发模式下的用户需求并生成相应的代码。
所述步骤S102的具体实现过程可以包括:
步骤S102-2:将对所述开发提示模板类型对应的所述开发语言规范的描述信息确定为第一描述信息;在本实施例中,所述开发提示模板类型可以包括普通代码提示模板类型、视图代码提示模板类型、API代码提示模板类型、模型声明提示模板类型等中的一种或多种,基于不同的需求场景还可以包括其他提示模版类型。本实施例中,对于不同的提示模板类型会声明相对应的第一描述信息,因此,所述步骤S102-2具体实现过程可以包括至少如下一种:
普通代码提示模板类型,包括:
步骤S102-2-21:当所述开发提示模板类型为普通代码提示模板类型时,根据对所述普通代码提示模板类型对应的所述开发语言规范中类型定义和语法规则的描述,确定所述第一描述信息。本实施例中,主要基于Mist DSL语言规则,对所述普通代码提示模板类型中的类型定义和语法规则等相关描述,实际上还可以包括其他描述信息。对于所述类型定义和语法规则的描述,可以包括如下至少一种描述:
步骤S102-21-1:对所述普通代码提示模板类型在所述开发语言规范中使用编程语言的描述;所述描述可以是,例如:Mist DSL为基于TypeScript和ES6的编程语言等描述。
步骤S102-21-2:基于所述普通代码提示模板类型在所述开发语言规范中使用的编程语言,对支持语法和/或禁用语法的描述;所述描述可以是,例如:只使用支持的语法;不支持for循环、while循环语法,即禁用语法等的描述。
步骤S102-21-3:基于所述普通代码提示模板类型在所述开发语言规范中使用的编程语言,对支持类方法、支持对象方法、支持函数的描述;所述描述可以是,例如:Array对象的select方法,prototype原型链,重新定义string对象方法、Number对象方法等描述。
步骤S102-21-4:基于所述普通代码提示模板类型在所述开发语言规范中使用的编程语言,对禁用类方法、禁用对象方法、禁用函数的描述。所述描述可以是,例如:不支持Map、Set、Symbol、RegExp对象等,即禁用对象方法的描述;不支持forEach函数用select代替、不支持parseFloat()、不支持parseInt()全局函数等,即禁用函数的描述。
以上步骤S102-21-1到步骤S102-21-4中描述示例仅为便于理解,并不限于该些描述,例如还可以包括:对方法对象声明的相关描述。
视图代码提示模板类型,包括:
步骤S102-2-22:当所述开发提示模板类型为视图代码提示模板类型时,根据对所述视图代码提示模板类型对应的所述开发语言规范中视图组件属性和组件样式的描述,确定所述第一描述信息。对于所述视图代码提示模板类型主要以视图组件和属性的描述为例进行描述。具体可以包括至少如下一种描述:
步骤S102-22-1:对所述视图代码提示模板类型在所述开发语言规范中使用的编程语言的描述;所述描述可以是,例如:Mist DSL是基于React JSX和TypeScript的类组件语法等描述。
步骤S102-22-2:基于所述视图代码提示模板类型在所述开发语言规范中基于使用的编程语言,对定义的视图组件属性和视图组件样式的使用描述;所述描述可以是,例如:允许使用已定义的属性和组件,请勿使用未定义的属性和样式,请勿使用不知道的属性和样式等描述。
步骤S102-22-3:基于所述视图代码提示模板类型在所述开发语言规范中使用的编程语言,对定义的通用样式、显示组件样式、文本组件样式、图片组件样式、滚动容器组件样式中至少一种样式所在字段位置的描述;所述描述可以是,例如:通用样式、View(容器)组件样式、Text(文本)组件样式、Image(图形)组件样式、ScrollView(滚动条)组件样式包含在style(样式)字段中等描述。
步骤S102-22-4:基于所述视图代码提示模板类型在所述开发语言规范中使用的编程语言,对通用组件属性和组件标签的定位位置的描述;所述描述可以是,例如:定义的通用属性与组件标签名称处于同一层级等描述。
步骤S102-22-5:基于所述视图代码提示模板类型在所述开发语言规范中使用的编程语言,对支持组件的描述;所述描述可以是,例如:支持View(容器)组件、Text(文本)组件、Image(图形)组件、ScrollView(滚动条)组件。
步骤S102-22-6:基于所述视图代码提示模板类型在所述开发语言规范中,对支持的视图组件属性和样式的定义描述;例如:可以是对通用属性定义的描述,对通用样式定义的描述,对View组件样式定义的描述等。
步骤S102-22-7:基于所述视图代码提示模板类型在所述开发语言规范中,对禁用的视图组件属性和样式的定义描述。与所述步骤S102-22-6中相反,是对不支持视图组件属性和样式的定义描述,该描述中可以包括替代方案。
还可以包括:对通用属性定义的相关描述。
API代码提示模板类型,包括:
步骤S102-2-23:当所述开发提示模板类型为API代码提示模板类型时,根据对所述API代码提示模板类型对应的所述开发语言规范中API接口定义的描述,确定所述第一描述信息。对于所述视图代码提示模板类型主要以视图组件和属性的描述为例进行描述。具体可以包括至少如下一种描述:
步骤S102-23-1:对所述API代码提示模板类型在所述开发语言规范中,使用编程语言的描述。所述描述可以是,例如:Mist DSL是基于TypeScript语法等描述。
步骤S102-23-2:基于所述API代码提示模板类型在所述开发语言规范中使用的编程语言,定义接口时使用定义方法的描述。所述描述可以是,例如:使用遵循Mist定义的方法等相关描述。还可以包括:对Mist API接口的定义的相关描述。
上述分别是对所述开发提示模板类型为普通代码提示模板类型、视图代码提示模板类型和API代码提示模板类型中第一描述确定过程的举例说明。
步骤S102-3:将对所述开发需求信息的描述确定为第二描述信息;本实施例中,所述开发需求信息可以是开发人员基于AI助手输入的需要帮助的开发问题信息,例如:生成一个滑动卡片,高为100宽为300,共2页等需求开发信息。
本实施例中,对于应用软件非标准化开发模式中的开发提示模板类型以及与各个开发提示模板类型对应的描述信息,以map对象的方式进行存储,即:map<string,PromptType>。其中,所述PromptType中可以保存各个开发提示模板类型的开发语言规范、参考代码、格式要求等。所述第一描述信息可以通过map获取。
步骤S102-4:根据所述第一描述信息和所述第二描述信息,生成所述目标提示。本实施例中,可以将所述第一描述信息和所述第二描述信息合并成一个prompt(提示),将合并后的提示作为目标提示提供给大语言模型。
关于所述步骤S103:根据所述目标提示,获取大语言模型提供的与所述开发需求信息对应的输出结果;其中,所述输出结果满足所述应用软件非标准化开发模式的开发要求和所述开发提示模板类型的类型要求。具体实现过程可以包括:
步骤S103-1:将所述目标提示输入到所述大语言模型中;
步骤S103-2:获取所述大语言模型根据所述目标提示,生成的符合所述应用软件非标准化开发模式和所述开发需求信息的开发代码内容;
步骤S103-3:将所述开发代码内容输出在与所述开发需求信息对应的位置。
以上是本申请提供的一种应用软件开发方法实施例的内容,从应用角度概括而言,如图3所示,图3是本申请提供的一种应用软件开发方法实施例中应用软件非标准化开发模式的架构示意图。该实施例是通过用户在前端开发平台AI助手侧选择需要的开发提示模板类型,在该开发提示模板类型下输入开发需求信息。将该开发提示模板类型对应的prompt与所述开发需求进行合并,生成目标prompt,并输入到大语言模型中,在所述AI助手侧输出符合非标准化开发模式的规范和当前开发提示模板类型要求的开发代码内容。该方法实施例一方面,能够在非标准化开发模式下,大语言模型能够通过合并生成的目标prompt对开发人员的开发需求进行分析,并能够根据目标prompt中的描述信息,协助开发人员在非标准化开发模式下获得需要的开发代码内容,从而避免非标准化开发模式下无法借助大语言模型进行辅助开发,或者借助大语言模型得到的开发代码不准确或错误等,导致的开发效率低。
另一方面,本申请鉴于非标准化开发模式下由于涉及规范较为复杂,容易超出大语言模型上下文Token范围的限制,会导致上下文的信息丢失,大语言模型的输出与输入不相关或不相符,因此,本实施例中,结合非标准化开发模式的代码生成场景,将非标准化开发模式的规范描述,按照代码类型拆分为多个prompt模板类型,例如:本实施例中提到的普通代码、视图代码、API代码、模型声明代码等,从而能够降低对上下文Token的占用,保证输出与输入的相关性和准确度。另外,这种模板类型拆分也便于对各个prompt模板进行优化。
上述提到的上下文Token可以理解为:大语言模型在进行文本处理时,会将文本切分成一个个最小单元,这些最小单元为上下文Token。
以上是对本申请提供的一种应用软件开发方法实施例的具体描述,与前述提供的一种应用软件开发方法实施例相对应,本申请还公开一种应用软件开发装置实施例,请参看图4,由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。
如图4所示,图4是本申请提供的一种应用软件开发装置实施例的结构示意图。该装置实施例可以包括:第一获取单元401、生成单元402、第二获取单元403。
所述第一获取单元401,用于根据应用软件非标准化开发模式,获取开发提示模板类型,以及基于所述开发提示模板类型输入的开发需求信息;具体可以用于根据所述应用软件非标准化开发模式中代码生成类型,将所述应用软件非标准化开发模式中开发语言规范的描述信息进行拆分,确定所述代码生成类型对应的所述开发提示模板类型。
所述生成单元402,用于根据所述开发提示模板类型对应的提示模板描述信息与所述开发需求信息,生成目标提示;
所述第二获取单元403,用于根据所述目标提示,获取大语言模型提供的与所述开发需求信息对应的输出结果;其中,所述输出结果满足所述应用软件非标准化开发模式的开发要求和所述开发提示模板类型的类型要求。
所述生成单元402可以包括:第一确定子单元、第二确定子单元和生成子单元;
所述第一确定子单元,用于将对所述开发提示模板类型对应的所述开发语言规范的描述信息确定为第一描述信息。
所述第二确定子单元,用于将对所述开发需求信息的描述确定为第二描述信息。
所述生成子单元,用于根据所述第一描述信息和所述第二描述信息,生成所述目标提示。
所述第一确定子单元具体可以用于当所述开发提示模板类型为普通代码提示模板类型时,根据对所述普通代码提示模板类型对应的所述开发语言规范中类型定义和语法规则的描述,确定所述第一描述信息。所述第一描述信息具体包括至少如下一种描述:
对所述普通代码提示模板类型在所述开发语言规范中使用编程语言的描述;
基于所述普通代码提示模板类型在所述开发语言规范中使用的编程语言,对支持语法和/或禁用语法的描述;
基于所述普通代码提示模板类型在所述开发语言规范中使用的编程语言,对支持类方法、支持对象方法、支持函数的描述;
基于所述普通代码提示模板类型在所述开发语言规范中使用的编程语言,对禁用类方法、禁用对象方法、禁用函数的描述。
所述第一确定子单元具体可以用于当所述开发提示模板类型为视图代码提示模板类型时,对所述视图代码提示模板类型对应的所述开发语言规范中视图组件属性和组件样式的描述,确定所述第一描述信息。所述第一描述信息具体包括至少如下一种描述:
对所述视图代码提示模板类型在所述开发语言规范中,使用的编程语言的描述;
基于所述视图代码提示模板类型在所述开发语言规范中基于使用的编程语言,对定义的视图组件属性和视图组件样式的描述;
基于所述视图代码提示模板类型在所述开发语言规范中使用的编程语言,对定义的通用样式、显示组件样式、文本组件样式、图片组件样式、滚动容器组件样式中至少一种样式所在字段位置的描述;
基于所述视图代码提示模板类型在所述开发语言规范中使用的编程语言,对通用组件属性和组件标签的定位位置的描述;
基于所述视图代码提示模板类型在所述开发语言规范中使用的编程语言,对支持的组件进行描述;
基于所述视图代码提示模板类型在所述开发语言规范中,对支持的视图组件属性和样式的描述;
基于所述视图代码提示模板类型在所述开发语言规范中,对禁用的视图组件属性和样式的描述。
所述第一确定子单元具体可以用于当所述开发提示模板类型为API代码提示模板类型时,根据对所述API代码提示模板类型对应的所述开发语言规范中API接口定义的描述,确定所述第一描述信息。所述第一描述信息具体包括至少如下一种描述:
对所述API代码提示模板类型在所述开发语言规范中,使用编程语言的描述;
基于所述API代码提示模板类型在所述开发语言规范中使用的编程语言,定义接口时使用指定定义方法的描述。
所述第二获取单元403可以包括:输入子单元、获取子单元和输出子单元;
所述输入子单元,用于将所述目标提示输入到所述大语言模型中;
所述获取子单元,用于获取所述大语言模型根据所述目标提示,生成的符合所述应用软件非标准化开发模式和所述开发需求信息的开发代码内容;
所述输出子单元,用于将所述开发代码内容输出在与所述开发需求信息对应的位置。
关于上述应用软件开发装置实施例的具体内容可以参考方法实施例中的步骤S101到步骤S103的具体内容,此处不再详述。
基于上述本申请还提供一种计算机存储介质,用于存储网络平台产生数据,以及对应所述网络平台产生数据进行处理的程序;
所述程序在被处理器读取执行时,执行如上述应用软件开发方法实施例中步骤S101到步骤S103所涉及的具体内容。
基于上述本申请还提供一种电子设备,如图5所示,图5本申请提供的一种电子设备实施例的结构示意图,该电子设备实施例包括:
处理器501;
存储器502,用于存储对网络平台产生数据进行处理的程序,所述程序在被所述处理器读取执行时,执行如上述应用软件开发方法实施例中步骤S101到步骤S103所涉及的具体内容。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
在一个典型的配置中,计算设备包括一个或多个处理器 (CPU)、 输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器 (RAM) 和/或非易失性内存等形式,如只读存储器 (ROM) 或闪存(flash RAM)。内存是计算机可读介质的示例。
1、计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、 程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存 (PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器 (DRAM)、 其他类型的随机存取存储器 (RAM)、只读存储器(ROM)、电可擦除可编程只读存储器 (EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器 (CD-ROM)、数字多功能光盘 (DVD) 或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体 (transitory media),如调制的数据信号和载波。
2、本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请虽然以较佳实施例公开如上,但其并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此本申请的保护范围应当以本申请权利要求所界定的范围为准。
Claims (9)
1.一种应用软件开发方法,其特征在于,包括:
根据应用软件非标准化开发模式,获取开发提示模板类型,以及基于所述开发提示模板类型输入的开发需求信息;具体为:根据所述应用软件非标准化开发模式中代码生成类型,将所述应用软件非标准化开发模式中开发语言规范的描述信息进行拆分,确定所述代码生成类型对应的所述开发提示模板类型;
根据所述开发提示模板类型对应的提示模板描述信息与所述开发需求信息,生成目标提示;
根据所述目标提示,获取大语言模型提供的与所述开发需求信息对应的输出结果;其中,所述输出结果满足所述应用软件非标准化开发模式的开发要求和所述开发提示模板类型的类型要求。
2.根据权利要求1所述的应用软件开发方法,其特征在于,所述根据所述开发提示模板类型对应的提示模板描述信息与所述开发需求信息,生成目标提示,包括:
将对所述开发提示模板类型对应的开发语言规范的描述信息确定为第一描述信息;
将对所述开发需求信息的描述确定为第二描述信息;
根据所述第一描述信息和所述第二描述信息,生成所述目标提示。
3.根据权利要求2所述的应用软件开发方法,其特征在于,所述将对所述开发提示模板类型对应的所述开发语言规范的描述信息确定为第一描述信息,包括:
当所述开发提示模板类型为普通代码提示模板类型时,根据对所述普通代码提示模板类型对应的所述开发语言规范中类型定义和语法规则的描述,确定所述第一描述信息,所述第一描述信息,包括至少如下一种描述:
对所述普通代码提示模板类型在所述开发语言规范中使用编程语言的描述;
基于所述普通代码提示模板类型在所述开发语言规范中使用的编程语言,对支持语法和/或禁用语法的描述;
基于所述普通代码提示模板类型在所述开发语言规范中使用的编程语言,对支持类方法、支持对象方法、支持函数的描述;
基于所述普通代码提示模板类型在所述开发语言规范中使用的编程语言,对禁用类方法、禁用对象方法、禁用函数的描述。
4.根据权利要求2所述的应用软件开发方法,其特征在于,所述将对所述开发提示模板类型对应的所述开发语言规范的描述信息确定为第一描述信息,包括:
当所述开发提示模板类型为视图代码提示模板类型时,根据对所述视图代码提示模板类型对应的所述开发语言规范中视图组件属性和组件样式的描述,确定所述第一描述信息,所述第一描述信息,包括至少如下一种描述:
对所述视图代码提示模板类型在所述开发语言规范中,使用的编程语言的描述;
基于所述视图代码提示模板类型在所述开发语言规范中基于使用的编程语言,对定义的视图组件属性和视图组件样式的描述;
基于所述视图代码提示模板类型在所述开发语言规范中使用的编程语言,对定义的通用样式、显示组件样式、文本组件样式、图片组件样式、滚动容器组件样式中至少一种样式所在字段位置的描述;
基于所述视图代码提示模板类型在所述开发语言规范中使用的编程语言,对通用组件属性和组件标签的定位位置的描述;
基于所述视图代码提示模板类型在所述开发语言规范中使用的编程语言,对支持的组件进行描述;
基于所述视图代码提示模板类型在所述开发语言规范中,对支持的视图组件属性和样式的描述;
基于所述视图代码提示模板类型在所述开发语言规范中,对禁用的视图组件属性和样式的描述。
5.根据权利要求2所述的应用软件开发方法,其特征在于,所述将对所述开发提示模板类型对应的所述开发语言规范的描述信息确定为第一描述信息,包括:
当所述开发提示模板类型为API代码提示模板类型时,根据对所述API代码提示模板类型对应的所述开发语言规范中API接口定义的描述,确定所述第一描述信息,所述第一描述信息,包括至少如下一种描述:
对所述API代码提示模板类型在所述开发语言规范中,使用编程语言的描述;
基于所述API代码提示模板类型在所述开发语言规范中使用的编程语言,定义接口时使用指定定义方法的描述。
6.根据权利要求1所述的应用软件开发方法,其特征在于,所述根据所述目标提示,获取大语言模型提供的与所述开发需求信息对应的输出结果,包括:
将所述目标提示输入到所述大语言模型中;
获取所述大语言模型根据所述目标提示,生成的符合所述应用软件非标准化开发模式和所述开发需求信息的开发代码内容;
将所述开发代码内容输出在与所述开发需求信息对应的位置。
7.一种应用软件开发装置,其特征在于,包括:
第一获取单元,用于根据应用软件非标准化开发模式,获取开发提示模板类型,以及基于所述开发提示模板类型输入的开发需求信息;具体为:根据所述应用软件非标准化开发模式中代码生成类型,将所述应用软件非标准化开发模式中开发语言规范的描述信息进行拆分,确定所述代码生成类型对应的所述开发提示模板类型;
生成单元,用于根据所述开发提示模板类型对应的提示模板描述信息与所述开发需求信息,生成目标提示;
第二获取单元,用于根据所述目标提示,获取大语言模型提供的与所述开发需求信息对应的输出结果;其中,所述输出结果满足所述应用软件非标准化开发模式的开发要求和所述开发提示模板类型的类型要求。
8.一种计算机存储介质,用于存储网络平台产生数据,以及对应所述网络平台产生数据进行处理的程序;
所述程序在被处理器读取执行时,执行如上述权利要求1-6任意一项所述的应用软件开发方法。
9.一种电子设备,包括:
处理器;
存储器,用于存储对网络平台产生数据进行处理的程序,所述程序在被所述处理器读取执行时,执行如上述权利要求1-6任意一项所述的应用软件开发方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311591837.3A CN117289905B (zh) | 2023-11-24 | 2023-11-24 | 一种应用软件开发方法和装置、存储介质和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311591837.3A CN117289905B (zh) | 2023-11-24 | 2023-11-24 | 一种应用软件开发方法和装置、存储介质和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117289905A CN117289905A (zh) | 2023-12-26 |
CN117289905B true CN117289905B (zh) | 2024-03-19 |
Family
ID=89248477
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311591837.3A Active CN117289905B (zh) | 2023-11-24 | 2023-11-24 | 一种应用软件开发方法和装置、存储介质和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117289905B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115145551A (zh) * | 2022-08-02 | 2022-10-04 | 北京航空航天大学 | 一种面向机器学习应用低代码开发的智能辅助系统 |
CN115525292A (zh) * | 2022-10-10 | 2022-12-27 | 中国电信股份有限公司 | 低代码开发方法及装置、可读存储介质、电子设备 |
CN116188971A (zh) * | 2022-12-15 | 2023-05-30 | 之江实验室 | 一种机器人物体识别方法、装置及存储介质 |
CN116301799A (zh) * | 2023-02-13 | 2023-06-23 | 中国工商银行股份有限公司 | 一种代码生成方法、装置、计算机设备、存储介质及产品 |
CN116560642A (zh) * | 2023-05-11 | 2023-08-08 | 中国工商银行股份有限公司 | 代码生成方法及其装置、电子设备及存储介质 |
CN116755667A (zh) * | 2023-05-22 | 2023-09-15 | 北京无代码科技有限公司 | 一种低代码dsl语言开发方法及装置 |
CN117094302A (zh) * | 2023-08-04 | 2023-11-21 | 广州赛意信息科技股份有限公司 | 基于ChatGPT的自动化处理方法、装置及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9547482B2 (en) * | 2015-06-02 | 2017-01-17 | Sap Portals Israel Ltd. | Declarative design-time experience platform for code generation |
-
2023
- 2023-11-24 CN CN202311591837.3A patent/CN117289905B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115145551A (zh) * | 2022-08-02 | 2022-10-04 | 北京航空航天大学 | 一种面向机器学习应用低代码开发的智能辅助系统 |
CN115525292A (zh) * | 2022-10-10 | 2022-12-27 | 中国电信股份有限公司 | 低代码开发方法及装置、可读存储介质、电子设备 |
CN116188971A (zh) * | 2022-12-15 | 2023-05-30 | 之江实验室 | 一种机器人物体识别方法、装置及存储介质 |
CN116301799A (zh) * | 2023-02-13 | 2023-06-23 | 中国工商银行股份有限公司 | 一种代码生成方法、装置、计算机设备、存储介质及产品 |
CN116560642A (zh) * | 2023-05-11 | 2023-08-08 | 中国工商银行股份有限公司 | 代码生成方法及其装置、电子设备及存储介质 |
CN116755667A (zh) * | 2023-05-22 | 2023-09-15 | 北京无代码科技有限公司 | 一种低代码dsl语言开发方法及装置 |
CN117094302A (zh) * | 2023-08-04 | 2023-11-21 | 广州赛意信息科技股份有限公司 | 基于ChatGPT的自动化处理方法、装置及存储介质 |
Non-Patent Citations (3)
Title |
---|
DSL and code generator for accelerating iOs apps development Mohamed Lachgar;Mohamed Lachgar Etc.;2015 Third World Conference on Complex Systems (WCCS);全文 * |
基于深度学习的代码生成方法研究进展;杨泽洲 等;软件学报;全文 * |
基于编程语言结构的通用配置代码生成方法;马强;刘佩林;;计算机工程(18);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN117289905A (zh) | 2023-12-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110580147B (zh) | 一种应用程序的开发方法和装置 | |
CN106796525B (zh) | 按需加载动态脚本语言代码以减少内存使用 | |
CN106951231B (zh) | 一种计算机软件开发方法及装置 | |
CN112199473A (zh) | 一种知识问答系统中的多轮对话方法与装置 | |
US20130124969A1 (en) | Xml editor within a wysiwyg application | |
CN116166236A (zh) | 代码推荐方法、装置、计算机设备及存储介质 | |
CN115455166A (zh) | 一种智能对话系统异常检测的方法、装置、介质及设备 | |
CN114359533B (zh) | 一种基于页面文本的页码识别方法和计算机设备 | |
CN111124481A (zh) | 网页应用程序的安装包生成方法、装置、存储介质及设备 | |
CN112631644A (zh) | Flutter构造函数初始化式的修改方法及装置 | |
CN117289905B (zh) | 一种应用软件开发方法和装置、存储介质和电子设备 | |
CN112464927A (zh) | 一种信息提取方法、装置及系统 | |
CN116738956A (zh) | 一种提示模板生成方法、装置、计算机设备及存储介质 | |
CN110928540A (zh) | 一种页面生成方法及装置 | |
CN116243914A (zh) | 国际化软件开发的方法、国际化软件开发系统及服务器 | |
CN112114805B (zh) | 页面生成方法、装置、设备 | |
CN111444456B (zh) | 一种样式编辑方法、装置及电子设备 | |
US11423228B2 (en) | Weakly supervised semantic entity recognition using general and target domain knowledge | |
US7428697B2 (en) | Preserving content or attribute information during conversion from a structured document to a computer program | |
CN112799658A (zh) | 模型训练方法、模型训练平台、电子设备和存储介质 | |
CN115543323B (zh) | 一种页面开发方法及装置 | |
CN113448923B (zh) | 文件生成方法、装置及终端 | |
Troya et al. | Rules and helpers dependencies in atl–technical report | |
CN113835978A (zh) | 生成dag图的方法、业务数据审核方法及相关装置 | |
CN117610540A (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 |