12.17 无效投标、废标
This commit is contained in:
parent
871dc44ef6
commit
8149769bab
@ -5,7 +5,8 @@ import string
|
|||||||
import time
|
import time
|
||||||
|
|
||||||
from flask_app.general.doubao import doubao_model
|
from flask_app.general.doubao import doubao_model
|
||||||
from flask_app.general.format_change import pdf2docx, docx2pdf
|
from flask_app.general.format_change import pdf2docx, docx2pdf,doc2docx
|
||||||
|
from flask_app.general.insert_del_pagemark import insert_mark
|
||||||
from flask_app.general.json_utils import clean_json_string
|
from flask_app.general.json_utils import clean_json_string
|
||||||
from flask_app.general.通义千问long import upload_file
|
from flask_app.general.通义千问long import upload_file
|
||||||
from flask_app.货物标.截取pdf货物标版 import truncate_pdf_specific_goods
|
from flask_app.货物标.截取pdf货物标版 import truncate_pdf_specific_goods
|
||||||
@ -353,10 +354,14 @@ def get_tech_and_business_deviation(file_path,file_type,unique_id,output_folder)
|
|||||||
global logger
|
global logger
|
||||||
logger = get_global_logger(unique_id)
|
logger = get_global_logger(unique_id)
|
||||||
if file_type == 1: # docx
|
if file_type == 1: # docx
|
||||||
|
docx_path=file_path
|
||||||
pdf_path = docx2pdf(file_path) # 将docx转换为pdf以供后续处理
|
pdf_path = docx2pdf(file_path) # 将docx转换为pdf以供后续处理
|
||||||
elif file_type == 2: # pdf
|
elif file_type == 2: # pdf
|
||||||
|
# docx_path=pdf2docx(file_path)
|
||||||
|
docx_path=""
|
||||||
pdf_path = file_path
|
pdf_path = file_path
|
||||||
elif file_type == 3: # doc
|
elif file_type == 3: # doc
|
||||||
|
docx_path=doc2docx(file_path)
|
||||||
pdf_path = docx2pdf(file_path)
|
pdf_path = docx2pdf(file_path)
|
||||||
else:
|
else:
|
||||||
logger.error("Unsupported file type provided. Preprocessing halted.")
|
logger.error("Unsupported file type provided. Preprocessing halted.")
|
||||||
@ -366,14 +371,17 @@ def get_tech_and_business_deviation(file_path,file_type,unique_id,output_folder)
|
|||||||
notice_path=files[0]
|
notice_path=files[0]
|
||||||
qualification_file=files[1]
|
qualification_file=files[1]
|
||||||
procurement_file=files[2]
|
procurement_file=files[2]
|
||||||
|
# invalid_path=docx_path
|
||||||
|
invalid_path=docx_path if docx_path != "" else pdf_path #可能是pdf docx
|
||||||
if not procurement_file:
|
if not procurement_file:
|
||||||
procurement_file=pdf_path #直接传整份文件
|
procurement_file=invalid_path
|
||||||
|
|
||||||
tech_deviation={}
|
tech_deviation={}
|
||||||
with concurrent.futures.ThreadPoolExecutor() as executor:
|
with concurrent.futures.ThreadPoolExecutor() as executor:
|
||||||
# 提交任务到线程池
|
# 提交任务到线程池
|
||||||
future_procurement = executor.submit(fetch_procurement_reqs, procurement_file, pdf_path)
|
future_procurement = executor.submit(fetch_procurement_reqs, procurement_file, invalid_path)
|
||||||
time.sleep(1)
|
time.sleep(1)
|
||||||
future_review = executor.submit(combine_qualification_review, pdf_path, qualification_file, notice_path)
|
future_review = executor.submit(combine_qualification_review, invalid_path, qualification_file, notice_path)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
# 获取函数执行结果
|
# 获取函数执行结果
|
||||||
|
@ -77,8 +77,7 @@ def little_parse_engineering(output_folder, pdf_path):
|
|||||||
# 假设最后一个文件是需要处理的基础信息文件
|
# 假设最后一个文件是需要处理的基础信息文件
|
||||||
baseinfo_file_path = files[-1]
|
baseinfo_file_path = files[-1]
|
||||||
if not baseinfo_file_path:
|
if not baseinfo_file_path:
|
||||||
baseinfo_file_path=truncate_pdf_main(pdf_path,output_folder,5)[0]
|
baseinfo_file_path=truncate_pdf_main(pdf_path,output_folder,5)[0] #invalid_path
|
||||||
# baseinfo_file_path=pdf_path #截取失败就传整份文件
|
|
||||||
# 上传文件并获取文件 ID
|
# 上传文件并获取文件 ID
|
||||||
file_id = upload_file(baseinfo_file_path)
|
file_id = upload_file(baseinfo_file_path)
|
||||||
# 注意:以下路径被硬编码,确保该路径存在并且正确
|
# 注意:以下路径被硬编码,确保该路径存在并且正确
|
||||||
|
@ -7,6 +7,7 @@ from flask_app.general.doubao import read_txt_to_string, pdf2txt
|
|||||||
from flask_app.general.json_utils import combine_json_results, clean_json_string
|
from flask_app.general.json_utils import combine_json_results, clean_json_string
|
||||||
from flask_app.general.通义千问long import upload_file, qianwen_long_stream
|
from flask_app.general.通义千问long import upload_file, qianwen_long_stream
|
||||||
from flask_app.货物标.截取pdf货物标版 import extract_common_header, clean_page_content
|
from flask_app.货物标.截取pdf货物标版 import extract_common_header, clean_page_content
|
||||||
|
from flask_app.general.format_change import docx2pdf
|
||||||
import concurrent.futures
|
import concurrent.futures
|
||||||
from flask_app.general.doubao import doubao_model
|
from flask_app.general.doubao import doubao_model
|
||||||
|
|
||||||
@ -256,7 +257,10 @@ def generate_template(required_keys,full_text, type=1):
|
|||||||
|
|
||||||
def get_business_requirements(procurement_path,processed_filepath):
|
def get_business_requirements(procurement_path,processed_filepath):
|
||||||
required_keys = ["技\s*术\s*要\s*求", "商\s*务\s*要\s*求", "服\s*务\s*要\s*求", "其\s*他\s*要\s*求","总\s*体\s*要\s*求","建\s*设\s*要\s*求","进\s*度\s*要\s*求","工\s*期\s*要\s*求","质\s*保\s*要\s*求","培\s*训\s*要\s*求","售\s*后\s*要\s*求"]
|
required_keys = ["技\s*术\s*要\s*求", "商\s*务\s*要\s*求", "服\s*务\s*要\s*求", "其\s*他\s*要\s*求","总\s*体\s*要\s*求","建\s*设\s*要\s*求","进\s*度\s*要\s*求","工\s*期\s*要\s*求","质\s*保\s*要\s*求","培\s*训\s*要\s*求","售\s*后\s*要\s*求"]
|
||||||
contained_keys = find_exists(procurement_path, required_keys)
|
procurement_pdf_path=procurement_path
|
||||||
|
if procurement_path.lower().endswith('.doc', '.docx'):
|
||||||
|
procurement_pdf_path=docx2pdf(procurement_path)
|
||||||
|
contained_keys = find_exists(procurement_pdf_path, required_keys)
|
||||||
print(contained_keys)
|
print(contained_keys)
|
||||||
if not contained_keys:
|
if not contained_keys:
|
||||||
return {}
|
return {}
|
||||||
|
@ -373,6 +373,8 @@ def get_technical_requirements(invalid_path,processed_filepath):
|
|||||||
if '否' in judge_res:
|
if '否' in judge_res:
|
||||||
model_type = 0 # 使用qianwen-long+invalid_path
|
model_type = 0 # 使用qianwen-long+invalid_path
|
||||||
print("no!调用invalid_path")
|
print("no!调用invalid_path")
|
||||||
|
if invalid_path.lower().endswith('.pdf'): #确保上传的是docx
|
||||||
|
invalid_path = pdf2docx(invalid_path)
|
||||||
file_id=upload_file(invalid_path)
|
file_id=upload_file(invalid_path)
|
||||||
user_query = generate_prompt(judge_res)
|
user_query = generate_prompt(judge_res)
|
||||||
model_res=qianwen_long(file_id,user_query)
|
model_res=qianwen_long(file_id,user_query)
|
||||||
|
@ -12,6 +12,7 @@ from flask_app.货物标.商务服务其他要求提取 import get_business_requ
|
|||||||
|
|
||||||
# 获取采购清单
|
# 获取采购清单
|
||||||
def fetch_procurement_reqs(procurement_path, invalid_path):
|
def fetch_procurement_reqs(procurement_path, invalid_path):
|
||||||
|
#procurement_path可能是pdf\docx
|
||||||
# 定义默认的 procurement_reqs 字典
|
# 定义默认的 procurement_reqs 字典
|
||||||
DEFAULT_PROCUREMENT_REQS = {
|
DEFAULT_PROCUREMENT_REQS = {
|
||||||
"采购需求": "",
|
"采购需求": "",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user