diff --git a/flask_app/general/json_utils.py b/flask_app/general/json_utils.py index 5cfc356..d7b1d7f 100644 --- a/flask_app/general/json_utils.py +++ b/flask_app/general/json_utils.py @@ -47,6 +47,7 @@ def insert_missing_commas(json_str): return json_str def clean_json_string(json_string): + # print(json_string) """清理JSON字符串,移除多余的反引号并解析为字典""" return extract_content_from_json(json_string) diff --git a/flask_app/general/判断截取位置.py b/flask_app/general/判断截取位置.py index b158562..747c637 100644 --- a/flask_app/general/判断截取位置.py +++ b/flask_app/general/判断截取位置.py @@ -19,21 +19,23 @@ target_names = [ # "劳动合同", "企业证书", "企业业绩", - "财务信息(财务审计报告)", - "财务信息(缴纳税收证明)", - "财务信息(缴纳社保证明)" + "财务审计报告", + "缴纳税收证明", + "缴纳社保证明" ] # 定义user_query模板 def generate_user_query(target, chapters, keywords): #章节名格式通常是如'三、联合体协议书'这样的序号+标题。现在我需要将{target}贴在该章节的最后面,但是在下一章之前,目前我需要定位到插入的位置, - template = f"""这是投标文件格式要求的部分,作为投标方,我需要把不同的资格证明材料填充到指定区域,请你根据该文件回答:{target}应该附在该文件哪个地方?以下是可能匹配的章节名称:{', '.join([f"'{chapter}'" for chapter in chapters])};或者可能匹配的关键字:{', '.join([f"'{kw}'" for kw in keywords])},你需要根据以上规则确定{target}需要插入的位置,请你返回给我插入位置的上下文,以便于我定位原文,上文是插入章节或小节末尾的内容,下文应该是下一章节或下一小节开头的内容,上下文合在一起应该是连续的,字数都限制在20字以内。你的回答以json格式返回,键名分别是'上文','下文',上下文内容应完全与原文保持一致,不得擅自删减总结,输出格式示例如下: + template = f"""这是投标文件模板,作为投标人,我需要把不同的投标材料填充到对应位置,请你根据该文件回答:{target}应该插入在该文件哪块地方?你可能需要查找以下关键词出现的地方:{', '.join([f"'{chapter}'" for chapter in chapters])},并确认插入的小节,然后在该小节的末尾内容之后插入{target},请你返回给我插入位置的上下文内容,上文为该小节的末尾内容,下文为下一小节的开头内容,上下文字数请限制在20字以内(即你只需返回最末尾的内容以及最开头的内容,不需考虑语义)。你的回答以json格式返回,外层键名为'{target}',嵌套键名分别是'上文','下文',上下文内容应完全与原文保持一致,不得擅自删减总结,若找不到插入位置,那么嵌套键名'上文'和'下文'的键值为'未知',输出格式示例如下: {{ +{target}:{{ "上文":"上文测试投标人: (盖单位章) 年 月 日", "下文":"下文测试章节名 (招标人名称):测试" }} +}} """ template2=f"""该文件为投标文件格式要求,请你根据该招标文件回答:{target}应该附在哪个地方?你可能需要查找以下章节出现的地方:{', '.join([f"'{chapter}'" for chapter in chapters])};或者可能匹配的关键字:{', '.join([f"'{kw}'" for kw in keywords])},并确定所在章节。我需要将{target}贴在该章节的最后面,目前我需要定位到插入的位置,请你返回给我插入位置的上下文,下文应该是下一章的章节名或开头内容,字数限制在30字以内,以json格式返回,键名分别是'上文','下文',上下文格式内容应完全与原文保持一致,不得擅自删减总结,示例输出如下: {{ diff --git a/flask_app/testdir/插入位置.json b/flask_app/testdir/插入位置.json new file mode 100644 index 0000000..cac22cf --- /dev/null +++ b/flask_app/testdir/插入位置.json @@ -0,0 +1,171 @@ +{ + "营业执照": { + "章节": [ + "具有独立承担民事责任能力的法人", + "投标人基本信息表", + "法人或者其他组织的营业执照等证明文件,自然人的身份证明", + "投标人情况介绍", + "投标人简介", + "企业相关证件" + ], + "关键字": [ + "营业执照", + "自然人的身份证明", + "独立承担民事责任的能力" + ] + }, + "开户信息": { + "章节": [ + "投标人基本信息表", + "开户信息、银行开户信息、开户证明、开户银行", + "投标人情况介绍", + "企业相关证件", + "履行合同所必需的设备和专业技术能力的证明材料" + ], + "关键字": [ + "开户信息", + "银行开户信息", + "开户证明", + "开户银行" + ] + }, + "法定代表人身份证": { + "章节": [ + "法人代表身份证(正、反面复印件)", + "法定代表人(负责人)证明" + ], + "关键字": [ + "法定代表", + "法人代表" + ] + }, + "法定代表人授权人身份证": { + "章节": [ + "法人代表授权人身份证复印件", + "法定代表人授权证明" + ], + "关键字": [ + "法定代表人授权", + "授权人身份证" + ] + }, + "人员证书": { + "章节": [ + "拟任本项目管理及技术人员情况" + ], + "关键字": [ + "技术人员情况", + "证书", + "人员资质证书" + ] + }, + "人员社保资料": { + "章节": [ + "拟任本项目管理及技术人员情况", + "项目管理机构主要人员表", + "人员社保资料" + ], + "关键字": [ + "人员情况", + "社保资料", + "社会保险证明", + "社保证明" + ] + }, + "劳动合同": { + "章节": [ + "拟任本项目管理及技术人员情况", + "履行合同所必需的设备和专业技术能力的证明材料" + ], + "关键字": [ + "劳动合同", + "聘用合同书" + ] + }, + "企业证书": { + "章节": [ + "企业实力", + "企业资质文件", + "履行合同所必需的设备和专业技术能力的证明材料", + "按照“供应商资格要求”规定提交的相关证明材料", + "投标人认为需要提供的其他证明材料", + "投标人基本情况表", + "供应商认为有必要提供的其他资料及方案" + ], + "关键字": [ + "实力", + "资质证书", + "证明材料", + "安全生产许可证", + "认证证书" + ] + }, + "企业业绩": { + "章节": [ + "近三年同类项目经验案例", + "类似项目业绩表", + "企业业绩一览表", + "相同或类似项目业绩情况表", + "案例与业绩", + "企业经营业绩" + ], + "关键字": [ + "业绩", + "类似项目", + "案例", + "项目情况", + "施工项目" + ] + }, + "财务审计报告": { + "章节": [ + "提供依法缴纳税收和社会保障资金的相关材料", + "具有依法缴纳税收和社会保障资金的良好记录", + "财务状况报告、依法缴纳税收和社会保障资金的相关材料", + "按照“供应商资格要求”规定提交的相关证明材料", + "近年财务状况", + "费用标准证书", + "投标人资质证明文件", + "资格审查资料" + ], + "关键字": [ + "财务报告", + "财务状况", + "资格审查资料", + "资信证明", + "财务会计报表" + ] + }, + "缴纳税收证明": { + "章节": [ + "提供依法缴纳税收和社会保障资金的相关材料", + "具有依法缴纳税收和社会保障资金的良好记录", + "财务状况报告、依法缴纳税收和社会保障资金的相关材料", + "投标人简介", + "按照“供应商资格要求”规定提交的相关证明材料", + "用于评审的证明材料", + "费用标准证书", + "投标人资质证明文件", + "资格审查资料" + ], + "关键字": [ + "缴纳税收", + "用户评审的证明材料", + "资格审查资料" + ] + }, + "缴纳社保证明": { + "章节": [ + "投标人资质证明文件", + "按照“供应商资格要求”规定提交的相关证明材料", + "用于评审的证明材料", + "费用标准证书", + "社会保障资金", + "资格审查资料" + ], + "关键字": [ + "社会保障资金", + "资格审查资料" + ] + } +} \ No newline at end of file diff --git a/flask_app/货物标/提示词/prompt1.txt b/flask_app/货物标/提示词/prompt1.txt index 5b52c1a..a31bbc5 100644 --- a/flask_app/货物标/提示词/prompt1.txt +++ b/flask_app/货物标/提示词/prompt1.txt @@ -34,6 +34,18 @@ user_query1 = "这是一份货物标中采购要求部分的内容,请告诉 (招标人名称):" } + + template = f"""这是投标文件模板,作为投标人,我需要把不同的投标材料填充到对应位置,请你根据该文件回答:{target}应该附在该文件哪个地方?以下是可能匹配的章节名称:{', '.join([f"'{chapter}'" for chapter in chapters])};或者可能匹配的关键字:{', '.join([f"'{kw}'" for kw in keywords])},你需要根据投标文件要求确定{target}需要插入的位置,请你返回给我插入位置的上下文内容,以便于我定位原文,上文是插入章节或小节末尾的内容,下文应该是下一章节或下一小节开头的内容,上下文合在一起应该是连续的,字数都限制在20字以内。你的回答以json格式返回,键名分别是'上文','下文',上下文内容应完全与原文保持一致,不得擅自删减总结,输出格式示例如下: +{{ +{target}:{{ +"上文":"上文测试投标人: (盖单位章) + 年 月 日", +"下文":"下文测试章节名 +(招标人名称):测试" +}} +}} +""" + { "采购需求": { "硬盘录像机 A": {}, diff --git a/flask_app/货物标/货物标解析main.py b/flask_app/货物标/货物标解析main.py index e0cf28e..26da875 100644 --- a/flask_app/货物标/货物标解析main.py +++ b/flask_app/货物标/货物标解析main.py @@ -222,7 +222,7 @@ def goods_bid_main(output_folder, file_path, file_type, unique_id): yield json.dumps({'good_list': transform_json_values(collected_good_list)}, ensure_ascii=False) #广水市 2022 年义务教育学校多媒体补充采购项目 资格审查有问题 -#TODO:区分output目录 陕西省公安厅交通警察总队高速公路交通安全智能感知巡查系统项目 (1)_tobidders_notice_part2.pdf提取有问题 #一包二包问题 107国道 +#TODO:区分output目录 陕西省公安厅交通警察总队高速公路交通安全智能感知巡查系统项目 (1)_tobidders_notice_part2.pdf提取有问题 #good_list 金额 截取上下文 if __name__ == "__main__": import time