一种领域语言原语行为与面向机器文档的同步方法与流程
本发明涉及人工智能原生游戏引擎,尤其涉及一种领域语言原语行为与面向机器文档的同步方法。
背景技术:
1、在人工智能原生游戏引擎这一场景中,游戏逻辑全部由声明式配置数据描述,引擎底层暴露一组数量有限、编译器固定的预编译原语。这些原语不是由程序员逐个查阅源码来使用的,而是由大语言模型读取面向机器的文档后照着生成配置数据。人工智能对某一个原语的全部认知,来自原语的文档渲染,而非原语的真正实现。因此,文档是否忠实反映原语真实运行行为,从工程整洁度问题升级为决定生成质量的根本正确性问题。现有技术中,面向机器读取的原语文档通常采用独立于实现的手写散文形式,文档与真实行为各自为源,静默漂移。传统工程中,原语的文档用于说明原语的参数、默认值、枚举取值、写入字段以及副作用,文档是独立于实现手写的另一份真源。当有人修改了原语的实现,例如修改了默认值、修改了某一个枚举取值的语义、修改了动作写入的目标字段、修改了值函数的返回,文档没有任何机制被强制同步。文档从此描述的是旧行为,却继续被当作真源投喂给人工智能。这种漂移是静默的,编译通过、测试通过、文档照常渲染,只是文档内容已经错了。
2、为缓解文档与代码不一致的问题,工程上常采用可执行文档字符串测试、文学式编程、组件示例画廊或应用程序编程接口参考文档生成器等方案。可执行文档字符串测试会将写在文档注释中的示例片段抽出来作为测试运行,但运行环境是语言级单元或进程,并非启动一个完整游戏引擎后端并构建真实游戏世界,因此验证不了配置在真实引擎中运行所产生的物理、渲染或事件效果是否符合描述。文学式编程将代码与解释文字交织在同一份文稿中,再抽取出可编译的源码,但解释性散文本身仍是手写、不被执行、可自由漂移。组件示例画廊展示每个组件的多种用法,每个故事是可渲染的真实组件实例,但画廊展示的是给人看的可视效果,不具有机器可读的、经断言的行为契约,且故事与组件真实行为之间缺少断言桥接。应用程序编程接口参考文档生成器从源码注释抽取生成参考文档,但注释正文中的语义说明、示例和默认值含义仍然是手写散文,不被执行、不被验证,可自由漂移。
3、上述现有技术均存在以下缺点:文档与实现是两份真源,实现变了文档不变,且无任何机制强制文档变红,漂移静默发生。面向人工智能的陈旧文档会被所有后续生成继承同一错误认知,一处漂移污染全部生成。手写示例任意省略行为分支,未举例分支等于未文档化分支,人工智能对未举例分支只能猜测。独立手写示例无校验、无执行、无消费保证,逐渐语法过时、语义过时或根本无人再读。即便示例被执行,也只保证示例能运行,不保证被文档的原语的真实行为没有改变。现有可执行文档都不在完整引擎后端与真实游戏世界里断言效果,抓不住只在真实运行时才暴露的行为漂移。
4、综上所述,本发明所要解决的技术问题是:提供一种领域语言原语行为与面向机器文档的同步方法,使得人工智能读到的每一段原语文档均是从一个真实、最小、可运行的游戏当中经校验、经执行后投影出来的摘录,而非独立手写的散文;原语的每一个行为分支均被强制要求在某段暴露摘录中出现;原语的运行行为由一个完整引擎后端启动并运行真实游戏世界的行为探针断言,行为一旦漂移,探针立即将漂移捕获为测试失败;该行为探针对每个原语默认强制,例外情形须由原语清单显式声明并附具体理由。
技术实现思路
1、本发明所要解决的技术问题是针对现有技术的不足,具体针对文档与真实行为各自为源所导致的静默漂移、行为分支无人保证覆盖以及行为探针默认缺失导致语义漂移无法被捕获等问题,具体提供了一种领域语言原语行为与面向机器文档的同步方法,具体如下:
2、1)第一方面,本发明提供一种领域语言原语行为与面向机器文档的同步方法,具体技术方案如下,包括:
3、为每一个领域语言原语构建示例包,所述示例包包括可通过引擎装载校验的可运行实例及清单;所述可运行实例包括带有标识的至少一段暴露摘录,所述清单包括所述可运行实例的标识集合;
4、获取所述领域语言原语声明的全部行为分支,检查所述全部行为分支,当任一行为分支未出现在所述标识集合中时,生成失败指示;
5、对于配置有探针场景的示例包,运行所述探针场景得到真实运行效果,当运行所述探针场景出现异常时,生成失败指示;否则,根据所述暴露摘录确定描述行为结果,当所述真实运行效果与所述描述行为结果不符时,生成失败指示;
6、对于未配置探针场景的示例包,判断所述示例包是否配置有行为探针,若所述示例包配置有所述行为探针,当运行所述行为探针失败时生成失败指示;若所述示例包未配置所述行为探针,当所述清单中的探针理由内容不符合预设条件时,生成失败指示;
7、当均未生成失败指示时,根据所述标识集合,从所述可运行实例中获取暴露摘录,将所述暴露摘录渲染为面向机器的原语文档,以使得大语言模型读取所述原语文档。
8、本发明提供的一种领域语言原语行为与面向机器文档的同步方法的有益效果如下:
9、通过为每一个领域语言原语构建包含可运行实例及清单的示例包,并在可运行实例中以带有标识的暴露摘录承载原语自身用法、以清单记录标识集合,使得面向机器的原语文档不再依赖独立手写的散文,而是从真实可运行的实例中投影而来,从根本上杜绝了人工智能读到未经校验的手写文档的可能性;通过分支覆盖守卫检查原语声明的全部行为分支是否均出现在标识集合中,确保每一个行为分支都有对应的暴露摘录,避免了冷门分支被遗漏而导致人工智能对未举例分支只能猜测的问题;通过运行探针场景得到真实运行效果并与暴露摘录所描述的行为结果进行比对,将语义漂移转化为可捕获的失败指示,解决了文档描述的行为与原语真实实现不一致时无法被察觉的静默漂移问题;通过翻转默认守卫对未配置行为探针的示例包强制要求清单中附有符合预设条件的探针理由,使得每一个有可断言行为的原语都必须接受真实运行验证,将行为探针从可选变为强制,从而系统性保证了面向机器的原语文档始终是经校验、经执行的真实行为投影,人工智能基于该文档生成的配置数据不再继承陈旧或错误的原语认知,提升了生成结果的正确性。
10、在上述方案的基础上,本发明还可以做如下改进。
11、进一步,所述可通过引擎装载校验包括:
12、在持续集成中对所述可运行实例执行引擎装载校验,当校验结果不为零错误时,生成失败指示。
13、进一步,所述暴露摘录通过暴露标记圈定,所述暴露标记携带一个所述标识;所述暴露摘录包含所述示例包对应的领域语言原语自身的用法片段;所述标识与所述标识集合中的元素一一对应。
14、进一步,所述探针场景的运行方式包括:启动一个完整的引擎后端并构建一个物理及事件均真实工作的游戏世界,以得到所述真实运行效果。
15、进一步,运行所述探针场景时出现的异常包括:所述探针场景对应的进程崩溃、超时或输出为空;
16、所述描述行为结果由所述暴露摘录携带的注解确定,所述注解用于记载所述暴露摘录描述的行为的发生时间以及发生目的。
17、进一步,还包括:
18、将所述运行所述探针场景列为独立的测试单元,所述测试单元不并入快速单元测试套件且不进入提交前钩子;当所述探针场景对应的行为探针触及对应的领域语言原语行为或触及对应的示例包时,手动、定时或周期性运行所述探针场景。
19、进一步,还包括:
20、在应用构建时,将所述暴露摘录编入二进制字符串常量表,使所述原语文档在任意运行目录下产出一致的摘录集合,并设置一致性校验防止所述字符串常量表与所述暴露摘录发生漂移。
21、2)第二方面,本发明还提供一种领域语言原语行为与面向机器文档的同步系统,具体技术方案如下,包括:示例包构建模块、分支覆盖守卫模块、探针运行模块、翻转默认守卫模块以及文档投影模块;
22、所述示例包构建模块,用于为每一个领域语言原语构建示例包,所述示例包包括可通过引擎装载校验的可运行实例及清单;所述可运行实例包括带有标识的至少一段暴露摘录,所述清单包括所述可运行实例的标识集合;
23、所述分支覆盖守卫模块,用于获取所述领域语言原语声明的全部行为分支,检查所述全部行为分支,当任一行为分支未出现在所述标识集合中时,生成失败指示;
24、所述探针运行模块,用于对于配置有探针场景的示例包,运行所述探针场景得到真实运行效果,当运行所述探针场景出现异常时,生成失败指示;否则,根据所述暴露摘录确定描述行为结果,当所述真实运行效果与所述描述行为结果不符时,生成失败指示;
25、所述翻转默认守卫模块,用于对于未配置探针场景的示例包,判断所述示例包是否配置有行为探针,若所述示例包配置有所述行为探针,当运行所述行为探针失败时生成失败指示;若所述示例包未配置所述行为探针,当所述清单中的探针理由内容不符合预设条件时,生成失败指示;
26、所述文档投影模块,用于当均未生成失败指示时,根据所述标识集合,从所述可运行实例中获取暴露摘录,将所述暴露摘录渲染为面向机器的原语文档,以使得大语言模型读取所述原语文档。
27、在上述方案的基础上,本发明还可以做如下改进。
28、进一步,所述可通过引擎装载校验包括:
29、在持续集成中对所述可运行实例执行引擎装载校验,当校验结果不为零错误时,生成失败指示。
30、进一步,所述暴露摘录通过暴露标记圈定,所述暴露标记携带一个所述标识;所述暴露摘录包含所述示例包对应的领域语言原语自身的用法片段;所述标识与所述标识集合中的元素一一对应。
31、进一步,所述探针场景的运行方式包括:启动一个完整的引擎后端并构建一个物理及事件均真实工作的游戏世界,以得到所述真实运行效果。
32、进一步,运行所述探针场景时出现的异常包括:所述探针场景对应的进程崩溃、超时或输出为空;
33、所述描述行为结果由所述暴露摘录携带的注解确定,所述注解用于记载所述暴露摘录描述的行为的发生时间以及发生目的。
34、进一步,还包括:
35、将所述运行所述探针场景列为独立的测试单元,所述测试单元不并入快速单元测试套件且不进入提交前钩子;当所述探针场景对应的行为探针触及对应的领域语言原语行为或触及对应的示例包时,手动、定时或周期性运行所述探针场景。
36、进一步,还包括:
37、在应用构建时,将所述暴露摘录编入二进制字符串常量表,使所述原语文档在任意运行目录下产出一致的摘录集合,并设置一致性校验防止所述字符串常量表与所述暴露摘录发生漂移。
38、3)第三方面,本发明还提供一种计算机设备,所述计算机设备包括处理器,所述处理器与存储器耦合,所述存储器中存储有至少一条计算机程序,所述至少一条计算机程序由所述处理器加载并执行,以使所述计算机设备实现如上任一项方法。
39、4)第四方面,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条计算机程序,所述至少一条计算机程序由处理器加载并执行,以使计算机实现如上任一项方法。
40、需要说明的是,本发明的第二方面至第四方面的技术方案及对应的可能的实现方式所取得的有益效果,可以参见上述对第一方面及其对应的可能的实现方式的技术效果,此处不再赘述。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com