import concurrent.futures import json from flask_app.general.doubao import doubao_model from flask_app.general.json_utils import clean_json_string def extract_zige_deviation_table(zige_info, fuhe_info, zigefuhe_info): prompt_template1 = """ 任务:给出一份文本,根据文本提取资格性检查的具体评审标准。 输出要求: 1.以json格式返回结果,不要输出其他内容。 2.键名为"资格性检查",键值为字符串列表,每个字符串为一条评审标准,评审标准不分先后,不要有序号标注。 要求与指南: 1. 评审标准是具体的内容,不要返回诸如'本项目的特定资格要求:'这种标题性质且不能体现具体评审标准的内容。 2. 若文本中存在相同或相似的表述,仅需取其中一个作为键值中的一条即可。 文本内容:{full_text} """ prompt_template2 = """ 任务:给出一份文本,根据文本提取符合性检查的具体评审标准。 输出要求: 1.以json格式返回结果,不要输出其他内容。 2.键名为"符合性检查",键值为字符串列表,每个字符串为一条评审标准,评审标准不分先后,不要有序号标注。 3.仔细检查你所选取的标准,若发现这些标准实际上是在描述不允许出现的符合性审查情况,则将外键替换为'符合性检查(以下情况不得出现)',并将这些标准写入其中。 要求与指南: 1. 评审标准应该是具体的内容,不要返回诸如'本项目的特定符合性要求:'这种标题性质且不能体现具体评审标准的内容。 2. 若文本中存在相同或相似的表述,仅需取其中一个作为键值中的一条即可。 输出示例1: {{ "符合性检查": [ "因素1", "因素2", ... ] }} 输出示例2: {{ "符合性检查(以下情况不得出现)": [ "因素1", "因素2", ... ] }} 文本内容:{full_text} """ prompt_template3 = """ 任务:给出一份文本,根据文本提取资格性检查和符合性检查的具体评审标准。 输出要求: 1.以json格式返回结果,不要输出其他内容。 2.键名为"资格性和符合性检查",键值为字符串列表,每个字符串为一条评审标准,评审标准不分先后,不要有序号标注。 要求与指南: 1. 评审标准应该是具体的内容,不要返回诸如'本项目的特定符合性要求:'这种标题性质且不能体现具体评审标准的内容。 2. 若文本中存在相同或相似的表述,仅需取其中一个作为键值中的一条即可。 文本内容:{full_text} """ def get_model_response(query): return doubao_model(query) result = {"资格审查": {}} if zigefuhe_info: # 如果zigefuhe_info非空,使用prompt_template3 user_query3 = prompt_template3.format(full_text=zigefuhe_info) model_res3 = get_model_response(user_query3) zigefuhe_deviation = clean_json_string(model_res3) result["资格审查"] = zigefuhe_deviation else: zige_deviation = {} fuhe_deviation = {} # 提交 zige_info 和 fuhe_info 的模型调用 with concurrent.futures.ThreadPoolExecutor() as executor: futures = {} if zige_info != "": user_query1 = prompt_template1.format(full_text=zige_info) futures["zige"] = executor.submit(get_model_response, user_query1) if fuhe_info != "": user_query2 = prompt_template2.format(full_text=fuhe_info) futures["fuhe"] = executor.submit(get_model_response, user_query2) # 获取结果 for key, future in futures.items(): try: model_res = future.result() if key == "zige": zige_deviation = clean_json_string(model_res) elif key == "fuhe": fuhe_deviation = clean_json_string(model_res) except Exception as e: print(f"Error processing {key}: {e}") # 合并结果 result["资格审查"] = { "资格性检查": zige_deviation.get("资格性检查", zige_deviation), "符合性检查": fuhe_deviation.get("符合性检查", fuhe_deviation), } return result a=""" "申请人资格要求": [ "1.满足《中华人民共和国政府采购法》第二十二条规定;即:1)具有独立承担民事责任的能力; 2)具有良好的商业信誉和健全的财务会计制度; 3)具有履行合同所必须的设备和专业技术能力; 4)有依法交纳税收和社会保障资金的良好记录; 5)参加政府采购活动前三年内,在经营活动中没有重大违法记录; 6)法律、行政法规规定的其他条件。", "2.单位负责人为同一人或者存在直接控股、管理关系的不同投标人,不得参加本项目同一合同 项下的政府采购活动。", "3.未被列入“信用中国”网站(www.creditchina.gov.cn)失信被执行人、重大税收违法案件当事人名 单、政府采购严重违法失信名单和“中国政府采购”网站(www.ccgp.gov.cn)政府采购严重违法失信 行为记录名单(以磋商公告发布之日起查询结果为准)。", "4.落实政府采购政策需满足的资格要求: 本项目(是/否)专门面向中小微型企业:否 。需落实的节能环保、中小微型企业扶持(含支 持监狱企业发展、促进残疾人就业)等相关政府采购政策详见磋商文件。" ], "资格性审查": { "资格要求": "符合本采购文件第一章第二款要求,并提供合格有效的证明材料。", "其他要求": [ "符合竞争性磋商文件规定的其他要求", "是否符合竞争性磋商采购文件中的其他规定" ], "磋商报价": [ "每一种采购内容是否只有一个报价", "报价金额是否超过采购预算" ], "磋商书签字盖章": "是否有法定代表人或其委托代理人签字并加盖单位公章", "磋商结果有效期": "投标有效期满足招标文件要求。", "信誉情况": "无不良经济纠纷记录和违法行为的;", "采购需求响应": [ "是否实质性响应采购文件采购技术要求的", "是否有提出采购人不能接受的合同条件的" ] } """ b=""" "符合性审查": { "磋商报价": [ "每一种采购内容是否只有一个报价", "报价金额是否超过采购预算" ], "磋商书签字盖章": "是否有法定代表人或其委托代理人签字并加盖单位公章", "磋商结果有效期": "投标有效期满足招标文件要求。", "信誉情况": "无不良经济纠纷记录和违法行为的;", "采购需求响应": [ "是否实质性响应采购文件采购技术要求的", "是否有提出采购人不能接受的合同条件的" ], "其他要求": "是否符合竞争性磋商采购文件中的其他规定" } """ c="" res=extract_zige_deviation_table(a,b,c) print(json.dumps(res,ensure_ascii=False,indent=4)) data={ "申请人资格要求": [ "1.满足《中华人民共和国政府采购法》第二十二条规定;即:1)具有独立承担民事责任的能力; 2)具有良好的商业信誉和健全的财务会计制度; 3)具有履行合同所必须的设备和专业技术能力; 4)有依法交纳税收和社会保障资金的良好记录; 5)参加政府采购活动前三年内,在经营活动中没有重大违法记录; 6)法律、行政法规规定的其他条件。", "2.单位负责人为同一人或者存在直接控股、管理关系的不同投标人,不得参加本项目同一合同 项下的政府采购活动。", "3.未被列入“信用中国”网站(www.creditchina.gov.cn)失信被执行人、重大税收违法案件当事人名 单、政府采购严重违法失信名单和“中国政府采购”网站(www.ccgp.gov.cn)政府采购严重违法失信 行为记录名单(以磋商公告发布之日起查询结果为准)。", "4.落实政府采购政策需满足的资格要求: 本项目(是/否)专门面向中小微型企业:否 。需落实的节能环保、中小微型企业扶持(含支 持监狱企业发展、促进残疾人就业)等相关政府采购政策详见磋商文件。" ], "资格性审查": { "资格要求": "符合本采购文件第一章第二款要求,并提供合格有效的证明材料。", "其他要求": [ "符合竞争性磋商文件规定的其他要求", "是否符合竞争性磋商采购文件中的其他规定" ], "磋商报价": [ "每一种采购内容是否只有一个报价", "报价金额是否超过采购预算" ], "磋商书签字盖章": "是否有法定代表人或其委托代理人签字并加盖单位公章", "磋商结果有效期": "投标有效期满足招标文件要求。", "信誉情况": "无不良经济纠纷记录和违法行为的;", "采购需求响应": [ "是否实质性响应采购文件采购技术要求的", "是否有提出采购人不能接受的合同条件的" ] }, "符合性审查": { "磋商报价": [ "每一种采购内容是否只有一个报价", "报价金额是否超过采购预算" ], "磋商书签字盖章": "是否有法定代表人或其委托代理人签字并加盖单位公章", "磋商结果有效期": "投标有效期满足招标文件要求。", "信誉情况": "无不良经济纠纷记录和违法行为的;", "采购需求响应": [ "是否实质性响应采购文件采购技术要求的", "是否有提出采购人不能接受的合同条件的" ], "其他要求": "是否符合竞争性磋商采购文件中的其他规定" } }