Page 232 - 《软件学报》2026年第5期
P. 232
张添翼 等: LLM-Extractor: 基于大语言模型的软件配置间约束提取方法 2111
关联形成的图结构, 而约束关系通过该图结构上的节点和边传递. 对于图 4 所示的示例, 我们对推断过程涉及的配
置、功能、条件等要素进行抽象, 构建了如图 5 所示的图结构. 如图 5 所示, 我们将配置间约束推断中涉及的软件
对象抽象为几种不同的节点, 即软件配置 (图中灰色椭圆)、软件配置条件 (图中菱形)、软件功能 (图中橙色矩形)、
软件功能状态 (图中白色无填充矩形), 并使用 LeadTo、Require、Related 等几种逻辑关联关系将这些节点关联,
形成了多配置相互关联的图结构. 事实上, 研究人员正是在脑海中生成了与图 5 类似的图结构, 并经过思考和推
理, 得出了配置间约束规则, 而在这个过程中研究人员需要回忆不同配置文本的描述, 并将这些描述中的关键信息
进行整合. 由此我们受到启发, 如果能够通过一个配置-功能关联图将不同配置文本描述中的逻辑关联信息记录下
来, 形成结构化的知识, 再借助 LLM 的文本理解和逻辑推断能力, 就能模拟研究人员阅读文本并推断配置间约束
的过程. 相比于直接引导 LLM 阅读冗长杂乱的配置文档, 我们认为这种添加针对性上下文的方式能够显著提高配
置间约束推断的效果.
Related LeadTo (auditing function)
audit_enabled
==off is disabled
AtStatus
audit_enabled Auditing function
LeadTo
audit_enabled (auditing function)
Related ==on is enabled
Require
LeadTo (audit logs) AtStatus
audit_resource_policy are preferentially
Related ==on stored by space
audit_resource_policy Audit logs
Related LeadTo (audit logs)
audit_resource_policy are preferentially
==off stored by time AtStatus
Require
audit_file_remain_time
图 5 audit_file_remain_time 约束提取思维链图结构
由此我们先借助 LLM 分析每个配置文档描述的内容, 提取其中包含的配置条件、软件功能及其状态等信息,
再将这些实体关联, 形成配置-功能约束关联图. 基于该图结构, 我们可以找到存在多配置关联的子图, 进而基于子
图推断不同配置项之间存在的约束关系.
2.2.2 方法动机
通过上述的经验研究我们发现, 已有方法的缺陷主要在于文本理解能力较差, 无法准确识别软件配置项对应
的配置条件, 并提取不同配置条件之间的逻辑关系, 同时, 已有方法未能综合分析不同配置项的文本描述之间的关
联关系, 而这些关联关系通过软件功能实体的状态进行传递. 基于这些发现, 我们提出了基于 LLM 的配置间约束
提取方法, 借助 LLM 在文本理解分析领域的强大能力, 能够高效识别文本语句中的配置项以及对应的配置条件,
并抽取配置条件之间、配置条件与软件功能实体之间以及功能实体之间的关联关系, 构建出软件配置-功能关联
图. 基于该图, 我们可以搜索相互关联的软件配置以及关联子图, 并把关联子图作为上下文提供给 LLM, 从而发挥
LLM 的逻辑分析能力, 推断多个软件配置项之间的约束关系并输出约束规则.
3 方 法
本文提出了基于 LLM 提示工程的软件配置约束提取方法 LLM-Extractor, 图 6 展示了 LLM-Extractor 方法的
整体流程. 该方法可以被分为两个主要步骤: 软件配置-功能关联图 (config-function relation graph, CFRG) 构建和

