zbparse/flask_app/routes/判断是否是招标文件.py

55 lines
2.4 KiB
Python
Raw Normal View History

2025-01-10 14:30:35 +08:00
import time
from PyPDF2 import PdfReader # 确保已安装 PyPDF2: pip install PyPDF2
from flask_app.general.llm.通义千问long_plus import upload_file, qianwen_long
2025-01-10 14:30:35 +08:00
def judge_zbfile_exec(file_path):
"""
判断文件是否属于招标文件并返回结果
"""
try:
start_time = time.time()
# 检查文件是否为PDF格式
if file_path.lower().endswith('.pdf'):
reader = PdfReader(file_path)
num_pages = len(reader.pages)
if num_pages <= 5:
return False
# 模拟使用大模型进行判断
user_query = """该文件是否属于招标文件?如果是的话,请返回'',如果不是的话,返回''。请不要返回其他解释或内容。
以下是常见的招标文件类型
公开招标文件邀请招标文件竞争性谈判文件竞争性磋商文件询价文件问询文件货物类招标文件工程类招标文件施工类招标文件服务类招标文件比选文件
若有未涵盖的类型但其内容明确表达了项目需求采购或招标信息且包含指导投标人参与的关键要素则可视为招标文件
排除情况:
1. 请注意区分招标文件和投标文件,若文件仅有投标文件格式要求部分,或是投标响应性文件则不视为招标文件
2. 若文件内容为乱码,无有效信息,请直接返回''
2025-01-10 14:30:35 +08:00
请基于上述内容判断文件是否属于招标文件
"""
file_id = upload_file(file_path)
model_res = qianwen_long(file_id, user_query)
end_time = time.time()
print(f"judge_zbfile_exec实际耗时{end_time - start_time:.2f}")
print(f"判断是否属于招标文件:{model_res}")
# 根据模型返回结果判断
if '' in model_res:
return False
else:
return True
except Exception as e:
print(f"处理文件时出错: {e}")
return False
if __name__ == '__main__':
start_time = time.time()
pdf_path = r"C:\Users\Administrator\Desktop\新建文件夹 (3)\temp\乱码文件测试.doc"
2025-01-10 14:30:35 +08:00
res = judge_zbfile_exec(pdf_path)
if res:
print("yes")
else:
print("no")
end_time = time.time()
print(f"整个程序实际耗时:{end_time - start_time:.2f}")