基于LLM对文档进行任务划分,是指利用LLM理解文档内容,将相关文档归入同一工作单元,如任务、问题、模块等,从而实现自动化组织和管理。
这里参考网络资料,尝试从功能描述、提示词实例、价值三个方面进行阐述。
1 功能描述
1.1 划分任务描述
LLM能够处理自然语言文本,提取语义信息,进行文本分类、聚类和关系识别。
在文档任务划分中,主要依赖以下能力:
1)语义理解
LLM可解析文档标题、摘要等字段中的核心信息,如模块名、问题类型、影响范围,理解文档间的关联性,如缺陷与修复的对应关系。
2)信息抽取
通过提示工程,让LLM从非结构化文本中抽取出结构化标签,如模块、问题类别、严重性,作为任务划分的基础。
3)文本分类与聚类
LLM能够根据预设的类别体系,如按模块、问题类型,对文档进行分类。
或通过语义相似度计算将相关文档聚合为任务组。
4)上下文关联
对于成对出现的文档,如缺陷报告和修复确认报告,LLM可以识别其内容上的逻辑关联(如同一`pair_id`或相同模块),自动合并为完整任务。
在给定数据中,每个文档已包含`pair_id`,表明它们天然成对。但更高层次的任务划分(如将多个相关缺陷及其修复归为"性能优化专项"或"安全加固专项")仍需LLM基于语义进行聚合。
1.2 文档数据描述
为测试文档划分功能,这里给出一系列文档记录。
包含10对文档缺陷报告和修复确认报告,通过pair_id关联,涉及登录模块、支付接口、数据库连接池、前端UI、用户查询接口(SQL注入)、缓存层、权限模块、日志系统、消息队列、部署脚本。
示例如下。
[
{
"record_id": "REC001",
"knowledge_base_id": "KB-SOFT-TEST-001",
"title": "智联云平台V2.0-登录模块缺陷报告-2025-03-15.docx",
"document_type": "缺陷报告",
"project_id": "PROJ-2025-001",
"abstract": "模块:登录模块;缺陷描述:用户名密码正确时偶尔提示'验证失败',概率约5%;涉及版本:v2.0.3;发现时间:2025-03-15;指派人:张三",
"pair_id": "PAIR01"
},
{
"record_id": "REC002",
"knowledge_base_id": "KB-SOFT-TEST-001",
"title": "智联云平台V2.0-登录模块缺陷修复确认报告-2025-03-18.pdf",
"document_type": "修复确认报告",
"project_id": "PROJ-2025-001",
"abstract": "模块:登录模块;修复内容:修正session校验逻辑,增加重试机制;验证结果:通过,连续测试200次无失败;修复人:李四;验证人:王五;修复日期:2025-03-18",
"pair_id": "PAIR01"
},
{
"record_id": "REC003",
"knowledge_base_id": "KB-SOFT-TEST-001",
"title": "智联云平台V2.0-支付接口压力测试报告-2025-03-20.docx",
"document_type": "缺陷报告",
"project_id": "PROJ-2025-001",
"abstract": "模块:支付接口;测试场景:500并发用户持续5分钟;发现:响应时间随并发上升急剧增加,90%响应时间超过3秒,存在性能瓶颈;建议优化数据库查询和缓存策略",
"pair_id": "PAIR02"
},
{
"record_id": "REC004",
"knowledge_base_id": "KB-SOFT-TEST-001",
"title": "智联云平台V2.0-支付接口性能优化报告-2025-03-25.pdf",
"document_type": "修复确认报告",
"project_id": "PROJ-2025-001",
"abstract": "模块:支付接口;优化措施:增加Redis缓存订单状态,优化SQL索引;复测结果:500并发下90%响应时间1.2秒,通过;优化人:赵六;验证人:陈七",
"pair_id": "PAIR02"
},
{
"record_id": "REC005",
"knowledge_base_id": "KB-SOFT-TEST-001",
"title": "智联云平台V2.0-数据库连接池配置检查报告-2025-03-10.docx",
"document_type": "缺陷报告",
"project_id": "PROJ-2025-001",
"abstract": "模块:数据库层;发现:连接池最大连接数设置过小(20),高并发时出现连接等待超时;建议调整为100,并增加监控",
"pair_id": "PAIR03"
},
{
"record_id": "REC006",
"knowledge_base_id": "KB-SOFT-TEST-001",
"title": "智联云平台V2.0-数据库连接池配置整改报告-2025-03-12.pdf",
"document_type": "修复确认报告",
"project_id": "PROJ-2025-001",
"abstract": "模块:数据库层;整改内容:将最大连接数调整为100,添加连接池监控告警;验证:压测未再出现连接超时;责任人:周八",
"pair_id": "PAIR03"
},
{
"record_id": "REC007",
"knowledge_base_id": "KB-SOFT-TEST-001",
"title": "智联云平台V2.0-前端页面兼容性测试报告-2025-03-05.docx",
"document_type": "缺陷报告",
"project_id": "PROJ-2025-001",
"abstract": "模块:前端UI;测试浏览器:Chrome 120, Firefox 115, Safari 17, IE11;发现:在IE11下页面布局错乱,部分按钮无响应;建议使用polyfill或调整CSS",
"pair_id": "PAIR04"
},
{
"record_id": "REC008",
"knowledge_base_id": "KB-SOFT-TEST-001",
"title": "智联云平台V2.0-前端兼容性修复验证报告-2025-03-08.pdf",
"document_type": "修复确认报告",
"project_id": "PROJ-2025-001",
"abstract": "模块:前端UI;修复措施:添加CSS前缀,引入core-js polyfill;验证:在IE11上页面显示正常,功能可用;修复人:吴九;验证人:郑十",
"pair_id": "PAIR04"
},
{
"record_id": "REC009",
"knowledge_base_id": "KB-SOFT-TEST-001",
"title": "智联云平台V2.0-安全漏洞扫描报告(SQL注入)-2025-03-22.docx",
"document_type": "缺陷报告",
"project_id": "PROJ-2025-001",
"abstract": "模块:用户查询接口;漏洞描述:参数未过滤导致SQL注入风险,可获取敏感数据;建议使用参数化查询;风险等级:高",
"pair_id": "PAIR05"
},
{
"record_id": "REC010",
"knowledge_base_id": "KB-SOFT-TEST-001",
"title": "智联云平台V2.0-SQL注入漏洞修复报告-2025-03-25.pdf",
"document_type": "修复确认报告",
"project_id": "PROJ-2025-001",
"abstract": "模块:用户查询接口;修复:改用MyBatis参数化查询,移除字符串拼接;验证:使用sqlmap扫描未发现注入点;修复人:孙一;验证人:李二",
"pair_id": "PAIR05"
},
{
"record_id": "REC011",
"knowledge_base_id": "KB-SOFT-TEST-001",
"title": "智联云平台V2.0-缓存机制性能测试报告-2025-03-28.docx",
"document_type": "缺陷报告",
"project_id": "PROJ-2025-001",
"abstract": "模块:缓存层;测试发现:热点数据缓存过期策略不合理,导致频繁穿透数据库;建议采用更长的过期时间并结合主动刷新",
"pair_id": "PAIR06"
},
{
"record_id": "REC012",
"knowledge_base_id": "KB-SOFT-TEST-001",
"title": "智联云平台V2.0-缓存优化实施报告-2025-03-31.pdf",
"document_type": "修复确认报告",
"project_id": "PROJ-2025-001",
"abstract": "模块:缓存层;优化:将热点数据缓存时间延长至1小时,添加定时刷新任务;复测:数据库负载降低40%;实施人:张三;验证人:李四",
"pair_id": "PAIR06"
},
{
"record_id": "REC013",
"knowledge_base_id": "KB-SOFT-TEST-001",
"title": "智联云平台V2.0-用户权限管理缺陷报告-2025-04-02.docx",
"document_type": "缺陷报告",
"project_id": "PROJ-2025-001",
"abstract": "模块:权限模块;缺陷:普通用户通过URL访问/admin接口可绕过权限检查;建议增加拦截器校验;严重性:高",
"pair_id": "PAIR07"
},
{
"record_id": "REC014",
"knowledge_base_id": "KB-SOFT-TEST-001",
"title": "智联云平台V2.0-权限修复确认报告-2025-04-05.pdf",
"document_type": "修复确认报告",
"project_id": "PROJ-2025-001",
"abstract": "模块:权限模块;修复:增加权限拦截器,对所有/admin路径进行角色校验;验证:普通用户访问返回403;修复人:王五;验证人:赵六",
"pair_id": "PAIR07"
},
{
"record_id": "REC015",
"knowledge_base_id": "KB-SOFT-TEST-001",
"title": "智联云平台V2.0-日志记录功能测试报告-2025-04-07.docx",
"document_type": "缺陷报告",
"project_id": "PROJ-2025-001",
"abstract": "模块:日志系统;问题:错误日志未记录堆栈信息,难以定位问题;建议修改log4j配置,输出完整堆栈",
"pair_id": "PAIR08"
},
{
"record_id": "REC016",
"knowledge_base_id": "KB-SOFT-TEST-001",
"title": "智联云平台V2.0-日志改进报告-2025-04-10.pdf",
"document_type": "修复确认报告",
"project_id": "PROJ-2025-001",
"abstract": "模块:日志系统;改进:调整log4j配置,增加堆栈输出,并按天滚动;验证:手动触发异常,日志包含完整堆栈;实施人:陈七",
"pair_id": "PAIR08"
},
{
"record_id": "REC017",
"knowledge_base_id": "KB-SOFT-TEST-001",
"title": "智联云平台V2.0-消息队列可靠性测试报告-2025-04-12.docx",
"document_type": "缺陷报告",
"project_id": "PROJ-2025-001",
"abstract": "模块:消息队列;测试发现:消费者处理失败时消息丢失,未进入死信队列;建议配置重试和死信机制",
"pair_id": "PAIR09"
},
{
"record_id": "REC018",
"knowledge_base_id": "KB-SOFT-TEST-001",
"title": "智联云平台V2.0-消息队列可靠性增强报告-2025-04-15.pdf",
"document_type": "修复确认报告",
"project_id": "PROJ-2025-001",
"abstract": "模块:消息队列;增强:配置重试3次,失败后转入死信队列并告警;验证:模拟失败,消息进入死信队列;实施人:周八;验证人:吴九",
"pair_id": "PAIR09"
},
{
"record_id": "REC019",
"knowledge_base_id": "KB-SOFT-TEST-001",
"title": "智联云平台V2.0-部署脚本错误报告-2025-04-18.docx",
"document_type": "缺陷报告",
"project_id": "PROJ-2025-001",
"abstract": "模块:部署脚本;问题:脚本中环境变量写死,导致测试环境配置错误;建议使用变量替换",
"pair_id": "PAIR10"
},
{
"record_id": "REC020",
"knowledge_base_id": "KB-SOFT-TEST-001",
"title": "智联云平台V2.0-部署脚本修正报告-2025-04-20.pdf",
"document_type": "修复确认报告",
"project_id": "PROJ-2025-001",
"abstract": "模块:部署脚本;修正:将硬编码变量改为从配置文件读取,添加错误处理;验证:在测试环境执行成功;修正人:郑十;验证人:孙一",
"pair_id": "PAIR10"
}
]
任务划分可能指的是将这些文档分组到不同的任务或工作项中,比如根据模块、问题类型等。
可以利用LLM来自动识别文档之间的关系,并根据内容将相关的文档归为一个任务单元,例如,一个缺陷及其修复确认为一个任务。
也可以根据模块或问题领域将多个相关的缺陷和修复分组,形成更大的任务,例如登录模块问题、性能优化等。
2 提示词实例
以下示例以提供的JSON数据为输入。
这里假设使用支持对话的LLM,通过设计提示词让模型完成不同粒度的任务划分。
2.1 按模块划分任务
将文档按所涉模块分组,每个模块下的所有缺陷报告和修复确认报告归为一个任务。
提示词如下所示:
你是一个项目文档管理员。以下是项目"智联云平台V2.0"的文档列表,每个文档包含标题、摘要和类型(缺陷报告或修复确认报告)。
请根据文档内容,将所有文档按"模块"进行分组,每组视为一个独立任务。输出每个模块的名称,以及属于该模块的所有文档的record_id列表。
文档列表:
{JSON数组}
输出格式:
模块1: [record_id列表]
模块2: [record_id列表]
基于以上数据,预期输出示例如下:
登录模块: [REC001, REC002]
支付接口: [REC003, REC004]
数据库层: [REC005, REC006]
前端UI: [REC007, REC008]
用户查询接口: [REC009, REC010]
缓存层: [REC011, REC012]
权限模块: [REC013, REC014]
日志系统: [REC015, REC016]
消息队列: [REC017, REC018]
部署脚本: [REC019, REC020]
2.2 按问题类型划分任务
将文档按问题性质分类,如性能问题、安全问题、兼容性问题等,每个类别下包含所有相关文档。
提示词实例如下。
请根据以下文档的标题和摘要,为每个文档判断其主要问题类型(可选类型:性能问题、安全问题、兼容性问题、可靠性问题、配置问题、日志问题、其他)。然后将相同类型的文档归为同一个任务,输出问题类型及对应的record_id列表。
文档列表:
{JSON数组}
输出格式:
性能问题: [record_id列表]
安全问题: [record_id列表]
预期输出示例如下:
性能问题: [REC003, REC004, REC005, REC006, REC011, REC012]
安全问题: [REC009, REC010, REC013, REC014]
兼容性问题: [REC007, REC008]
可靠性问题: [REC017, REC018]
配置问题: [REC019, REC020]
日志问题: [REC015, REC016]
登录功能问题: [REC001, REC002] (或其他细分)
2.3 按严重性划分任务
根据文档隐含的严重性,如摘要中的风险等级:高,将文档分组为高优先级任务、中优先级任务。
提示词实例如下
分析以下文档的摘要,提取每个文档的严重性级别(高、中、低)。如果摘要中未明确,请根据描述推断(如"风险等级:高"直接对应高,"性能瓶颈"可视为中)。然后按严重性分组,输出每个严重性级别下的record_id列表。
文档列表:
{JSON数组}
输出格式:
高严重性: [record_id列表]
中严重性: [record_id列表]
低严重性: [record_id列表]
预期输出示例如下
高严重性: [REC009, REC013] (SQL注入、权限绕过)
中严重性: [REC001, REC003, REC005, REC007, REC011, REC015, REC017, REC019]
低严重性: [REC002, REC004, REC006, REC008, REC010, REC012, REC014, REC016, REC018, REC020] (修复确认报告通常已解决,可视为低)
2.4. 自动关联缺陷与修复
上述数据即使没有pair_id字段,也可让LLM根据内容匹配缺陷报告和对应的修复确认报告。
提示词示例如下
以下文档包含缺陷报告和修复确认报告。请根据内容(如模块、问题描述、修复内容)将每个缺陷报告与其对应的修复确认报告配对,视为一个完整任务。输出每个配对的record_id(缺陷报告在前,修复确认报告在后)。
文档列表:
{JSON数组}
输出格式:
任务1: 缺陷报告RECxxx, 修复确认报告RECyyy
任务2: ...
预期输出如下所示,应与已知pair_id一致。:
任务1: REC001, REC002
任务2: REC003, REC004
3 划分价值
利用LLM进行文档任务划分,能够以较低成本实现文档的智能组织,提升项目管理水平。
在项目管理、文档自动化处理等方面具有显著价值。
1)提高效率
自动分类和聚合文档,免去人工阅读、归纳的繁琐工作,尤其当文档数量庞大时,可快速形成任务视图。
2)增强一致性
LLM按照统一规则进行划分,避免人工主观判断导致的分类偏差,保证任务划分标准的一致性。
3)支持追踪与分析
将相关文档,如缺陷与修复关联为任务,便于追踪问题从发现到解决的完整生命周期。
按模块或问题类型聚合,可快速识别高频问题区域或高风险领域。
4)辅助决策
通过严重性分组,项目管理者可优先处理高风险任务;按模块分组有助于分配资源给对应负责人。
5)动态适应性
通过调整提示词,可灵活适应不同的划分维度,如按版本、按测试阶段,无需修改底层代码,快速响应业务变化。
6)知识沉淀
任务划分结果可作为项目知识库的结构化数据,为后续类似问题提供参考,或用于训练更专业的领域模型。
reference
Prompt engineering
https://developers.openai.com/api/docs/guides/prompt-engineering
Build a RAG agent with LangChain
https://docs.langchain.com/oss/python/langchain/rag
读paper19-基于LLM的缺陷修复5与总结