System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及软件工程,尤其涉及一种基于大语言模型的需求精化方法。
技术介绍
1、需求文档在软件开发过程中扮演着至关重要的角色,而用例设计又是需求文档的核心组成部分,用于详细描述软件的功能需求、交互流程、执行条件、状态结果等信息。如何通过需求文档自动生成代码以提高软件开发的效率一直是研究的热点问题。
2、但需求文档通常用自然语言描述,在需求文档基础上自动生成的代码往往存在下列问题:首先,由于需求描述过于抽象使需求文档可能存在歧义,导致生成的代码无法满足用户的实际需求;其次,无法对自然语言形式的需求文档直接进行验证,导致生成的代码容易出现语法错误;最后,自然语言形式的需求文档可能存在前后描述不一致的情况使文档中存在有冲突的约束条件,导致生成的代码出现逻辑错误。
3、目前对需求文档的修改依赖人工完成,需要开发人员具有丰富的经验,随着软件系统日益庞大,对需求文档修改的难度越来越大,人工修改容易出错且效率低下。因此,如何对需求文档进行高效的精化,并对精化后的需求进行一致性验证确保其正确性成为亟待解决的问题。
技术实现思路
1、鉴于上述的分析,本专利技术旨在提供一种基于大语言模型的需求精化方法,用以解决目前对需求文档的修改依赖人工完成,易出错且效率低的问题。
2、本专利技术提供了一种基于大语言模型的需求精化方法,所述方法包括以下步骤:
3、构建用例设计知识库以及用例设计提示词模板,基于原始需求文档、用例设计知识库、用例设计提示词模板生成精化需求
4、构建性质规约知识库以及模式设计提示词模板,基于原始需求文档生成原始性质规约文档,基于精化需求文档、模式设计提示词模板生成模式设计文档,基于模式设计文档、性质规约知识库生成精化性质规约文档;验证精化性质规约文档的语法正确性,若语法不正确则基于大语言模型对精化性质规约文档进行修改直到语法全部正确或达到最大修改次数;验证原始性质规约文档与语法验证后的精化性质规约文档的一致性,若不一致则基于大语言模型对语法验证后的精化性质规约文档及其对应的精化需求文档进行修改直到二者一致或达到最大修改次数,得到一致性验证后的精化性质规约文档及其对应的精化需求文档。
5、进一步地,将原始需求文档按句子进行切分得到若干原始需求文档片段,对每个原始需求文档片段在所述用例设计知识库中得到与其匹配的第一向量,将该匹配的第一向量转换为句子得到与其匹配的第一句子。
6、进一步地,对每个原始需求文档片段:将该原始需求文档片段转换为第二向量;计算该第二向量与所有第一向量之间的向量相似度,选取向量相似度最大的前k个第一向量;设置句子窗口尺寸,根据所述句子窗口尺寸建立所述前k个第一向量对应的第一句子窗口;计算该第二向量与所有对应的第一句子窗口之间的语义相似度,选取其中语义相似度最大的第一句子窗口对应的所有第一向量作为与该原始需求文档片段匹配的第一向量,将该匹配的第一向量按上下文顺序转换为句子得到与该原始需求文档片段匹配的第一句子。
7、进一步地,建立用例图设计相关的第一关键词,根据所述第一关键词构建用例设计提示词模板;所述第一关键词包括用例、参与者、系统边界、参与者之间的关系、前置条件、后置条件、用例场景、事件流、简要说明、特殊需求;所述用例设计提示词模板包括所述第一关键词及其对应的说明。
8、进一步地,将所有原始需求文档片段及其匹配的第一句子、用例设计提示词模板输入大语言模型,使大语言模型根据所述用例设计提示词模板从原始需求文档片段中提取所述第一关键词对应的内容并填入所述用例设计提示词模板,从而生成精化需求文档。
9、进一步地,所述验证精化性质规约文档的语法正确性包括:构造精化性质规约文档中每个变量表达式的反例,若构造的反例可以得到正确输出,则判定该反例对应的变量表达式语法正确,若所有变量表达式语法均正确,则判定该精化性质规约文档语法正确,否则判定其语法不正确。
10、进一步地,构建辅助修改机器人用于对精化需求文档及精化性质规约文档进行检查与修改;设置最大修改次数;若语法不正确,则将模式设计文档、精化性质规约文档、语法不正确的反例及其报错信息发送给所述辅助修改机器人,使其对精化性质规约文档进行修改;对修改后的精化性质规约文档的语法正确性进行验证,直到其语法全部正确或达到最大修改次数。
11、进一步地,验证原始性质规约文档与语法验证后的精化性质规约文档中相应变量表达式之间的逻辑关系,若语法验证后的精化性质规约文档中的变量表达式蕴含或等价于原始性质规约文档中相应的变量表达式,则判定二者一致,否则判定二者不一致。
12、进一步地,设置最大修改次数;若不一致,则将模式设计文档、当前的精化性质规约文档及其对应的精化需求文档、spec语句错误信息发送给所述辅助修改机器人,使其对语法验证后的精化性质规约文档及其对应的精化需求文档进行修改;验证修改后的精化性质规约文档与原始性质规约文档的一致性,直到二者一致或达到最大修改次数。
13、进一步地,搜集用例图设计相关的第一知识文档,对所述第一知识文档进行切分并存储在向量索引库中,构成用例设计知识库;对所述第一知识文档进行解析、清洗,将清洗后的第一知识文档按句子进行切分,将切分后的所有句子转为第一向量存储在向量索引库中,存储的所有第一向量构成用例设计知识库。
14、与现有技术相比,本专利技术至少可实现如下有益效果之一:
15、1、本专利技术通过构建用例设计提示词模板为llm提供精化需求文档的规范,使llm能够将从需求文档中准确识别出的对象、事件流、前置条件、后置条件等信息按照规范格式填入用例设计提示词模板,从而生成一份具有工程规范性的、用例设计格式的精化需求文档,解决了目前对需求文档的修改依赖人工完成,易出错且效率低的问题。
16、2、本专利技术通过建立向量索引库,将大量的有效信息转化为向量进行保存,使llm可以通过向量索引库检索相关的向量作为上下文信息,而无需将这些信息作为提示词(prompt)输入llm,提高了llm输出答案的准确性和效率;并且,通过在数据库中进行持久化保存,可以根据需要随时检索提供给llm,相当于为llm提供了长期记忆能力,提高了llm回答的正确性。
17、3、本专利技术先通过在构建的向量索引库中搜索与原始需求文档向量相似度较高的向量,然后通过这些向量的句子窗口从中搜索与原始需求文档语义相似度最高的匹配向量,最后将匹配向量按其上下文顺序转换为句子作为llm上下文输入的一部分,使llm在回答之前无需重新训练就可以获取训练中未提及且与输入内容真正相关的知识,提高了其对原始需求文档中相关内容识别的准确性,为提高精化需求与精化性质规约的正确性提供了基础。
18、4、本专利技术通过将模式设计文档、当前的精化性质规约文档、spec语句错误信息、精化需求文档发送给所述辅助修改机器人,使其在具有充分外部信息提示的基础上进行精化需要文档与精化性质规约文档的检查与修改;并通过多轮的验证-修本文档来自技高网...
【技术保护点】
1.一种基于大语言模型的需求精化方法,其特征在于,所述方法包括以下步骤:
2.根据权利要求1所述的基于大语言模型的需求精化方法,其特征在于,将原始需求文档按句子进行切分得到若干原始需求文档片段,对每个原始需求文档片段在所述用例设计知识库中得到与其匹配的第一向量,将该匹配的第一向量转换为句子得到与其匹配的第一句子。
3.根据权利要求2所述的基于大语言模型的需求精化方法,其特征在于,对每个原始需求文档片段:将该原始需求文档片段转换为第二向量;计算该第二向量与所有第一向量之间的向量相似度,选取向量相似度最大的前k个第一向量;设置句子窗口尺寸,根据所述句子窗口尺寸建立所述前k个第一向量对应的第一句子窗口;计算该第二向量与所有对应的第一句子窗口之间的语义相似度,选取其中语义相似度最大的第一句子窗口对应的所有第一向量作为与该原始需求文档片段匹配的第一向量,将该匹配的第一向量按上下文顺序转换为句子得到与该原始需求文档片段匹配的第一句子。
4.根据权利要求2所述的基于大语言模型的需求精化方法,其特征在于,建立用例图设计相关的第一关键词,根据所述第一关键词构建用
5.根据权利要求4所述的基于大语言模型的需求精化方法,其特征在于,将所有原始需求文档片段及其匹配的第一句子、用例设计提示词模板输入大语言模型,使大语言模型根据所述用例设计提示词模板从原始需求文档片段中提取所述第一关键词对应的内容并填入所述用例设计提示词模板,从而生成精化需求文档。
6.根据权利要求1所述的基于大语言模型的需求精化方法,其特征在于,所述验证精化性质规约文档的语法正确性包括:构造精化性质规约文档中每个变量表达式的反例,若构造的反例可以得到正确输出,则判定该反例对应的变量表达式语法正确,若所有变量表达式语法均正确,则判定该精化性质规约文档语法正确,否则判定其语法不正确。
7.根据权利要求6所述的基于大语言模型的需求精化方法,其特征在于,构建辅助修改机器人用于对精化需求文档及精化性质规约文档进行检查与修改;设置最大修改次数;若语法不正确,则将模式设计文档、精化性质规约文档、语法不正确的反例及其报错信息发送给所述辅助修改机器人,使其对精化性质规约文档进行修改;对修改后的精化性质规约文档的语法正确性进行验证,直到其语法全部正确或达到最大修改次数。
8.根据权利要求1所述的基于大语言模型的需求精化方法,其特征在于,验证原始性质规约文档与语法验证后的精化性质规约文档中相应变量表达式之间的逻辑关系,若语法验证后的精化性质规约文档中的变量表达式蕴含或等价于原始性质规约文档中相应的变量表达式,则判定二者一致,否则判定二者不一致。
9.根据权利要求8所述的基于大语言模型的需求精化方法,其特征在于,设置最大修改次数;若不一致,则将模式设计文档、当前的精化性质规约文档及其对应的精化需求文档、SPEC语句错误信息发送给所述辅助修改机器人,使其对语法验证后的精化性质规约文档及其对应的精化需求文档进行修改;验证修改后的精化性质规约文档与原始性质规约文档的一致性,直到二者一致或达到最大修改次数。
10.根据权利要求1所述的基于大语言模型的需求精化方法,其特征在于,搜集用例图设计相关的第一知识文档,对所述第一知识文档进行切分并存储在向量索引库中,构成用例设计知识库;对所述第一知识文档进行解析、清洗,将清洗后的第一知识文档按句子进行切分,将切分后的所有句子转为第一向量存储在向量索引库中,存储的所有第一向量构成用例设计知识库。
...【技术特征摘要】
1.一种基于大语言模型的需求精化方法,其特征在于,所述方法包括以下步骤:
2.根据权利要求1所述的基于大语言模型的需求精化方法,其特征在于,将原始需求文档按句子进行切分得到若干原始需求文档片段,对每个原始需求文档片段在所述用例设计知识库中得到与其匹配的第一向量,将该匹配的第一向量转换为句子得到与其匹配的第一句子。
3.根据权利要求2所述的基于大语言模型的需求精化方法,其特征在于,对每个原始需求文档片段:将该原始需求文档片段转换为第二向量;计算该第二向量与所有第一向量之间的向量相似度,选取向量相似度最大的前k个第一向量;设置句子窗口尺寸,根据所述句子窗口尺寸建立所述前k个第一向量对应的第一句子窗口;计算该第二向量与所有对应的第一句子窗口之间的语义相似度,选取其中语义相似度最大的第一句子窗口对应的所有第一向量作为与该原始需求文档片段匹配的第一向量,将该匹配的第一向量按上下文顺序转换为句子得到与该原始需求文档片段匹配的第一句子。
4.根据权利要求2所述的基于大语言模型的需求精化方法,其特征在于,建立用例图设计相关的第一关键词,根据所述第一关键词构建用例设计提示词模板;所述第一关键词包括用例、参与者、系统边界、参与者之间的关系、前置条件、后置条件、用例场景、事件流、简要说明、特殊需求;所述用例设计提示词模板包括所述第一关键词及其对应的说明。
5.根据权利要求4所述的基于大语言模型的需求精化方法,其特征在于,将所有原始需求文档片段及其匹配的第一句子、用例设计提示词模板输入大语言模型,使大语言模型根据所述用例设计提示词模板从原始需求文档片段中提取所述第一关键词对应的内容并填入所述用例设计提示词模板,从而生成精化需求文档。
6.根据权利要求1所述的基于大语言模型的需求精化方法,其特征在于,所述验证精化性质规约文档的语法正确性包...
【专利技术属性】
技术研发人员:葛宁,何金泽,饶新元,牛建伟,胡春明,
申请(专利权)人:北京航空航天大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。