import json import os import time from flask_app.main.投标人须知正文条款提取成json文件 import convert_clause_to_json from flask_app.main.json_utils import nest_json_under_key, extract_content_from_json from flask_app.main.形式响应评审 import process_reviews from flask_app.main.资格评审 import process_qualification from flask_app.main.通义千问long import upload_file, qianwen_long from concurrent.futures import ThreadPoolExecutor def combine_review_standards(truncate1,truncate3,output_folder,truncate0_jsonpath,clause_path,invalid_path,merged_baseinfo_path): #评标办法前附表 # 形式评审、响应评审:千问 file_id=upload_file(truncate1) #评标办法前附表 user_query_1 = "根据该文档中的评标办法前附表,请你列出该文件中的形式评审标准和响应性评审标准和资格评审标准,请以json格式返回,外层键名为'形式评审标准'和'响应性评审标准'和'资格评审标准',嵌套键名为'评审因素'中的内容,相应的键值为对应'评审标准'中的内容。" results = qianwen_long(file_id, user_query_1) original_dict_data = extract_content_from_json(results) qualification_review = original_dict_data.pop('资格评审标准', {}) #qianwen-long有关资格评审的内容 with ThreadPoolExecutor() as executor: # 创建Future对象 future_qualification = executor.submit(process_qualification, qualification_review, truncate3,invalid_path,merged_baseinfo_path) future_form_response = executor.submit(process_reviews, original_dict_data,output_folder, truncate0_jsonpath, clause_path) # 等待执行结果 final_qualify_json = future_qualification.result() form_response_dict = future_form_response.result() form_response_dict.update(final_qualify_json) return {"资格审查":form_response_dict} if __name__ == "__main__": start_time=time.time() truncate1 = "C:\\Users\\Administrator\\Desktop\\招标文件\\new_test\\zbtest2_evaluation_method.pdf" truncate3="C:\\Users\\Administrator\\Desktop\\招标文件\\new_test\\zbtest2_qualification.pdf" output_folder = "D:\\flask_project\\flask_app\\static\\output\\c02a12c2-6f7b-49dc-b97f-c3d740c96c21" # knowledge_name="zbtest20" clause_path = "C:\\Users\\Administrator\\Desktop\\招标文件\\new_test\\clause1.json" truncate0_jsonpath = "C:\\Users\\Administrator\\Desktop\\招标文件\\new_test\\truncate_output.json" invalid_path="C:\\Users\\Administrator\\Desktop\\招标文件\\new_test\\zbtest2_invalid.pdf" merged_baseinfo_path="C:\\Users\\Administrator\\Desktop\\招标文件\\new_test\\zbtest2_merged_baseinfo.pdf" res=combine_review_standards(truncate1,truncate3, output_folder,truncate0_jsonpath,clause_path,invalid_path,merged_baseinfo_path) print(json.dumps(res,ensure_ascii=False,indent=4)) end_time=time.time() print("elapsed time:"+str(end_time-start_time))