From 6663ee89769a9a057b6bb52138434832df760016 Mon Sep 17 00:00:00 2001 From: chentianrui Date: Fri, 30 Aug 2024 18:40:21 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=8A=A0=E4=BA=86=E5=8D=95?= =?UTF-8?q?=E5=85=83=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/unit_test/FeeCollectionTable.json | 202 ++++++++++++++++++ backend/unit_test/OtherFee.json | 202 ++++++++++++++++++ backend/unit_test/ProjectDivision.json | 202 ++++++++++++++++++ .../ProjectDivisions_CostPreview.json | 202 ++++++++++++++++++ backend/unit_test/ProjectProperties.json | 202 ++++++++++++++++++ backend/unit_test/ProjectQuantities.json | 202 ++++++++++++++++++ backend/unit_test/TotalCalculateTable.json | 202 ++++++++++++++++++ backend/unit_test/corr_test.py | 118 ++++++++++ backend/unit_test/test.json | 10 + backend/unit_test/test_test.json | 18 ++ 10 files changed, 1560 insertions(+) create mode 100644 backend/unit_test/FeeCollectionTable.json create mode 100644 backend/unit_test/OtherFee.json create mode 100644 backend/unit_test/ProjectDivision.json create mode 100644 backend/unit_test/ProjectDivisions_CostPreview.json create mode 100644 backend/unit_test/ProjectProperties.json create mode 100644 backend/unit_test/ProjectQuantities.json create mode 100644 backend/unit_test/TotalCalculateTable.json create mode 100644 backend/unit_test/corr_test.py create mode 100644 backend/unit_test/test.json create mode 100644 backend/unit_test/test_test.json diff --git a/backend/unit_test/FeeCollectionTable.json b/backend/unit_test/FeeCollectionTable.json new file mode 100644 index 0000000..e20c2ed --- /dev/null +++ b/backend/unit_test/FeeCollectionTable.json @@ -0,0 +1,202 @@ +[ + { + "question": "人工费的费率是多少?", + "answer": "费率是100.0000000000" + }, + { + "question": "临时设施费的费率是多少?", + "answer": "费率是6.3500000000" + }, + { + "question": "乙供装置性材料费的费率是多少?", + "answer": "费率是100.0000000000" + }, + { + "question": "直接费的费率是多少?", + "answer": "费率是100.0000000000" + }, + { + "question": "甲供装置性材料费的费率是多少?", + "answer": "费率是100.0000000000" + }, + { + "question": "直接费的费率是多少?", + "answer": "费率是100.0000000000" + }, + { + "question": "夜间施工增加费的费率是多少?", + "answer": "费率是0E-10" + }, + { + "question": "装置性材料费的费率是多少?", + "answer": "费率是100.0000000000" + }, + { + "question": "冬雨季施工增加费的费率是多少?", + "answer": "费率是3.5700000000" + }, + { + "question": "材料费的费率是多少?", + "answer": "费率是100.0000000000" + }, + { + "question": "机械价差的费率是多少?", + "answer": "费率是100.0000000000" + }, + { + "question": "规费的费率是多少?", + "answer": "费率是100.0000000000" + }, + { + "question": "直接工程费的费率是多少?", + "answer": "费率是100.0000000000" + }, + { + "question": "安全文明施工费的费率是多少?", + "answer": "费率是3.5500000000" + }, + { + "question": "企业管理费的费率是多少?", + "answer": "费率是35.7600000000" + }, + { + "question": "税金的费率是多少?", + "answer": "费率是9.0000000000" + }, + { + "question": "直接费的费率是多少?", + "answer": "费率是100.0000000000" + }, + { + "question": "安全文明施工费的费率是多少?", + "answer": "费率是3.5500000000" + }, + { + "question": "合计的费率是多少?", + "answer": "费率是100.0000000000" + }, + { + "question": "税金的费率是多少?", + "answer": "费率是9.0000000000" + }, + { + "question": "安全文明施工费的费率是多少?", + "answer": "费率是3.5500000000" + }, + { + "question": "直接工程费的费率是多少?", + "answer": "费率是100.0000000000" + }, + { + "question": "税金的费率是多少?", + "answer": "费率是9.0000000000" + }, + { + "question": "社会保险费的费率是多少?", + "answer": "费率是15.0000000000" + }, + { + "question": "间接费的费率是多少?", + "answer": "费率是100.0000000000" + }, + { + "question": "合计的费率是多少?", + "answer": "费率是100.0000000000" + }, + { + "question": "临时设施费的费率是多少?", + "answer": "费率是0E-10" + }, + { + "question": "利润的费率是多少?", + "answer": "费率是5.2400000000" + }, + { + "question": "税金的费率是多少?", + "answer": "费率是9.0000000000" + }, + { + "question": "社会保险费的费率是多少?", + "answer": "费率是15.0000000000" + }, + { + "question": "直接工程费的费率是多少?", + "answer": "费率是100.0000000000" + }, + { + "question": "乙供设备不含税价的费率是多少?", + "answer": "费率是100.0000000000" + }, + { + "question": "企业管理费的费率是多少?", + "answer": "费率是17.1300000000" + }, + { + "question": "企业管理费的费率是多少?", + "answer": "费率是35.7600000000" + }, + { + "question": "夜间施工增加费的费率是多少?", + "answer": "费率是0E-10" + }, + { + "question": "直接费的费率是多少?", + "answer": "费率是100.0000000000" + }, + { + "question": "夜间施工增加费的费率是多少?", + "answer": "费率是0E-10" + }, + { + "question": "甲供设备含税价的费率是多少?", + "answer": "费率是100.0000000000" + }, + { + "question": "施工机械使用费的费率是多少?", + "answer": "费率是100.0000000000" + }, + { + "question": "安全文明施工费的费率是多少?", + "answer": "费率是3.5500000000" + }, + { + "question": "定额直接费的费率是多少?", + "answer": "费率是100.0000000000" + }, + { + "question": "主材费的费率是多少?", + "answer": "费率是100.0000000000" + }, + { + "question": "直接费的费率是多少?", + "answer": "费率是100.0000000000" + }, + { + "question": "施工企业配合调试费的费率是多少?", + "answer": "费率是0E-10" + }, + { + "question": "施工机械使用费的费率是多少?", + "answer": "费率是100.0000000000" + }, + { + "question": "临时设施费的费率是多少?", + "answer": "费率是6.3500000000" + }, + { + "question": "施工工具用具使用费的费率是多少?", + "answer": "费率是3.8200000000" + }, + { + "question": "措施费的费率是多少?", + "answer": "费率是100.0000000000" + }, + { + "question": "材料价差的费率是多少?", + "answer": "费率是100.0000000000" + }, + { + "question": "措施费的费率是多少?", + "answer": "费率是100.0000000000" + } +] \ No newline at end of file diff --git a/backend/unit_test/OtherFee.json b/backend/unit_test/OtherFee.json new file mode 100644 index 0000000..b6e03d2 --- /dev/null +++ b/backend/unit_test/OtherFee.json @@ -0,0 +1,202 @@ +[ + { + "question": "前期工作管理费用的金额是多少?", + "answer": "金额是0E-10" + }, + { + "question": "特种设备安全监测费的金额是多少?", + "answer": "金额是0E-10" + }, + { + "question": "工程监理费的金额是多少?", + "answer": "金额是131009.9200000000" + }, + { + "question": "水土保持方案编审费用的金额是多少?", + "answer": "金额是0E-10" + }, + { + "question": "生产准备费的金额是多少?", + "answer": "金额是472373669.4635599852" + }, + { + "question": "电力工程技术经济标准编制费的金额是多少?", + "answer": "金额是84352440.9756360054" + }, + { + "question": "项目建设技术服务费的金额是多少?", + "answer": "金额是16855957065.4302005768" + }, + { + "question": "工程保险费的金额是多少?", + "answer": "金额是0E-10" + }, + { + "question": "其他的金额是多少?", + "answer": "金额是0E-10" + }, + { + "question": "施工图文件评审费的金额是多少?", + "answer": "金额是24940.0000000000" + }, + { + "question": "节能评估费用的金额是多少?", + "answer": "金额是0E-10" + }, + { + "question": "桩基检测费的金额是多少?", + "answer": "金额是0E-10" + }, + { + "question": "项目前期工作费的金额是多少?", + "answer": "金额是0E-10" + }, + { + "question": "其他的金额是多少?", + "answer": "金额是0E-10" + }, + { + "question": "项目法人管理费的金额是多少?", + "answer": "金额是986923559.4149370193" + }, + { + "question": "专业爆破服务费的金额是多少?", + "answer": "金额是0E-10" + }, + { + "question": "节能评估费用的金额是多少?", + "answer": "金额是0E-10" + }, + { + "question": "用地预审费用的金额是多少?", + "answer": "金额是0E-10" + }, + { + "question": "设备材料监造费的金额是多少?", + "answer": "金额是0E-10" + }, + { + "question": "环境监测及环境保护验收费的金额是多少?", + "answer": "金额是0E-10" + }, + { + "question": "环境监测及环境保护验收费的金额是多少?", + "answer": "金额是0E-10" + }, + { + "question": "设备材料监造费的金额是多少?", + "answer": "金额是0E-10" + }, + { + "question": "勘察费的金额是多少?", + "answer": "金额是12122154260.0000000000" + }, + { + "question": "项目法人管理费的金额是多少?", + "answer": "金额是986923559.4149370193" + }, + { + "question": "社会稳定风险评估费用的金额是多少?", + "answer": "金额是0E-10" + }, + { + "question": "勘察费的金额是多少?", + "answer": "金额是12122154260.0000000000" + }, + { + "question": "环境影响评价费用的金额是多少?", + "answer": "金额是0E-10" + }, + { + "question": "水土保持方案编审费用的金额是多少?", + "answer": "金额是0E-10" + }, + { + "question": "使用林地可行性研究费用的金额是多少?", + "answer": "金额是0E-10" + }, + { + "question": "环境监测及环境保护验收费的金额是多少?", + "answer": "金额是0E-10" + }, + { + "question": "桩基检测费的金额是多少?", + "answer": "金额是0E-10" + }, + { + "question": "设计费的金额是多少?", + "answer": "金额是4042055949.4299998283" + }, + { + "question": "环境监测及环境保护验收费的金额是多少?", + "answer": "金额是0E-10" + }, + { + "question": "建设场地征用及清理费的金额是多少?", + "answer": "金额是16831284.2287110016" + }, + { + "question": "施工图文件评审费的金额是多少?", + "answer": "金额是24940.0000000000" + }, + { + "question": "项目后评价费的金额是多少?", + "answer": "金额是421762204.8781780005" + }, + { + "question": "水土保持方案编审费用的金额是多少?", + "answer": "金额是0E-10" + }, + { + "question": "勘察设计费的金额是多少?", + "answer": "金额是16164210209.4300003052" + }, + { + "question": "前期工作管理费用的金额是多少?", + "answer": "金额是0E-10" + }, + { + "question": "节能评估费用的金额是多少?", + "answer": "金额是0E-10" + }, + { + "question": "初步设计文件评审费的金额是多少?", + "answer": "金额是18560.0000000000" + }, + { + "question": "特种设备安全监测费的金额是多少?", + "answer": "金额是0E-10" + }, + { + "question": "初步设计文件评审费的金额是多少?", + "answer": "金额是18560.0000000000" + }, + { + "question": "桩基检测费的金额是多少?", + "answer": "金额是0E-10" + }, + { + "question": "矿产压覆评估费用的金额是多少?", + "answer": "金额是0E-10" + }, + { + "question": "设计费的金额是多少?", + "answer": "金额是4042055949.4299998283" + }, + { + "question": "水土保持方案编审费用的金额是多少?", + "answer": "金额是0E-10" + }, + { + "question": "电力工程技术经济标准编制费的金额是多少?", + "answer": "金额是84352440.9756360054" + }, + { + "question": "桩基检测费的金额是多少?", + "answer": "金额是0E-10" + }, + { + "question": "矿产压覆评估费用的金额是多少?", + "answer": "金额是0E-10" + } +] \ No newline at end of file diff --git a/backend/unit_test/ProjectDivision.json b/backend/unit_test/ProjectDivision.json new file mode 100644 index 0000000..d583af5 --- /dev/null +++ b/backend/unit_test/ProjectDivision.json @@ -0,0 +1,202 @@ +[ + { + "question": "新增项目名称的合价是多少?", + "answer": "合价是0E-10" + }, + { + "question": "预制基础的合价是多少?", + "answer": "合价是40567.2639480000" + }, + { + "question": "绝缘子串及金具安装的合价是多少?", + "answer": "合价是2897171.9878110001" + }, + { + "question": "杆塔工程材料工地运输的合价是多少?", + "answer": "合价是0E-10" + }, + { + "question": "基础防护的合价是多少?", + "answer": "合价是0E-10" + }, + { + "question": "护坡、挡土墙及排洪沟土石方工程的合价是多少?", + "answer": "合价是0E-10" + }, + { + "question": "新增项目名称的合价是多少?", + "answer": "合价是0E-10" + }, + { + "question": "(1)拆除后能利用的合价是多少?", + "answer": "合价是0E-10" + }, + { + "question": "地基处理的合价是多少?", + "answer": "合价是0E-10" + }, + { + "question": "灌注桩基础的合价是多少?", + "answer": "合价是43466660.0544390008" + }, + { + "question": "(1)拆除后能利用的合价是多少?", + "answer": "合价是0E-10" + }, + { + "question": "悬垂绝缘子串及金具安装的合价是多少?", + "answer": "合价是1251465.0340440001" + }, + { + "question": "护坡、挡土墙及排洪沟土石方工程的合价是多少?", + "answer": "合价是0E-10" + }, + { + "question": "附件安装工程的合价是多少?", + "answer": "合价是0E-10" + }, + { + "question": "导地线跨越架设的合价是多少?", + "answer": "合价是0E-10" + }, + { + "question": "辅助工程的合价是多少?", + "answer": "合价是0E-10" + }, + { + "question": "新增项目名称的合价是多少?", + "answer": "合价是0E-10" + }, + { + "question": "绝缘子串及金具安装的合价是多少?", + "answer": "合价是0E-10" + }, + { + "question": "护坡、挡土墙及排洪沟砌筑的合价是多少?", + "answer": "合价是709931.9013930000" + }, + { + "question": "锚杆基础的合价是多少?", + "answer": "合价是15344967.9002950005" + }, + { + "question": "建筑工程的合价是多少?", + "answer": "合价是25411.2790780000" + }, + { + "question": "辅助工程的合价是多少?", + "answer": "合价是1046253.4135240000" + }, + { + "question": "导地线跨越架设的合价是多少?", + "answer": "合价是0E-10" + }, + { + "question": "电缆工程的合价是多少?", + "answer": "合价是0E-10" + }, + { + "question": "输、送电线路试运的合价是多少?", + "answer": "合价是0E-10" + }, + { + "question": "基础土石方工程的合价是多少?", + "answer": "合价是32872843180.7429008484" + }, + { + "question": "基础永久性围堰的合价是多少?", + "answer": "合价是0E-10" + }, + { + "question": "基础永久性围堰的合价是多少?", + "answer": "合价是0E-10" + }, + { + "question": "混凝土及钢筋混凝土结构的合价是多少?", + "answer": "合价是0E-10" + }, + { + "question": "输、送电线路试运的合价是多少?", + "answer": "合价是0E-10" + }, + { + "question": "混合结构的合价是多少?", + "answer": "合价是16967.5193850000" + }, + { + "question": "杆塔组立的合价是多少?", + "answer": "合价是2253906.0859830002" + }, + { + "question": "附件安装工程的合价是多少?", + "answer": "合价是0E-10" + }, + { + "question": "接地工程材料工地运输的合价是多少?", + "answer": "合价是0E-10" + }, + { + "question": "新增项目名称的合价是多少?", + "answer": "合价是27148.0310160000" + }, + { + "question": "导地线架设的合价是多少?", + "answer": "合价是0E-10" + }, + { + "question": "护坡、挡土墙及排洪沟的合价是多少?", + "answer": "合价是709931.9013930000" + }, + { + "question": "(1)拆除后能利用的合价是多少?", + "answer": "合价是0E-10" + }, + { + "question": "基础永久性围堰砌筑的合价是多少?", + "answer": "合价是0E-10" + }, + { + "question": "(2)拆除后不能利用的合价是多少?", + "answer": "合价是0E-10" + }, + { + "question": "安装工程的合价是多少?", + "answer": "合价是65324.9496330000" + }, + { + "question": "尖峰、施工基面土石方工程的合价是多少?", + "answer": "合价是325205.4178770000" + }, + { + "question": "架线工程的合价是多少?", + "answer": "合价是4844399648.0778598785" + }, + { + "question": "杆塔组立的合价是多少?", + "answer": "合价是0E-10" + }, + { + "question": "架线工程材料工地运输的合价是多少?", + "answer": "合价是2088570123.2409000397" + }, + { + "question": "导地线架设的合价是多少?", + "answer": "合价是0E-10" + }, + { + "question": "耐张绝缘子串及金具安装的合价是多少?", + "answer": "合价是1645706.9537680000" + }, + { + "question": "架线工程材料工地运输的合价是多少?", + "answer": "合价是2088570123.2409000397" + }, + { + "question": "其他基础的合价是多少?", + "answer": "合价是3839666.7656879998" + }, + { + "question": "架线工程材料工地运输的合价是多少?", + "answer": "合价是0E-10" + } +] \ No newline at end of file diff --git a/backend/unit_test/ProjectDivisions_CostPreview.json b/backend/unit_test/ProjectDivisions_CostPreview.json new file mode 100644 index 0000000..4f17f26 --- /dev/null +++ b/backend/unit_test/ProjectDivisions_CostPreview.json @@ -0,0 +1,202 @@ +[ + { + "question": "线路取费表的直接费是多少?", + "answer": "直接费是440877984.9458540082" + }, + { + "question": "线路取费表(拆除)的直接费是多少?", + "answer": "直接费是0E-10" + }, + { + "question": "线路取费表的直接费是多少?", + "answer": "直接费是0E-10" + }, + { + "question": "线路取费表的直接费是多少?", + "answer": "直接费是1086586.9018659999" + }, + { + "question": "线路取费表的直接费是多少?", + "answer": "直接费是0E-10" + }, + { + "question": "线路取费表(拆除)的直接费是多少?", + "answer": "直接费是0E-10" + }, + { + "question": "线路取费表的直接费是多少?", + "answer": "直接费是51486.7898090000" + }, + { + "question": "线路取费表的直接费是多少?", + "answer": "直接费是3321.8139230000" + }, + { + "question": "线路取费表的直接费是多少?", + "answer": "直接费是78005.0340730000" + }, + { + "question": "的直接费是多少?", + "answer": "直接费是3535892767.0972299576" + }, + { + "question": "线路取费表的直接费是多少?", + "answer": "直接费是24045.2334060000" + }, + { + "question": "的直接费是多少?", + "answer": "直接费是336253.7482950000" + }, + { + "question": "线路取费表的直接费是多少?", + "answer": "直接费是142270.1346780000" + }, + { + "question": "的直接费是多少?", + "answer": "直接费是61049.8665780000" + }, + { + "question": "线路取费表(拆除)的直接费是多少?", + "answer": "直接费是0E-10" + }, + { + "question": "线路取费表的直接费是多少?", + "answer": "直接费是933061.7795919999" + }, + { + "question": "线路取费表的直接费是多少?", + "answer": "直接费是0E-10" + }, + { + "question": "的直接费是多少?", + "answer": "直接费是182949.5997350000" + }, + { + "question": "的直接费是多少?", + "answer": "直接费是0E-10" + }, + { + "question": "线路取费表(余物清理)的直接费是多少?", + "answer": "直接费是0E-10" + }, + { + "question": "线路取费表(拆除)的直接费是多少?", + "answer": "直接费是0E-10" + }, + { + "question": "线路取费表的直接费是多少?", + "answer": "直接费是21220645.1637400016" + }, + { + "question": "线路取费表的直接费是多少?", + "answer": "直接费是933061.7795919999" + }, + { + "question": "线路取费表的直接费是多少?", + "answer": "直接费是2501470269.7231497765" + }, + { + "question": "线路取费表的直接费是多少?", + "answer": "直接费是51486.7898090000" + }, + { + "question": "的直接费是多少?", + "answer": "直接费是55265.9111100000" + }, + { + "question": "的直接费是多少?", + "answer": "直接费是442897633.6273120046" + }, + { + "question": "线路取费表(拆除)的直接费是多少?", + "answer": "直接费是0E-10" + }, + { + "question": "线路取费表的直接费是多少?", + "answer": "直接费是0E-10" + }, + { + "question": "的直接费是多少?", + "answer": "直接费是1057484.3306960000" + }, + { + "question": "的直接费是多少?", + "answer": "直接费是442897633.6273120046" + }, + { + "question": "的直接费是多少?", + "answer": "直接费是0E-10" + }, + { + "question": "线路取费表的直接费是多少?", + "answer": "直接费是21220645.1637400016" + }, + { + "question": "线路取费表(余物清理)的直接费是多少?", + "answer": "直接费是0E-10" + }, + { + "question": "的直接费是多少?", + "answer": "直接费是336253.7482950000" + }, + { + "question": "的直接费是多少?", + "answer": "直接费是0E-10" + }, + { + "question": "的直接费是多少?", + "answer": "直接费是0E-10" + }, + { + "question": "的直接费是多少?", + "answer": "直接费是61049.8665780000" + }, + { + "question": "线路取费表(余物清理)(1)的直接费是多少?", + "answer": "直接费是61049.8665780000" + }, + { + "question": "线路取费表的直接费是多少?", + "answer": "直接费是24045.2334060000" + }, + { + "question": "线路取费表(拆除)的直接费是多少?", + "answer": "直接费是0E-10" + }, + { + "question": "线路取费表(拆除)的直接费是多少?", + "answer": "直接费是0E-10" + }, + { + "question": "线路取费表的直接费是多少?", + "answer": "直接费是0E-10" + }, + { + "question": "线路取费表(余物清理)的直接费是多少?", + "answer": "直接费是0E-10" + }, + { + "question": "线路取费表(拆除)的直接费是多少?", + "answer": "直接费是0E-10" + }, + { + "question": "线路取费表(拆除)的直接费是多少?", + "answer": "直接费是0E-10" + }, + { + "question": "线路取费表的直接费是多少?", + "answer": "直接费是0E-10" + }, + { + "question": "线路取费表的直接费是多少?", + "answer": "直接费是659466.5955000001" + }, + { + "question": "线路取费表(拆除)的直接费是多少?", + "answer": "直接费是0E-10" + }, + { + "question": "线路取费表的直接费是多少?", + "answer": "直接费是2501470269.7231497765" + } +] \ No newline at end of file diff --git a/backend/unit_test/ProjectProperties.json b/backend/unit_test/ProjectProperties.json new file mode 100644 index 0000000..90afa22 --- /dev/null +++ b/backend/unit_test/ProjectProperties.json @@ -0,0 +1,202 @@ +[ + { + "question": "降阻剂_数量的属性值是多少?", + "answer": "属性值是f" + }, + { + "question": "导线2_单位单价的属性值是多少?", + "answer": "属性值是9" + }, + { + "question": "导线_单公里用量的属性值是多少?", + "answer": "属性值是36" + }, + { + "question": "线路参数_导地线防震措施的属性值是多少?", + "answer": "属性值是457" + }, + { + "question": "合成绝缘子_数量的属性值是多少?", + "answer": "属性值是5" + }, + { + "question": "基础垫层的属性值是多少?", + "answer": "属性值是" + }, + { + "question": "其中:基础护壁用量的属性值是多少?", + "answer": "属性值是74394.212" + }, + { + "question": "铺石加混凝土的属性值是多少?", + "answer": "属性值是0.0" + }, + { + "question": "导线用量(西北)的属性值是多少?", + "answer": "属性值是-795976.0855" + }, + { + "question": "导线单公里用量(西北)的属性值是多少?", + "answer": "属性值是-159195.2171" + }, + { + "question": "灰土垫层单公里用量(西北)的属性值是多少?", + "answer": "属性值是8.0" + }, + { + "question": "地线瓷绝缘子单公里用量(西北)的属性值是多少?", + "answer": "属性值是738.253" + }, + { + "question": "地形条件_高山的属性值是多少?", + "answer": "属性值是7" + }, + { + "question": "流砂坑比例的属性值是多少?", + "answer": "属性值是0.001" + }, + { + "question": "碎石_数量的属性值是多少?", + "answer": "属性值是12" + }, + { + "question": "线路参数_导地线防震措施的属性值是多少?", + "answer": "属性值是457" + }, + { + "question": "灰土垫层的属性值是多少?", + "answer": "属性值是40.0" + }, + { + "question": "交叉跨越_弱电线路的属性值是多少?", + "answer": "属性值是45" + }, + { + "question": "地线1_根数的属性值是多少?", + "answer": "属性值是12" + }, + { + "question": "土质比例_岩石(人凿)的属性值是多少?", + "answer": "属性值是49" + }, + { + "question": "耐张混凝土杆基数的属性值是多少?", + "answer": "属性值是26.0" + }, + { + "question": "设计单位的属性值是多少?", + "answer": "属性值是3" + }, + { + "question": "接地钢的属性值是多少?", + "answer": "属性值是" + }, + { + "question": "间隔棒_单公里用量的属性值是多少?", + "answer": "属性值是r" + }, + { + "question": "导线其中:跳线和导线弧垂单公里用量(西北)的属性值是多少?", + "answer": "属性值是159203.0171" + }, + { + "question": "桩基础的属性值是多少?", + "answer": "属性值是310.0" + }, + { + "question": "降阻剂的属性值是多少?", + "answer": "属性值是" + }, + { + "question": "可抵扣增值税(万元)的属性值是多少?", + "answer": "属性值是2005241.808822" + }, + { + "question": "主要技术经济指标2的属性值是多少?", + "answer": "属性值是" + }, + { + "question": "合成绝缘子_数量的属性值是多少?", + "answer": "属性值是5" + }, + { + "question": "土质比例_水坑的属性值是多少?", + "answer": "属性值是47" + }, + { + "question": "基础_插入式的属性值是多少?", + "answer": "属性值是3" + }, + { + "question": "耐张角钢塔比例的属性值是多少?", + "answer": "属性值是250%" + }, + { + "question": "地线的属性值是多少?", + "answer": "属性值是" + }, + { + "question": "回路数的属性值是多少?", + "answer": "属性值是三回" + }, + { + "question": "导线其中:跳线和导线弧垂用量的属性值是多少?", + "answer": "属性值是796015.0855" + }, + { + "question": "OPGW用量(西北)的属性值是多少?", + "answer": "属性值是2904.737" + }, + { + "question": "现浇混凝土_单公里用量的属性值是多少?", + "answer": "属性值是22" + }, + { + "question": "架线工程费用(万元)(含价差)的属性值是多少?", + "answer": "属性值是3203726.0" + }, + { + "question": "耐张钢管塔比例的属性值是多少?", + "answer": "属性值是300%" + }, + { + "question": "单公里土石方量_基面的属性值是多少?", + "answer": "属性值是8*8" + }, + { + "question": "地线2的属性值是多少?", + "answer": "属性值是" + }, + { + "question": "降阻剂的属性值是多少?", + "answer": "属性值是" + }, + { + "question": "土质比例的属性值是多少?", + "answer": "属性值是" + }, + { + "question": "地线1_单位单价的属性值是多少?", + "answer": "属性值是113" + }, + { + "question": "绝缘子串型式_悬垂串的属性值是多少?", + "answer": "属性值是48" + }, + { + "question": "基坑土石方量(西北)的属性值是多少?", + "answer": "属性值是405403506.156" + }, + { + "question": "基坑坚土的属性值是多少?", + "answer": "属性值是25585167.713" + }, + { + "question": "基坑普通土的属性值是多少?", + "answer": "属性值是313873965.334" + }, + { + "question": "瓷绝缘子单公里用量(西北)的属性值是多少?", + "answer": "属性值是201.0" + } +] \ No newline at end of file diff --git a/backend/unit_test/ProjectQuantities.json b/backend/unit_test/ProjectQuantities.json new file mode 100644 index 0000000..5349024 --- /dev/null +++ b/backend/unit_test/ProjectQuantities.json @@ -0,0 +1,202 @@ +[ + { + "question": "电杆坑、塔坑、拉线坑人工挖方(或爆破)及回填 水坑 坑深2.0m以内的编码是多少?", + "answer": "编码是YX2-72" + }, + { + "question": "钢筋加工及制作的编码是多少?", + "answer": "编码是YX3-43" + }, + { + "question": "船舶运输 线材 每件重400kg以内 运输的编码是多少?", + "answer": "编码是YX1-132" + }, + { + "question": "船舶运输 钢管塔材 运输的编码是多少?", + "answer": "编码是YX1-152" + }, + { + "question": "碎石的编码是多少?", + "answer": "编码是C10020103" + }, + { + "question": "混凝土(保护帽)的编码是多少?", + "answer": "编码是ZH1001" + }, + { + "question": "船舶运输 金具、绝缘子、零星钢材 运输的编码是多少?", + "answer": "编码是YX1-144" + }, + { + "question": "人力运输 混凝土杆 每件重500kg以内的编码是多少?", + "answer": "编码是YX1-1" + }, + { + "question": "船舶运输 线材 每件重1000kg以内 运输的编码是多少?", + "answer": "编码是YX1-136" + }, + { + "question": "混凝土搅拌及浇制 每基基础联系梁混凝土量20m³以内的编码是多少?", + "answer": "编码是YX3-69" + }, + { + "question": "索道运输 循环式 塔材 荷载1t以内 装卸的编码是多少?", + "answer": "编码是YX1-185" + }, + { + "question": "人力运输 混凝土预制品 每件重100kg以内的编码是多少?", + "answer": "编码是YX1-6" + }, + { + "question": "船舶运输 混凝土杆 每件重1500kg以上 运输的编码是多少?", + "answer": "编码是YX1-118" + }, + { + "question": "碎石的编码是多少?", + "answer": "编码是C10020103" + }, + { + "question": "电杆坑、塔坑、拉线坑人工挖方(或爆破)及回填 泥水 坑深8.0m以上的编码是多少?", + "answer": "编码是YX2-55" + }, + { + "question": "机械施工土方 场地平整的编码是多少?", + "answer": "编码是GT1-1" + }, + { + "question": "汽车运输 混凝土预制品 每件重100kg以内 装卸的编码是多少?", + "answer": "编码是YX1-69" + }, + { + "question": "汽车运输 其他建筑安装材料 运输的编码是多少?", + "answer": "编码是YX1-108" + }, + { + "question": "钻孔灌注桩基础 混凝土搅拌及浇制 孔深10m以内的编码是多少?", + "answer": "编码是YX3-171" + }, + { + "question": "线路复测及分坑 直线双杆及拉线塔的编码是多少?", + "answer": "编码是YX2-3" + }, + { + "question": "氧化锌避雷器安装 35kV的编码是多少?", + "answer": "编码是YX7-32" + }, + { + "question": "混凝土(保护帽)的编码是多少?", + "answer": "编码是ZH1002" + }, + { + "question": "汽车运输 其他建筑安装材料 装卸的编码是多少?", + "answer": "编码是YX1-107" + }, + { + "question": "船舶运输 混凝土杆 每件重500kg以内 装卸的编码是多少?", + "answer": "编码是YX1-109" + }, + { + "question": "混凝土(保护帽)的编码是多少?", + "answer": "编码是ZH1001" + }, + { + "question": "人力运输 混凝土杆 每件重500kg以内的编码是多少?", + "answer": "编码是YX1-1" + }, + { + "question": "人力运输 混凝土杆 每件重500kg以内的编码是多少?", + "answer": "编码是YX1-1" + }, + { + "question": "普通硅酸盐水泥的编码是多少?", + "answer": "编码是C09010102" + }, + { + "question": "拖拉机运输 钢管塔材 运输的编码是多少?", + "answer": "编码是YX1-44" + }, + { + "question": "尖峰及施工基面挖方(或爆破) 普通土的编码是多少?", + "answer": "编码是YX2-226" + }, + { + "question": "汽车运输 角钢塔材 装卸的编码是多少?", + "answer": "编码是YX1-103" + }, + { + "question": "接地槽挖方(或爆破)及回填 普通土的编码是多少?", + "answer": "编码是YX2-213" + }, + { + "question": "水的编码是多少?", + "answer": "编码是C21010101" + }, + { + "question": "直线(直线换位、直线转角)杆塔绝缘子串悬挂安装 35kV 针式单联串(悬垂串)的编码是多少?", + "answer": "编码是YX6-21" + }, + { + "question": "直线(直线换位、直线转角)杆塔绝缘子串悬挂安装 35kV I型双联串(悬垂串)的编码是多少?", + "answer": "编码是YX6-22" + }, + { + "question": "钻孔灌注桩基础 机械推钻成孔 砂砾石 孔深20m以内 孔径1.0m以内的编码是多少?", + "answer": "编码是YX3-117" + }, + { + "question": "线路复测及分坑 直线自立塔的编码是多少?", + "answer": "编码是YX2-6" + }, + { + "question": "钻孔灌注桩基础 凿桩头 桩径0.8m以上的编码是多少?", + "answer": "编码是YX3-180" + }, + { + "question": "线路复测及分坑 耐张(转角)单杆的编码是多少?", + "answer": "编码是YX2-2" + }, + { + "question": "中砂的编码是多少?", + "answer": "编码是C10010101" + }, + { + "question": "人力运输 混凝土杆 每件重500kg以内的编码是多少?", + "answer": "编码是YX1-1" + }, + { + "question": "带电跨越电力线 被跨线电压等级 35kV的编码是多少?", + "answer": "编码是YX5-186" + }, + { + "question": "人工挖土方 普土 深2m以内的编码是多少?", + "answer": "编码是YT1-1" + }, + { + "question": "混凝土杆的编码是多少?", + "answer": "编码是" + }, + { + "question": "接地模块安装的编码是多少?", + "answer": "编码是YX3-213" + }, + { + "question": "拖拉机运输 线材 每件重400kg以内 运输的编码是多少?", + "answer": "编码是YX1-34" + }, + { + "question": "拖拉机运输 其他建筑安装材料 装卸的编码是多少?", + "answer": "编码是YX1-45" + }, + { + "question": "普通硅酸盐水泥的编码是多少?", + "answer": "编码是C09010102" + }, + { + "question": "船舶运输 线材 每件重4000kg以内 装卸的编码是多少?", + "answer": "编码是YX1-139" + }, + { + "question": "水的编码是多少?", + "answer": "编码是C21010101" + } +] \ No newline at end of file diff --git a/backend/unit_test/TotalCalculateTable.json b/backend/unit_test/TotalCalculateTable.json new file mode 100644 index 0000000..fce3d01 --- /dev/null +++ b/backend/unit_test/TotalCalculateTable.json @@ -0,0 +1,202 @@ +[ + { + "question": "架空输电线路本体工程的金额是多少?", + "answer": "金额是55105688268.5176010132" + }, + { + "question": "价差预备费的金额是多少?", + "answer": "金额是22731130869.6655998230" + }, + { + "question": "工程静态投资的金额是多少?", + "answer": "金额是715035853336.3909912109" + }, + { + "question": "工程动态投资的金额是多少?", + "answer": "金额是776282009093.5660400391" + }, + { + "question": "其中:工程建设检测费的金额是多少?", + "answer": "金额是185575370.1463980079" + }, + { + "question": "工程静态投资的金额是多少?", + "answer": "金额是715035853336.3909912109" + }, + { + "question": "建设期贷款利息的金额是多少?", + "answer": "金额是38515024887.5095977783" + }, + { + "question": "特殊项目的金额是多少?", + "answer": "金额是0E-10" + }, + { + "question": "动态费用的金额是多少?", + "answer": "金额是61246155757.1752014160" + }, + { + "question": "动态费用的金额是多少?", + "answer": "金额是61246155757.1752014160" + }, + { + "question": "小计的金额是多少?", + "answer": "金额是458257942570.3129882812" + }, + { + "question": "其他费用的金额是多少?", + "answer": "金额是210942912572.8689880371" + }, + { + "question": "基本预备费的金额是多少?", + "answer": "金额是14020310849.7332000732" + }, + { + "question": "其中:水土保持监测及验收费的金额是多少?", + "answer": "金额是0E-10" + }, + { + "question": "其中:工程建设检测费的金额是多少?", + "answer": "金额是185575370.1463980079" + }, + { + "question": "其中:特种设备安全监测费的金额是多少?", + "answer": "金额是0E-10" + }, + { + "question": "工程静态投资的金额是多少?", + "answer": "金额是715035853336.3909912109" + }, + { + "question": "其中:水土保持监测及验收费的金额是多少?", + "answer": "金额是0E-10" + }, + { + "question": "架空输电线路本体工程的金额是多少?", + "answer": "金额是55105688268.5176010132" + }, + { + "question": "基本预备费的金额是多少?", + "answer": "金额是14020310849.7332000732" + }, + { + "question": "其中:水土保持监测及验收费的金额是多少?", + "answer": "金额是0E-10" + }, + { + "question": "小计的金额是多少?", + "answer": "金额是458257942570.3129882812" + }, + { + "question": "编制基准期价差的金额是多少?", + "answer": "金额是29246752707.1180000305" + }, + { + "question": "其中:水土保持监测及验收费的金额是多少?", + "answer": "金额是0E-10" + }, + { + "question": "小计的金额是多少?", + "answer": "金额是458257942570.3129882812" + }, + { + "question": "其他费用的金额是多少?", + "answer": "金额是210942912572.8689880371" + }, + { + "question": "特殊项目的金额是多少?", + "answer": "金额是0E-10" + }, + { + "question": "编制基准期价差的金额是多少?", + "answer": "金额是29246752707.1180000305" + }, + { + "question": "特殊项目的金额是多少?", + "answer": "金额是0E-10" + }, + { + "question": "小计的金额是多少?", + "answer": "金额是458257942570.3129882812" + }, + { + "question": "工程动态投资的金额是多少?", + "answer": "金额是776282009093.5660400391" + }, + { + "question": "其中:建设场地征用及清理费的金额是多少?", + "answer": "金额是16831284.2287110016" + }, + { + "question": "其中:可抵扣增值税额的金额是多少?", + "answer": "金额是20069645492.2888984680" + }, + { + "question": "小计的金额是多少?", + "answer": "金额是458257942570.3129882812" + }, + { + "question": "动态费用的金额是多少?", + "answer": "金额是61246155757.1752014160" + }, + { + "question": "建设期贷款利息的金额是多少?", + "answer": "金额是38515024887.5095977783" + }, + { + "question": "工程静态投资的金额是多少?", + "answer": "金额是715035853336.3909912109" + }, + { + "question": "其中:建设场地征用及清理费的金额是多少?", + "answer": "金额是16831284.2287110016" + }, + { + "question": "建设期贷款利息的金额是多少?", + "answer": "金额是38515024887.5095977783" + }, + { + "question": "工程动态投资的金额是多少?", + "answer": "金额是776282009093.5660400391" + }, + { + "question": "架空输电线路本体工程的金额是多少?", + "answer": "金额是55105688268.5176010132" + }, + { + "question": "其中:工程建设检测费的金额是多少?", + "answer": "金额是185575370.1463980079" + }, + { + "question": "其中:水土保持监测及验收费的金额是多少?", + "answer": "金额是0E-10" + }, + { + "question": "工程动态投资的金额是多少?", + "answer": "金额是776282009093.5660400391" + }, + { + "question": "其中:可抵扣增值税额的金额是多少?", + "answer": "金额是20069645492.2888984680" + }, + { + "question": "价差预备费的金额是多少?", + "answer": "金额是22731130869.6655998230" + }, + { + "question": "一般线路本体工程的金额是多少?", + "answer": "金额是55105688268.5176010132" + }, + { + "question": "其中:工程建设检测费的金额是多少?", + "answer": "金额是185575370.1463980079" + }, + { + "question": "基本预备费的金额是多少?", + "answer": "金额是14020310849.7332000732" + }, + { + "question": "设备购置费的金额是多少?", + "answer": "金额是2567934636.3574500084" + } +] \ No newline at end of file diff --git a/backend/unit_test/corr_test.py b/backend/unit_test/corr_test.py new file mode 100644 index 0000000..d97e902 --- /dev/null +++ b/backend/unit_test/corr_test.py @@ -0,0 +1,118 @@ +import json +from dotenv import load_dotenv +import asyncio +import nest_asyncio +nest_asyncio.apply() +from llama_index.core.prompts import ( + ChatMessage, + ChatPromptTemplate, + MessageRole +) + +DEFAULT_SYSTEM_TEMPLATE = """ +您是一个问答聊天机器人的专业评估系统。 + +您将获得以下信息: + +- 用户查询, +- 生成的回答, + +也可能提供一个参考答案作为评估的依据。 + +您的任务是判断生成回答的相关性和正确性。 +输出一个代表全面评估的单一分数。 +您必须在一行中仅返回该分数。 +不要以其他任何格式返回答案。 +在单独的一行提供给定分数的理由。 + +请遵循以下评分指南: + +- 您的分数必须在1到5之间,其中1是最差,5是最好的。 +-如果生成的回答与用户查询不相关,您应该给出1分。 +-如果生成的回答相关但包含错误,您应该给出2到3分之间的分数。 +-如果生成的回答相关且完全正确,您应该给出4到5分之间的分数。 +示例响应: +4.0 +生成的回答与参考答案的指标完全相同,但不够精炼。 + +""" + +DEFAULT_USER_TEMPLATE = """ +## User Query +{query} + +## Reference Answer +{reference_answer} + +## Generated Answer +{generated_answer} +""" + +DEFAULT_EVAL_TEMPLATE = ChatPromptTemplate( + message_templates=[ + ChatMessage(role=MessageRole.SYSTEM, content=DEFAULT_SYSTEM_TEMPLATE), + ChatMessage(role=MessageRole.USER, content=DEFAULT_USER_TEMPLATE), + ] +) + +from app.api.routers.models import ChatData, Message +from llama_index.core.chat_engine.types import BaseChatEngine, NodeWithScore +from llama_index.core.vector_stores.types import MetadataFilter, MetadataFilters +from llama_index.core.evaluation import CorrectnessEvaluator +from app.engine import get_chat_engine +from app.api.routers.chat import generate_filters +from app.engine.index import get_index +from app.observability import init_observability +from app.settings import init_settings + + +load_dotenv() + + +init_settings() +init_observability() + +index = get_index() + +# 初始化聊天引擎和评估器 +chat_engine = get_chat_engine() +corr_evaluator_qwen = CorrectnessEvaluator() + +# 加载本地问题回答文件 +file_path = 'D:/LLM_model/text2sql/zjdataai-app-test/backend/unit_test/test.json' +output_file_path = file_path.replace('.json', '_test.json') + +with open(file_path, 'r', encoding='utf-8') as f: + data = json.load(f) + +# 异步函数用于评估查询 +async def evaluate_query(question, answer, index, output_file): + response = await chat_engine.astream_chat(question) + content_str = str(response.sources[0]) + + result = corr_evaluator_qwen.evaluate( + query=question, + response=content_str, + reference=answer, + ) + + result_dict = { + "编号": index, + "问题": question, + "答案": answer, + "回答": result.response, + "得分(0~5)": result.score, + "评价": result.feedback + } + + with open(output_file, 'a', encoding='utf-8') as f: + f.write(json.dumps(result_dict, ensure_ascii=False, indent=4)) + f.write(',') + +# 主异步函数 +async def main(): + for index, item in enumerate(data, start=1): + await evaluate_query(item['question'], item['answer'], index, output_file_path) + +# 运行主协程 +asyncio.run(main()) \ No newline at end of file diff --git a/backend/unit_test/test.json b/backend/unit_test/test.json new file mode 100644 index 0000000..61684d3 --- /dev/null +++ b/backend/unit_test/test.json @@ -0,0 +1,10 @@ +[ + { + "question": "人工费的费率是多少?", + "answer": "费率是100.0000000000" + }, + { + "question": "临时设施费的费率是多少?", + "answer": "费率是6.3500000000" + } +] \ No newline at end of file diff --git a/backend/unit_test/test_test.json b/backend/unit_test/test_test.json new file mode 100644 index 0000000..e30b4fb --- /dev/null +++ b/backend/unit_test/test_test.json @@ -0,0 +1,18 @@ +{ + "编号": 1, + "问题": "人工费的费率是多少?", + "答案": "费率是100.0000000000", + "实际回答": "人工费的费率是100.0。", + "得分": 4.5, + "评价": "生成的答案与参考答案一致,只是表达方式略有不同,但完全正确且相关。" +} +******************** +{ + "编号": 2, + "问题": "临时设施费的费率是多少?", + "答案": "费率是6.3500000000", + "实际回答": "在新的上下文中,临时设施费的计算应当基于取费定额人工费和取费定额机械费,但当前费率被设置为0.0,这意味着需要重新确认或调整费率。在没有具体费率的情况下,不能直接给出确定的费率值。如果需要计算临时设施费,应根据实际的取费定额人工费和取费定额机械费进行计算。参考之前的6.35%的费率可能是一个起点,但请注意,这需要根据项目的具体情况和最新的费用标准进行调整。", + "得分": 1.0, + "评价": "生成的答案与用户查询不相关,用户询问的是临时设施费的费率,而生成的答案提供的是一个关于如何计算临时设施费的解释,且提到了一个不相关的0.0费率,这与用户的问题不符。同时,即使提到了6.35%的费率,也没有明确指出这就是用户想要的答案,反而强调了需要根据项目具体情况调整,这增加了用户的困惑。" +} +********************