如何基于LLM对文档进行任务划分

基于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与总结

https://www.zwn2001.space/posts/Graduate-Works/Paper-Read/%E8%AF%BBpaper19-%E5%9F%BA%E4%BA%8ELLM%E7%9A%84%E7%BC%BA%E9%99%B7%E4%BF%AE%E5%A4%8D5/index.html

相关推荐
一帅2 小时前
拆解 Claude Code:从底层机制到 10 倍效率的实战指南
人工智能
TAPD敏捷研发2 小时前
TAPD联合企业微信、CNB、CodeBuddy,推出AI研发与协同办公系列分享会
人工智能·aigc·企业微信·产品经理·个人开发·腾讯·tapd
Chengbei112 小时前
AI 自动逆向 JS 加密!自动抓密钥、出报告,彻底解放双手,解决抓包数据包加密难题
开发语言·javascript·人工智能·安全·网络安全·网络攻击模型
chaors2 小时前
Langchain入门到精通0x0a:天气小助手实战
人工智能·langchain·ai编程
ECH00O002 小时前
09-Agent智能体:大模型的"手"和"脚"
人工智能
ECH00O002 小时前
08-RAG技术详解:让大模型拥有"外挂知识库"
人工智能
zhangfeng11332 小时前
unsloth 安装的时候会 自动升级torch版本,解决办法
人工智能·pytorch
HAREWORK_FFF2 小时前
用CAIE认证为简历加分:AI学习者的标准学习周期与规划
人工智能·学习·百度
郝学胜-神的一滴2 小时前
深度学习入门全解析:从核心概念到实战基础 | 技术研讨会精华总结
人工智能·python·深度学习·算法·cnn