如何使用向量库faiss和LLM判断问题是否被记录
在实际去重应用场景中,我们可能经常需要判断某个问题检查是否被记录。
问题库规模可能很大,比如几千条记录,直接人工判断不太现实。
这里基于网络资料,尝试直接用LLM以及基于相似性判断,探索高效准确的去重方案。
1 问题说明
这里假设有2个待处理问题和一个包含29个的示例问题库,问题库中不能保存重复的问题记录。
所以,我们在将这两个待处理入库前,需要判断这两个问题是否在问题库中被记录。
1.1 待处理问题
以下是两个待处理的问题检查记录,其中
check是对已记录问题的整改记录,new_check是未记录的问题。
check ={
"category": "环境与职业健康",
"description": "焊接车间烟尘处理系统滤芯堵塞,未及时更换,影响作业环境",
"source_doc": "焊接车间质量安全检查清单_整改记录20260313.docx",
"date": "2026.03.08",
"corrected_desc": "焊接车间烟尘处理系统滤芯已替换",
"corrected_time": "两日内整改完成"
}
new_check = {
"category": "环境与职业健康",
"description": "噪音岗位员工未按要求佩戴耳塞,体检档案不完整",
"source_doc": "焊接车间质量安全检查清单20260308.docx",
"date": "2026.03.08",
"is_corrected": "是",
"corrected_time": "两日内整改完成"
}
假设我们不确定check、new_check是否已经被记录。
如果已经被记录,说明这是重复问题,不需要被记录。
如果问题没有被记录,可以添加到下节提到的已记录问题中。
1.2 问题检查记录库
以下是问题库记录29个问题检查记录。
每个问题包括
1)问题类别category
2)问题描述description
3)记录问题的文件source_doc
4)问题被记录的日期date
5)整改计划时间corrected_time
recored_checks = [
{
"category": "电路安全问题",
"description": "总装车间动力电池高压线束绝缘层破损,铜线裸露,有短路风险",
"source_doc": "总装车间专项安全检查报告20260315.docx",
"date": "2026.03.15",
"is_corrected": "是",
"corrected_time": "当日内整改完成"
},
{
"category": "电路安全问题",
"description": "电池包PACK车间,高压连接器未安装到位,存在虚接隐患",
"source_doc": "电池车间安全检查记录20260320.xlsx",
"date": "2026.03.20",
"is_corrected": "是",
"corrected_time": "两日内整改完成"
},
{
"category": "电路安全问题",
"description": "测试区高压警示标识脱落,未设置隔离警戒线",
"source_doc": "测试中心安全检查问题清单20260310.docx",
"date": "2026.03.10",
"is_corrected": "是",
"corrected_time": "当日内整改完成"
},
{
"category": "电路安全问题",
"description": "充电桩测试区域,充电枪头防护罩缺失,存在触电风险",
"source_doc": "公司2026年第一季度安全专项检查报告.pdf",
"date": "2026.03.22",
"is_corrected": "否",
"corrected_time": ""
},
{
"category": "电池防爆问题",
"description": "电池模组堆放区未配备防爆柜,且灭火器材配备不足",
"source_doc": "电池车间安全检查记录20260318.xlsx",
"date": "2026.03.18",
"is_corrected": "是",
"corrected_time": "三日内整改完成"
},
{
"category": "电池防爆问题",
"description": "电芯老化测试间,排风系统故障,未及时维修,可能造成有毒气体积聚",
"source_doc": "电池车间安全检查记录20260305.xlsx",
"date": "2026.03.05",
"is_corrected": "是",
"corrected_time": "一周内整改完成"
},
{
"category": "电池防爆问题",
"description": "电池包挤压针刺实验室,未设置独立观察室和安全泄压通道",
"source_doc": "实验室安全专项检查问题清单20260312.docx",
"date": "2026.03.12",
"is_corrected": "否",
"corrected_time": ""
},
{
"category": "电池防爆问题",
"description": "电池包返修区,存在私自改装电池连接片的行为,未按标准流程操作",
"source_doc": "电池车间安全检查记录20260325.xlsx",
"date": "2026.03.25",
"is_corrected": "是",
"corrected_time": "当日内整改完成"
},
{
"category": "碰撞安全问题",
"description": "白车身焊接车间,关键受力点(如B柱、门槛梁)焊接强度抽检记录缺失",
"source_doc": "焊接车间质量安全检查清单20260308.docx",
"date": "2026.03.08",
"is_corrected": "是",
"corrected_time": "两日内整改完成"
},
{
"category": "碰撞安全问题",
"description": "总装车间,电池包与车身连接螺栓扭矩复检记录未按规范填写,存在漏拧风险",
"source_doc": "总装车间专项安全检查报告20260315.docx",
"date": "2026.03.15",
"is_corrected": "是",
"corrected_time": "两日内整改完成"
},
{
"category": "碰撞安全问题",
"description": "某试制车型防撞梁材料强度报告显示与设计不符,未进行原因分析和追溯",
"source_doc": "研发中心试制车间安全检查报告20260317.pdf",
"date": "2026.03.17",
"is_corrected": "否",
"corrected_time": "已通报,待整改"
},
{
"category": "碰撞安全问题",
"description": "车身车间,用于碰撞试验的白车身,其结构胶涂覆工艺未按作业指导书执行",
"source_doc": "研发中心试制车间安全检查报告20260317.pdf",
"date": "2026.03.17",
"is_corrected": "是",
"corrected_time": "一周内整改完成"
},
{
"category": "高压安全与防护",
"description": "维修车间,绝缘工具未定期送检,部分工具耐压等级标识模糊不清",
"source_doc": "售后服务中心安全检查问题清单20260301.docx",
"date": "2026.03.01",
"is_corrected": "是",
"corrected_time": "三日内整改完成"
},
{
"category": "高压安全与防护",
"description": "某充电站,地面未铺设绝缘胶垫,且无应急断电开关",
"source_doc": "公司2026年第一季度安全专项检查报告.pdf",
"date": "2026.03.22",
"is_corrected": "是",
"corrected_time": "两日内整改完成"
},
{
"category": "高压安全与防护",
"description": "高压作业人员未按要求佩戴绝缘手套和绝缘鞋,个人防护用品缺失",
"source_doc": "电池车间安全检查记录20260318.xlsx",
"date": "2026.03.18",
"is_corrected": "是",
"corrected_time": "当日内整改完成"
},
{
"category": "热管理系统安全",
"description": "电池包冷却液管路接口处有轻微渗液现象,未及时处理,可能引发短路",
"source_doc": "电池车间安全检查记录20260320.xlsx",
"date": "2026.03.20",
"is_corrected": "是",
"corrected_time": "两日内整改完成"
},
{
"category": "热管理系统安全",
"description": "电机控制器散热风扇故障,未停机维修,存在过热损坏风险",
"source_doc": "总装车间专项安全检查报告20260315.docx",
"date": "2026.03.15",
"is_corrected": "是",
"corrected_time": "当日内整改完成"
},
{
"category": "消防安全问题",
"description": "电芯存储区,温湿度控制系统失效,未及时上报和维修",
"source_doc": "电池车间安全检查记录20260325.xlsx",
"date": "2026.03.25",
"is_corrected": "是",
"corrected_time": "一周内整改完成"
},
{
"category": "消防安全问题",
"description": "试验室灭火器失压,未及时更换,周围存在易燃物",
"source_doc": "实验室安全专项检查问题清单20260312.docx",
"date": "2026.03.12",
"is_corrected": "是",
"corrected_time": "当日内整改完成"
},
{
"category": "消防安全问题",
"description": "总装下线区域,废弃包装物堆积,占用消防通道",
"source_doc": "总装车间专项安全检查报告20260315.docx",
"date": "2026.03.15",
"is_corrected": "是",
"corrected_time": "两日内整改完成"
},
{
"category": "人员安全违规",
"description": "返修区一名员工在未断电的情况下,徒手接触高压线束接头",
"source_doc": "总装车间专项安全检查报告20260315.docx",
"date": "2026.03.15",
"is_corrected": "是",
"corrected_time": "当日内整改并严肃处理"
},
{
"category": "人员安全违规",
"description": "整车测试员驾驶车辆进行路试时,未系安全带",
"source_doc": "测试中心安全检查问题清单20260310.docx",
"date": "2026.03.10",
"is_corrected": "是",
"corrected_time": "当日内整改完成"
},
{
"category": "人员安全违规",
"description": "外来参观人员进入车间,未按规定佩戴安全帽和参观证",
"source_doc": "公司2026年第一季度安全专项检查报告.pdf",
"date": "2026.03.22",
"is_corrected": "是",
"corrected_time": "当日内整改完成"
},
{
"category": "机械设备问题",
"description": "电池模组激光焊接设备,安全光幕被遮挡失效,存在误操作风险",
"source_doc": "电池车间安全检查记录20260318.xlsx",
"date": "2026.03.18",
"is_corrected": "否",
"corrected_time": ""
},
{
"category": "机械设备问题",
"description": "总装线升降机限位开关失灵,未及时维修,有坠落风险",
"source_doc": "总装车间专项安全检查报告20260315.docx",
"date": "2026.03.15",
"is_corrected": "是",
"corrected_time": "当日内整改完成"
},
{
"category": "仓储物流安全",
"description": "电池包成品库,堆垛间距不符合要求,未设置防撞设施",
"source_doc": "电池车间安全检查记录20260320.xlsx",
"date": "2026.03.20",
"is_corrected": "是",
"corrected_time": "两日内整改完成"
},
{
"category": "仓储物流安全",
"description": "危险化学品(如电解液)存放区,二次容器容积不足,无法有效收集泄漏物",
"source_doc": "电池车间安全检查记录20260305.xlsx",
"date": "2026.03.05",
"is_corrected": "是",
"corrected_time": "一周内整改完成"
},
{
"category": "环境与职业健康",
"description": "焊接车间烟尘处理系统滤芯堵塞,未及时更换,影响作业环境",
"source_doc": "焊接车间质量安全检查清单20260308.docx",
"date": "2026.03.08",
"is_corrected": "是",
"corrected_time": "两日内整改完成"
},
{
"category": "管理体系与文件",
"description": "电池包维修作业指导书未更新,缺少针对新型号电池的安全操作要求",
"source_doc": "售后服务中心安全检查问题清单20260301.docx",
"date": "2026.03.01",
"is_corrected": "是",
"corrected_time": "三日内整改完成"
}
]
2 LLM&相似性
这里分别尝试基于LLM和基于向量相似性的方法判断待处理问题记录是否已经记录在问题库中。
2.1 直接用LLM判断
这里check是待判断的问题检测记录,record_checks是问题库中所有的问题记录。
如果直接使用LLM判断,prompt示例如下所示
prompt_tp = """请检查如下问题在问题库中是否已经被记录。
待检测问题:
{}
问题库相关记录:
{}
"""
check ={
"category": "环境与职业健康",
"description": "焊接车间烟尘处理系统滤芯堵塞,未及时更换,影响作业环境",
"source_doc": "焊接车间质量安全检查清单_整改记录20260313.docx",
"date": "2026.03.08",
"corrected_desc": "焊接车间烟尘处理系统滤芯已替换",
"corrected_time": "两日内整改完成"
}
prompt = prompt_tp.format(check, recored_checks)
生成的提示词如下。
请检查如下问题在问题库中是否已经被记录。
待检测问题:
{'category': '环境与职业健康', 'description': '焊接车间烟尘处理系统滤芯堵塞,未及时更换,影响作业环境', 'source_doc': '焊接车间质量安全检查清单_整改记录20260313.docx', 'date': '2026.03.08', 'corrected_desc': '焊接车间烟尘处理系统滤芯已替换', 'corrected_time': '两日内整改完成'}问题库相关记录:
[{'category': '电路安全问题', 'description': '总装车间动力电池高压线束绝缘层破损,铜线裸露,有短路风险', 'source_doc': '总装车间专项安全检查报告20260315.docx', 'date': '2026.03.15', 'is_corrected': '是', 'corrected_time': '当日内整改完成'}, {'category': '电路安全问题', 'description': '电池包PACK车间,高压连接器未安装到位,存在虚接隐患', 'source_doc': '电池车间安全检查记录20260320.xlsx', 'date': '2026.03.20', 'is_corrected': '是', 'corrected_time': '两日内整改完成'}, {'category': '电路安全问题', 'description': '测试区高压警示标识脱落,未设置隔离警戒线', 'source_doc': '测试中心安全检查问题清单20260310.docx', 'date': '2026.03.10', 'is_corrected': '是', 'corrected_time': '当日内整改完成'}, {'category': '电路安全问题', 'description': '充电桩测试区域,充电枪头防护罩缺失,存在触电风险', 'source_doc': '公司2026年第一季度安全专项检查报告.pdf', 'date': '2026.03.22', 'is_corrected': '否', 'corrected_time': ''}, {'category': '电池防爆问题', 'description': '电池模组堆放区未配备防爆柜,且灭火器材配备不足', 'source_doc': '电池车间安全检查记录20260318.xlsx', 'date': '2026.03.18', 'is_corrected': '是', 'corrected_time': '三日内整改完成'}, {'category': '电池防爆问题', 'description': '电芯老化测试间,排风系统故障,未及时维修,可能造成有毒气体积聚', 'source_doc': '电池车间安全检查记录20260305.xlsx', 'date': '2026.03.05', 'is_corrected': '是', 'corrected_time': '一周内整改完成'}, {'category': '电池防爆问题', 'description': '电池包挤压针刺实验室,未设置独立观察室和安全泄压通道', 'source_doc': '实验室安全专项检查问题清单20260312.docx', 'date': '2026.03.12', 'is_corrected': '否', 'corrected_time': ''}, {'category': '电池防爆问题', 'description': '电池包返修区,存在私自改装电池连接片的行为,未按标准流程操作', 'source_doc': '电池车间安全检查记录20260325.xlsx', 'date': '2026.03.25', 'is_corrected': '是', 'corrected_time': '当日内整改完成'}, {'category': '碰撞安全问题', 'description': '白车身焊接车间,关键受力点(如B柱、门槛梁)焊接强度抽检记录缺失', 'source_doc': '焊接车间质量安全检查清单20260308.docx', 'date': '2026.03.08', 'is_corrected': '是', 'corrected_time': '两日内整改完成'}, {'category': '碰撞安全问题', 'description': '总装车间,电池包与车身连接螺栓扭矩复检记录未按规范填写,存在漏拧风险', 'source_doc': '总装车间专项安全检查报告20260315.docx', 'date': '2026.03.15', 'is_corrected': '是', 'corrected_time': '两日内整改完成'}, {'category': '碰撞安全问题', 'description': '某试制车型防撞梁材料强度报告显示与设计不符,未进行原因分析和追溯', 'source_doc': '研发中心试制车间安全检查报告20260317.pdf', 'date': '2026.03.17', 'is_corrected': '否', 'corrected_time': '已通报,待整改'}, {'category': '碰撞安全问题', 'description': '车身车间,用于碰撞试验的白车身,其结构胶涂覆工艺未按作业指导书执行', 'source_doc': '研发中心试制车间安全检查报告20260317.pdf', 'date': '2026.03.17', 'is_corrected': '是', 'corrected_time': '一周内整改完成'}, {'category': '高压安全与防护', 'description': '维修车间,绝缘工具未定期送检,部分工具耐压等级标识模糊不清', 'source_doc': '售后服务中心安全检查问题清单20260301.docx', 'date': '2026.03.01', 'is_corrected': '是', 'corrected_time': '三日内整改完成'}, {'category': '高压安全与防护', 'description': '某充电站,地面未铺设绝缘胶垫,且无应急断电开关', 'source_doc': '公司2026年第一季度安全专项检查报告.pdf', 'date': '2026.03.22', 'is_corrected': '是', 'corrected_time': '两日内整改完成'}, {'category': '高压安全与防护', 'description': '高压作业人员未按要求佩戴绝缘手套和绝缘鞋,个人防护用品缺失', 'source_doc': '电池车间安全检查记录20260318.xlsx', 'date': '2026.03.18', 'is_corrected': '是', 'corrected_time': '当日内整改完成'}, {'category': '热管理系统安全', 'description': '电池包冷却液管路接口处有轻微渗液现象,未及时处理,可能引发短路', 'source_doc': '电池车间安全检查记录20260320.xlsx', 'date': '2026.03.20', 'is_corrected': '是', 'corrected_time': '两日内整改完成'}, {'category': '热管理系统安全', 'description': '电机控制器散热风扇故障,未停机维修,存在过热损坏风险', 'source_doc': '总装车间专项安全检查报告20260315.docx', 'date': '2026.03.15', 'is_corrected': '是', 'corrected_time': '当日内整改完成'}, {'category': '消防安全问题', 'description': '电芯存储区,温湿度控制系统失效,未及时上报和维修', 'source_doc': '电池车间安全检查记录20260325.xlsx', 'date': '2026.03.25', 'is_corrected': '是', 'corrected_time': '一周内整改完成'}, {'category': '消防安全问题', 'description': '试验室灭火器失压,未及时更换,周围存在易燃物', 'source_doc': '实验室安全专项检查问题清单20260312.docx', 'date': '2026.03.12', 'is_corrected': '是', 'corrected_time': '当日内整改完成'}, {'category': '消防安全问题', 'description': '总装下线区域,废弃包装物堆积,占用消防通道', 'source_doc': '总装车间专项安全检查报告20260315.docx', 'date': '2026.03.15', 'is_corrected': '是', 'corrected_time': '两日内整改完成'}, {'category': '人员安全违规', 'description': '返修区一名员工在未断电的情况下,徒手接触高压线束接头', 'source_doc': '总装车间专项安全检查报告20260315.docx', 'date': '2026.03.15', 'is_corrected': '是', 'corrected_time': '当日内整改并严肃处理'}, {'category': '人员安全违规', 'description': '整车测试员驾驶车辆进行路试时,未系安全带', 'source_doc': '测试中心安全检查问题清单20260310.docx', 'date': '2026.03.10', 'is_corrected': '是', 'corrected_time': '当日内整改完成'}, {'category': '人员安全违规', 'description': '外来参观人员进入车间,未按规定佩戴安全帽和参观证', 'source_doc': '公司2026年第一季度安全专项检查报告.pdf', 'date': '2026.03.22', 'is_corrected': '是', 'corrected_time': '当日内整改完成'}, {'category': '机械设备问题', 'description': '电池模组激光焊接设备,安全光幕被遮挡失效,存在误操作风险', 'source_doc': '电池车间安全检查记录20260318.xlsx', 'date': '2026.03.18', 'is_corrected': '否', 'corrected_time': ''}, {'category': '机械设备问题', 'description': '总装线升降机限位开关失灵,未及时维修,有坠落风险', 'source_doc': '总装车间专项安全检查报告20260315.docx', 'date': '2026.03.15', 'is_corrected': '是', 'corrected_time': '当日内整改完成'}, {'category': '仓储物流安全', 'description': '电池包成品库,堆垛间距不符合要求,未设置防撞设施', 'source_doc': '电池车间安全检查记录20260320.xlsx', 'date': '2026.03.20', 'is_corrected': '是', 'corrected_time': '两日内整改完成'}, {'category': '仓储物流安全', 'description': '危险化学品(如电解液)存放区,二次容器容积不足,无法有效收集泄漏物', 'source_doc': '电池车间安全检查记录20260305.xlsx', 'date': '2026.03.05', 'is_corrected': '是', 'corrected_time': '一周内整改完成'}, {'category': '环境与职业健康', 'description': '焊接车间烟尘处理系统滤芯堵塞,未及时更换,影响作业环境', 'source_doc': '焊接车间质量安全检查清单20260308.docx', 'date': '2026.03.08', 'is_corrected': '是', 'corrected_time': '两日内整改完成'}, {'category': '管理体系与文件', 'description': '电池包维修作业指导书未更新,缺少针对新型号电池的安全操作要求', 'source_doc': '售后服务中心安全检查问题清单20260301.docx', 'date': '2026.03.01', 'is_corrected': '是', 'corrected_time': '三日内整改完成'}]
deepseek的输出如下所示
经比对,待检测问题与问题库中第28条记录完全一致,包括问题描述、类别、来源文档、日期等关键信息,因此该问题已被记录。
可见直接基于LLM判断方法提示词较长,而且要求问题库的规模不能超越LLM的最大输入窗口。
在实际应用场合,直接与LLM的判断方法会受到比较多的限制。
接下来我们探索依然基于LLM但更短提示词的方法。
1.2 相似性辅助判断
当问题库存储的问题量很大时,直接基于LLM提示词判断待处理问题是否被记录就不太现实。
提示词有可能会超出LLM输入窗口限制,而且LLM的输入越长,输出误差会越大。
这里尝试基于向量相似性,只判断问题库中与待检测问题比较接近的topk问题。
如果与topk问题不相似,理论上待检测问题与向量库中所有问题都不接近。
如此,将问题规模从O(N)降低到O(k)。
1)向量化
这里使用faiss将问题库向量化,示例代码如下。
先使用清量级模型all-MiniLM-L6-V2将record_checks中所有问题记录向量化。
然后将向量add到faiss向量库中。
import os
os.environ['HF_ENDPOINT'] = "https://hf-mirror.com"
from sentence_transformers import SentenceTransformer
import numpy as np
problem_blocks = [str(b) for b in recored_checks]
# 生成向量(使用轻量模型)
model = SentenceTransformer('all-MiniLM-L6-v2')
chunk_embeddings = model.encode(problem_blocks, show_progress_bar=True)
# 构建FAISS索引
dimension = chunk_embeddings.shape[1]
index = faiss.IndexFlatL2(dimension)
index.add(np.array(chunk_embeddings))
输出示例如下
'(ReadTimeoutError("HTTPSConnectionPool(host='hf-mirror.com', port=443): Read timed out. (read timeout=10)"), '(Request ID: 49c4bf4b-7b74-4f38-9328-aca941d2aa73)')' thrown while requesting HEAD https://hf-mirror.com/sentence-transformers/all-MiniLM-L6-v2/resolve/main/./README.md
Retrying in 1s [Retry 1/5].
Batches: 100%|██████████| 1/1 [00:00<00:00, 2.20it/s]
2)获取相似问题
这里采用相似搜索的方法,检索向量库中前topk=3的问题记录。
def retrieve_relevant_chunks(query, k=3):
query_emb = model.encode([query])
distances, indices = index.search(query_emb, k)
return [recored_checks[i] for i in indices[0]]
check ={
"category": "环境与职业健康",
"description": "焊接车间烟尘处理系统滤芯堵塞,未及时更换,影响作业环境",
"source_doc": "焊接车间质量安全检查清单_整改记录20260313.docx",
"date": "2026.03.08",
"corrected_desc": "焊接车间烟尘处理系统滤芯已替换",
"corrected_time": "两日内整改完成"
}
relevant_problems = retrieve_relevant_chunks(str(check), k=3)
print(relevant_problems)
输出示例如下所示。
因为check是问题库相关问题的整改记录,所以搜到的第一个记录其实就是check对应的问题。
[{'category': '环境与职业健康', 'description': '焊接车间烟尘处理系统滤芯堵塞,未及时更换,影响作业环境', 'source_doc': '焊接车间质量安全检查清单20260308.docx', 'date': '2026.03.08', 'is_corrected': '是', 'corrected_time': '两日内整改完成'}, {'category': '碰撞安全问题', 'description': '总装车间,电池包与车身连接螺栓扭矩复检记录未按规范填写,存在漏拧风险', 'source_doc': '总装车间专项安全检查报告20260315.docx', 'date': '2026.03.15', 'is_corrected': '是', 'corrected_time': '两日内整改完成'}, {'category': '碰撞安全问题', 'description': '白车身焊接车间,关键受力点(如B柱、门槛梁)焊接强度抽检记录缺失', 'source_doc': '焊接车间质量安全检查清单20260308.docx', 'date': '2026.03.08', 'is_corrected': '是', 'corrected_time': '两日内整改完成'}]
在实际场景中,check在问题库也有可能没有命中,所以这是需要LLM判断下。
3)LLM判断
LLM判断的提示词示例如下
prompt = prompt_tp.format(new_check, relevant_problems)
print(prompt)
输出如下所示。
请检查如下问题在问题库中是否已经被记录。
待检测问题:
{'category': '环境与职业健康', 'description': '焊接车间烟尘处理系统滤芯堵塞,未及时更换,影响作业环境', 'source_doc': '焊接车间质量安全检查清单_整改记录20260313.docx', 'date': '2026.03.08', 'corrected_desc': '焊接车间烟尘处理系统滤芯已替换', 'corrected_time': '两日内整改完成'}问题库相关记录:
[{'category': '环境与职业健康', 'description': '焊接车间烟尘处理系统滤芯堵塞,未及时更换,影响作业环境', 'source_doc': '焊接车间质量安全检查清单20260308.docx', 'date': '2026.03.08', 'is_corrected': '是', 'corrected_time': '两日内整改完成'}, {'category': '碰撞安全问题', 'description': '总装车间,电池包与车身连接螺栓扭矩复检记录未按规范填写,存在漏拧风险', 'source_doc': '总装车间专项安全检查报告20260315.docx', 'date': '2026.03.15', 'is_corrected': '是', 'corrected_time': '两日内整改完成'}, {'category': '碰撞安全问题', 'description': '白车身焊接车间,关键受力点(如B柱、门槛梁)焊接强度抽检记录缺失', 'source_doc': '焊接车间质量安全检查清单20260308.docx', 'date': '2026.03.08', 'is_corrected': '是', 'corrected_time': '两日内整改完成'}]
Deepseek输出如下
是的,该问题在问题库中已被记录。
问题库中第一条记录(
category为“环境与职业健康”,description为“焊接车间烟尘处理系统滤芯堵塞,未及时更换,影响作业环境”)与待检测问题的描述完全一致,且日期均为2026.03.08。虽然来源文档名称略有不同(“焊接车间质量安全检查清单20260308.docx” vs “焊接车间质量安全检查清单_整改记录20260313.docx”),但两者指向同一问题,且整改信息(两日内整改完成)也吻合。
提示词程度相比直接使用LLM判断缩短了很多。
这不仅提高了LLM的处理速度,而且也变相提高了判断的精确程度。
3 相似性辅助示例
这里进一步判断新的问题检查记录,该记录在问题库实际没有被记录。
3.1 检索相似记录
处理过程与上述过程类似,代码示例如下
new_check = {
"category": "环境与职业健康",
"description": "噪音岗位员工未按要求佩戴耳塞,体检档案不完整",
"source_doc": "焊接车间质量安全检查清单20260308.docx",
"date": "2026.03.08",
"is_corrected": "是",
"corrected_time": "两日内整改完成"
}
relevant_problems = retrieve_relevant_chunks(str(new_check), k=3)
print(f"relevant_problems: {relevant_problems}")
输出如下所示。
relevant_problems:
[{'category': '环境与职业健康', 'description': '焊接车间烟尘处理系统滤芯堵塞,未及时更换,影响作业环境', 'source_doc': '焊接车间质量安全检查清单20260308.docx', 'date': '2026.03.08', 'is_corrected': '是', 'corrected_time': '两日内整改完成'}, {'category': '碰撞安全问题', 'description': '白车身焊接车间,关键受力点(如B柱、门槛梁)焊接强度抽检记录缺失', 'source_doc': '焊接车间质量安全检查清单20260308.docx', 'date': '2026.03.08', 'is_corrected': '是', 'corrected_time': '两日内整改完成'}, {'category': '消防安全问题', 'description': '试验室灭火器失压,未及时更换,周围存在易燃物', 'source_doc': '实验室安全专项检查问题清单20260312.docx', 'date': '2026.03.12', 'is_corrected': '是', 'corrected_time': '当日内整改完成'}]
relevant_problems中并没有与new_check匹配的记录。
3.2 LLM辅助验证
为了进一步验证准确性,这里使用LLM进一步辅助判断,提示词示例如下。
prompt = prompt_tp.format(new_check, relevant_problems)
print(f"prompt: {prompt}")
输出如下
prompt: 请检查如下问题在问题库中是否已经被记录。
待检测问题:
{'category': '环境与职业健康', 'description': '噪音岗位员工未按要求佩戴耳塞,体检档案不完整', 'source_doc': '焊接车间质量安全检查清单20260308.docx', 'date': '2026.03.08', 'is_corrected': '是', 'corrected_time': '两日内整改完成'}问题库相关记录:
[{'category': '环境与职业健康', 'description': '焊接车间烟尘处理系统滤芯堵塞,未及时更换,影响作业环境', 'source_doc': '焊接车间质量安全检查清单20260308.docx', 'date': '2026.03.08', 'is_corrected': '是', 'corrected_time': '两日内整改完成'}, {'category': '碰撞安全问题', 'description': '白车身焊接车间,关键受力点(如B柱、门槛梁)焊接强度抽检记录缺失', 'source_doc': '焊接车间质量安全检查清单20260308.docx', 'date': '2026.03.08', 'is_corrected': '是', 'corrected_time': '两日内整改完成'}, {'category': '消防安全问题', 'description': '试验室灭火器失压,未及时更换,周围存在易燃物', 'source_doc': '实验室安全专项检查问题清单20260312.docx', 'date': '2026.03.12', 'is_corrected': '是', 'corrected_time': '当日内整改完成'}]
提交给deepseek后,输出示例如下
经比对,待检测问题(噪音岗位员工未按要求佩戴耳塞,体检档案不完整)在问题库中无相同或高度相似的记录,未被记录。
结果复合预期,此时确认new_check与record_checks中记录不重合。
可以放心的将new_check加入到record_checks中,
经过相似性辅助处理后,LLM提示词规模被极大缩小,提高了LLM判读的精确性。
判断的过程中,不需要考虑问题库规模是否突破LLM的上下文窗口,间接提高了LLM的处理速度。
该思路比较适合轻量级去重应用场景。
reference
---
LLM长上下文和数值类有效输出的关系探索
https://blog.csdn.net/liliang199/article/details/159175752
如何用faiss强化基于mysql的文本检索
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)