From 14826b28677520a7a22c67ca701fb6974eb1c354 Mon Sep 17 00:00:00 2001 From: zy123 <646228430@qq.com> Date: Mon, 20 Jan 2025 17:14:15 +0800 Subject: [PATCH] =?UTF-8?q?1.20=20=E9=87=87=E8=B4=AD=E9=9C=80=E6=B1=82?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=8F=90=E7=A4=BA=E8=AF=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- flask_app/货物标/截取pdf货物标版.py | 7 ++-- flask_app/货物标/技术参数要求提取.py | 55 ++++++++++++++++++---------- flask_app/货物标/提取采购需求main.py | 2 +- 3 files changed, 41 insertions(+), 23 deletions(-) diff --git a/flask_app/货物标/截取pdf货物标版.py b/flask_app/货物标/截取pdf货物标版.py index 4286f52..5e50bd2 100644 --- a/flask_app/货物标/截取pdf货物标版.py +++ b/flask_app/货物标/截取pdf货物标版.py @@ -315,11 +315,12 @@ if __name__ == "__main__": logger = get_global_logger("123") # input_path = r"C:\Users\Administrator\Desktop\new招标文件\货物标" # pdf_path = r"C:\Users\Administrator\Desktop\招标文件-采购类\2024-贵州-贵州医科大学附属医院导视系统零星制作安装项目.pdf" - pdf_path=r"C:\Users\Administrator\Desktop\货物标\zbfiles\唐山市公安交通警察支队机动车查验机构视频存储回放系统竞争性谈判-招标文件正文(1).pdf" + pdf_path=r"C:\Users\Administrator\Desktop\新建文件夹 (3)\需求\“天府粮仓”青白江区“一园三片”数字化提升和标准化体系建设项目(三次)招标文件(N510113202400010820250102001).pdf" + # input_path = r"C:\Users\Administrator\Desktop\货物标\zbfiles\2-招标文件(广水市教育局封闭管理).pdf" # pdf_path=r"C:\Users\Administrator\Desktop\文件解析问题\文件解析问题\1414cb9c-7bf4-401c-8761-2acde151b9c2\ztbfile.pdf" - output_folder = r"C:\Users\Administrator\Desktop\货物标\zbfiles\output4444" + output_folder = r"C:\Users\Administrator\Desktop\新建文件夹 (3)\需求" # output_folder = r"C:\Users\Administrator\Desktop\new招标文件\output2" - selection = 4 # 例如:1 - 公告, 2 - 评标办法, 3 - 资格审查后缀有qualification1或qualification2(与评标办法一致) 4.投标人须知前附表part1 投标人须知正文part2 5-采购需求 6-invalid_path + selection = 5 # 例如:1 - 公告, 2 - 评标办法, 3 - 资格审查后缀有qualification1或qualification2(与评标办法一致) 4.投标人须知前附表part1 投标人须知正文part2 5-采购需求 6-invalid_path generated_files = truncate_pdf_main_goods(pdf_path, output_folder, selection,logger) print(generated_files) diff --git a/flask_app/货物标/技术参数要求提取.py b/flask_app/货物标/技术参数要求提取.py index 1ef44c6..2894132 100644 --- a/flask_app/货物标/技术参数要求提取.py +++ b/flask_app/货物标/技术参数要求提取.py @@ -292,37 +292,54 @@ def generate_prompt(judge_res, full_text=None): 如果 `judge_res` 不包含 '否' 且有 `full_text`,则添加文件内容部分。 """ base_prompt = ''' -任务:你负责解析采购文件,提取采购需求,并以JSON格式返回,不要遗漏该项目需要采购的货物、设备或系统。 +任务:你负责解析采购文件,提取采购需求,并以JSON格式返回,不要遗漏该项目需要采购的货物、设备或系统或服务。 **输出格式**: -1.JSON格式,外层键名为需要采购的货物、设备或系统名称(一级键)。 +1.JSON格式,外层键名为需要采购的货物、设备或系统或服务名称(一级键)。 2.层次关系用嵌套键值对表示: -采购活动可能将目标划分为多个系统或货物。若文档通过大标题或表格结构或序号标明这种归属关系,请在JSON中以嵌套形式表示: - -系统作为一级键,包含的货物作为二级键。 - -例子:""" - 1. 激光扫描系统:xxx - 1.1 激光器:xxx + -层级规则:系统作为一级键,包含的子系统或货物作为二级键。 + -系统功能说明:如果系统提到"系统功能"(即系统的整体功能说明),那么在该系统下中添加"系统功能"作为二级键,具体内容不展开;系统可以只有“系统功能”而不包含具体货物。 + -示例输入:""" + 一、扫描系统 + 系统功能:支持多种扫描模式。 + 1. 激光扫描系统:xxx + 1.1 激光器:xxx + 2. 红外扫描系统:xxx + 二、通信系统 + 系统功能:提供高效数据传输。 """ - 根据货物前的序号,可以判断'激光扫描系统'是一级键,'激光器'是其下的二级键 - -如果系统提到"系统功能",在该系统的值中添加"系统功能"作为二级键,具体内容不展开; - -系统可以只包含“系统功能”,无需列出具体货物。 + -示例输出: + { + "扫描系统": { + "系统功能": [], + "激光扫描系统": { + "激光器": [] + }, + "红外扫描系统": [] + }, + "通信系统": { + "系统功能": [] + } + } 3.防止重复键名规则: - -若同一层级下存在名称相同但采购要求(如型号、参数、功能)不同的货物,请在名称后添加编号以作区分,防止出现重复键名;默认情况下,无需在名称后添加编号,只有在名称相同时才需要添加编号。编号规则:'名称-编号',编号从1递增。例子:若同层级下存在两种名称相同但不同型号或参数的'交换机',那么键名分别是'交换机-1'和'交换机-2'。如果名称不同(如路由器和交换机),则无需编号。 + -若同一层级下存在名称相同但采购要求(如型号、参数、功能、说明)不同的采购标的,请在名称后添加编号以作区分,防止出现重复键名;默认情况下,无需在名称后添加编号,只有在名称相同时才需要添加编号。编号规则:'名称-编号',编号从1递增。例子:若同层级下存在两种名称相同但不同型号或参数的'交换机',那么键名分别是'交换机-1'和'交换机-2'。如果名称不同(如路由器和交换机),则无需编号。 4.最内层键值应为空列表[]。 **特殊情况**: - -如果文件中未明确说明需要采购的货物、设备或系统,请直接返回空字典 {{}}。不要生成任何无关内容。 + -如果文件中未明确说明需要采购的货物、设备或系统或服务,请直接返回空字典 {{}}。不要生成任何无关内容。 **要求与指南**: 1. 精准定位:请运用文档理解能力,定位文件中的采购需求部分。 - -若有采购清单,请直接根据采购清单上的货物(或系统)名称给出结果,若没有采购清单,则从表格或文本中摘取采购信息。 - -注意采购目标通常在诸如'名称'列,且每个目标占据一个单元格,你无需提取诸如'说明'、'规格'、'参数'、'描述'等其他列的内容,即你不需要给出详细的采购要求,更不要将这些单元格内的描述拆分作为其的子键,你仅返回采购的货物或系统或模块名称; -2. 采购目标:采购种类通常有硬件(如设备、货物)和软件(如系统软件、应用APP),一次采购活动可以同时包含这两种类型。 + -若有采购清单,请直接根据采购清单上的货物(或系统或服务)名称给出结果,若没有采购清单,则从表格或文本中摘取采购信息。 + -注意采购目标通常在诸如'名称'列,且每个目标占据一个单元格,你无需提取诸如'说明'、'规格'、'参数'、'描述'等其他列的内容,即你不需要给出详细的采购要求,更不要将这些单元格内的描述拆分作为其的子键,你仅返回采购的货物或系统或模块或服务名称; +2. 采购标的:采购种类通常有硬件(如设备、货物)和软件(如系统软件、应用APP)和服务(如人力),一次采购活动可以同时包含这三种类型。 3. 软件类采购:对于软件系统或应用采购,若有多个系统且序号分明,请不要遗漏;若明确列出系统模块,提取模块名称并作为系统的子键,无需在模块下再细分功能。 4. 完整性: - -若采购的货物或系统或模块名称前存在三角▲,△、五角★,☆或其他特殊符号,注意是名称前而非具体的技术参数或采购要求前,在返回名称时请保留前面的▲,△或★,☆符号,如'★高清摄像机'。 - -确保系统内的所有货物设备均被按层次提取,对于有明确清单且按序号划分的采购需求,请勿遗漏每一个序号所代表的货物或设备或系统,也不要添加未提及的内容。 - -若某货物(或系统、模块)在“主要设备功能指标”或类似标题下有详细参数说明,但未在前面清单或表格中诸如'名称'的列中列出,也需将该货物名添加到结果中。 + -若采购的货物或系统或模块或服务名称前存在三角▲,△、五角★,☆或其他特殊符号,注意是名称前而非具体的技术参数或采购要求前,在返回名称时请保留前面的▲,△或★,☆符号,如'★高清摄像机'。 + -确保采购文件内的所有采购标的均被按层次提取,对于有明确清单且按序号划分的采购需求,请勿遗漏每一个序号所代表的采购标的,也不要添加未提及的内容 + -若某货物(或系统、模块、服务)在“主要设备功能指标”或类似标题下有详细参数或要求说明,但未在前面清单或表格中诸如'名称'的列中列出,也需将该货物名添加到结果中。 +5. 特别说明:采购标的可以是某项服务,但是请与'服务要求'进行区别,'服务要求'不等同于'服务采购'。 示例输出1,普通系统、货物类采购,仅供格式参考: {{ @@ -669,11 +686,11 @@ if __name__ == "__main__": start_time=time.time() # invalid_path="D:\\flask_project\\flask_app\\static\\output\\output1\\e7dda5cb-10ba-47a8-b989-d2993d34bb89\\ztbfile.pdf" # file_id = upload_file(truncate_file) - truncate_file=r'C:\Users\Administrator\Desktop\new招标文件\output5\广水市公安局音视频监控系统设备采购项目_procurement.pdf' + truncate_file=r'C:\Users\Administrator\Desktop\新建文件夹 (3)\需求\“天府粮仓”青白江区“一园三片”数字化提升和标准化体系建设项目(三次)招标文件(N510113202400010820250102001)_procurement.pdf' invalid_path=r"D:\flask_project\flask_app\static\output\output1\f91db70d-8d96-44a5-b840-27d2f1ecbe95\invalid_del.docx" # file_id=upload_file(truncate_file) # processed_filepath = convert_file_to_markdown(truncate_file) - processed_filepath=r"D:\flask_project\flask_app\static\output\output1\f91db70d-8d96-44a5-b840-27d2f1ecbe95\extract1.txt" + processed_filepath=r"C:\Users\Administrator\Desktop\新建文件夹 (3)\需求\extract1.txt" res=get_technical_requirements(invalid_path,processed_filepath,1) json_string = json.dumps(res, ensure_ascii=False, indent=4) print(json_string) diff --git a/flask_app/货物标/提取采购需求main.py b/flask_app/货物标/提取采购需求main.py index dc3a78d..ec8e3fc 100644 --- a/flask_app/货物标/提取采购需求main.py +++ b/flask_app/货物标/提取采购需求main.py @@ -77,7 +77,7 @@ if __name__ == "__main__": start_time = time.time() output_folder = "C:\\Users\\Administrator\\Desktop\\货物标\\货物标output" # file_path="C:\\Users\\Administrator\\Desktop\\货物标\\output1\\2-招标文件(2020年广水市中小学教师办公电脑系统及多媒体“班班通”设备采购安装项目)_procurement.pdf" - procurement_path = r"C:\Users\Administrator\Desktop\fsdownload\ae1eae3b-b77e-40d9-a78e-89f86a346b00\ztbfile_procurement.pdf" + procurement_path = r"C:\Users\Administrator\Desktop\新建文件夹 (3)\需求\“天府粮仓”青白江区“一园三片”数字化提升和标准化体系建设项目(三次)招标文件(N510113202400010820250102001).pdf" procurement_docpath = r"C:\Users\Administrator\Desktop\fsdownload\fa0d51a1-0d63-4c0d-9002-cf8ac3f2211a" invalid_path = r"C:\Users\Administrator\Desktop\文件解析问题\文件解析问题\be901ea0-adc9-47b8-9ada-5c3bc0dd9434\ztbfile.pdf" res = fetch_procurement_reqs(procurement_path, invalid_path)