diff --git a/kg_lab_6.13/chains_lab.py b/kg_lab_6.13/chains_lab.py new file mode 100644 index 0000000..18a6ad9 --- /dev/null +++ b/kg_lab_6.13/chains_lab.py @@ -0,0 +1,229 @@ +from langchain_openai import ChatOpenAI +from langchain_core.output_parsers import StrOutputParser +from langchain_core.prompts import ChatPromptTemplate +from langchain_core.prompts.prompt import PromptTemplate +from langchain_core.output_parsers import JsonOutputParser + +qwen_llm = ChatOpenAI( + openai_api_base="https://api.siliconflow.cn/v1", + model_name="Qwen/Qwen2.5-72B-Instruct", + # sk-muuqautpcyuowjtgfecbnivqodlhzydtfslqkmwbknawejsx + openai_api_key="sk-bbeamiumkouptsrueilgufqqyuumelcsivxwjbdugqwsqhwj", + temperature=0.1 +) + +deep_v3 = ChatOpenAI( + openai_api_base="https://api.siliconflow.cn/v1", + model_name="deepseek-ai/DeepSeek-V3", + # sk-muuqautpcyuowjtgfecbnivqodlhzydtfslqkmwbknawejsx + openai_api_key="sk-bbeamiumkouptsrueilgufqqyuumelcsivxwjbdugqwsqhwj", + temperature=0.1 +) + +def Problem_rewrite(): + PromptTemplate1 = """ + 请根据用户的输入内容,替换其中内容: + + 【用户输入】: + {query} + + 【检索内容】: + {retriever} + + 【举例】: + 用户输入:塔材装材费是多少? + 检索内容:角钢塔_塔材装材费_元 + 得到的结果:【角钢塔_塔材装材费_元】是多少? + + 【要求】: + - 不允许输出任何解释、标点符号或额外内容,仅在原输入上进行替换 + - 替换后的内容要加上【】 + """ + + Prompt = ChatPromptTemplate.from_template(PromptTemplate1) + + Chain = Prompt | deep_v3 | StrOutputParser() + # Chain = Prompt | llm | StrOutputParser() + + return Chain + +def question_answer(): + PromptTemplate1 = """ + 请根据用户的输入内容,和检索到的信息,回答问题: + + 【用户输入】: + {query} + + 【实际检索目标】: + {retriever_keywords} + + 【检索内容】: + {retriever_info} + + 【要求】: + - 不允许输出任何解释、标点符号或额外内容 + - 要选找到和实际检索目标最接近的检索内容,直接读取相关信息进行解答,不做任何运算 + - 检索到的信息不一定有用,如果和问题毫无相关性,则回答不会 + """ + + Prompt = ChatPromptTemplate.from_template(PromptTemplate1) + + Chain = Prompt | deep_v3 | StrOutputParser() + # Chain = Prompt | llm | StrOutputParser() + + return Chain + + +def question_answer_calculation(): + PromptTemplate1 = """ + 请根据用户的实际检索目标查到的内容,基于用户输入和计算公式回答问题: + + 【用户输入】: + {query} + + 【实际检索目标】: + {retriever_keywords} + + 【计算公式】: + {calculation} + + 【检索内容】: + {retriever_info} + + 【要求】: + - 不允许输出任何解释、标点符号或额外内容 + - 要选找到和实际检索目标最接近的检索内容,直接读取相关信息进行解答,不做任何运算 + - 检索到的信息不一定有用,如果和问题毫无相关性,则回答不会 + """ + + Prompt = ChatPromptTemplate.from_template(PromptTemplate1) + + Chain = Prompt | deep_v3 | StrOutputParser() + # Chain = Prompt | llm | StrOutputParser() + + return Chain + + +"""neo4j""" + +from langchain_community.graphs import Neo4jGraph + + + +graph = Neo4jGraph( + url="bolt://172.20.0.145:7687", + username="neo4j", + password="password", +) + +graph.refresh_schema() + + +from langchain.prompts import ( + PromptTemplate, + SystemMessagePromptTemplate, + HumanMessagePromptTemplate, + ChatPromptTemplate, +) + +cypher_generation_template = """ +# 任务: +为 Neo4j 图数据库生成 Cypher 查询。 + +# 说明: +仅使用架构中提供的关系类型和属性。 不得使用架构中未提供的关系类型或属性。 + +# 架构: +{schema} + +# 注意: +不得在回答中包含任何解释或道歉。 +不得回答任何不要求构造 Cypher 查询的问题。 +回答中不得包含除生成的 Cypher 查询以外的任何文本。 +请确保查询中关系的方向正确,并正确为实体和关系设置别名。 +在查询中使用 WITH 为后续语句设置别名(例如,WITH v as visit, c.billing_amount as billing_amount)。 +如果需要进行数字除法运算,请确保对分母进行非零过滤。 + +# 注意 +在查询关键字时,不能使用MATCH (n:PropertyNode),要用最原始的MATCH (n) +在查询中分析缺失属性时,必须使用 IS NULL 或 IS NOT NULL。 +不得在查询中返回嵌套属性。 +不得在查询中包含 "GROUP BY" 语句。 +请确保为所有后续语句使用 WITH 设置别名(例如,WITH v as visit, c.billing_amount as billing_amount)。 +如果需要进行数字除法运算,请确保对分母进行非零过滤。 + +# 示例: + +1. +输入: +查找一下【工程数据/安装工程/安装/架空输电线路本体工程/基础工程】的【定额】下的【YX2-1/YX2-2/YX2-3/YX2-4/YX2-5/YX2-6/YX2-7】 +输出: +MATCH (root:ProjectDivisionItem [name: '架空输电线路本体工程'])-[:HAS_CHILD]->(base:ProjectDivisionItem [name: '基础工程']) +MATCH path = (base)-[:HAS_CHILD]->(child)-[:HAS_COMPONENT*1..]->(component) +WHERE ANY(prop IN keys(component) WHERE toString(component[prop]) =~ 'YX2-[1-7]') +RETURN component + +2. +输入: +查找一下【工程数据/安装工程/安装/架空输电线路本体工程/杆塔工程/杆塔组立/铁塔、钢管杆组立】的【主材】下的【角钢】 +输出: +MATCH (root:ProjectDivisionItem [name: '架空输电线路本体工程'])-[:HAS_CHILD]->(base1:ProjectDivisionItem [name: '杆塔工程'])-[:HAS_CHILD]->(base2:ProjectDivisionItem [name: '杆塔组立'])-[:HAS_CHILD]->(base3:ProjectDivisionItem [name: '铁塔、钢管杆组立']) +MATCH path = (base3)-[:HAS_COMPONENT*1..]->(component) +WHERE ANY(prop IN keys(component) WHERE toString(component[prop]) CONTAINS '角钢') +RETURN component + +3. +输入: +查找一下【架空输电线路本体工程/架线工程/导地线架设】和【架空输电线路本体工程/架线工程/导地线跨越架设】的【主材】下的【高导电率】 +输出: +MATCH (root:ProjectDivisionItem [name: '架空输电线路本体工程']) +-[:HAS_CHILD]->(base1:ProjectDivisionItem [name: '架线工程'])-[:HAS_CHILD]->(base:ProjectDivisionItem) +WHERE base.name IN ['导地线架设', '导地线跨越架设'] +MATCH path = (base)-[:HAS_COMPONENT*1..]->(component) +WHERE ANY(prop IN keys(component) WHERE toString(component[prop]) CONTAINS '高导电率') +RETURN component + + +问题: +{question} +""" + +cypher_generation_prompt = PromptTemplate( + input_variables=["schema", "question"], template=cypher_generation_template +) + +qa_generation_template = """你是一个助手,根据 Neo4j Cypher 查询的结果生成可读的回答。查询结果部分包含根据用户的自然语言问题生成的 Cypher 查询结果。提供的信息是权威的;你必须始终使用这些信息来构建回答,不得使用内部知识来质疑或更正这些信息。确保回答听起来像是对问题的直接回应。 + +用户提出了以下问题: +{question} + +运行了一个 Cypher 查询,生成了以下结果: +{context} + +如果提供的信息是空的,就说明你不知道答案。 +空的信息看起来是这样的:[] + +如果查询结果不为空,你必须提供一个回答。 + +如果有查询结果数据,绝不能说你没有正确的信息。如果用户提问时需要显示所有相关查询结果,确保你显示所有相关结果。你必须始终假设提供的查询结果与问题相关。回答时只能基于提供的查询结果构建答案。 + +""" + +qa_generation_prompt = PromptTemplate( + input_variables=["context", "question"], template=qa_generation_template +) + +from langchain.chains import GraphCypherQAChain + +booway_cypher_chain = GraphCypherQAChain.from_llm( + allow_dangerous_requests=True, + cypher_llm=deep_v3, # 用于生成Cypher查询的LLM + qa_llm=deep_v3, # 用于根据Cypher查询结果生成答案的LLM + graph=graph, + verbose=True, + qa_prompt=qa_generation_prompt, + cypher_prompt=cypher_generation_prompt, + validate_cypher=True, + top_k=100, + return_intermediate_steps=True +) \ No newline at end of file diff --git a/kg_lab_6.13/data/data.json b/kg_lab_6.13/data/data.json new file mode 100644 index 0000000..b0f90a6 --- /dev/null +++ b/kg_lab_6.13/data/data.json @@ -0,0 +1,1021 @@ +[ + { + "指标名称": "测试1", + "指标描述": "xxx", + "code": "xxxxxxxx" + }, + { + "指标名称": "测试2", + "指标描述": "xxx", + "code": "xxxxxxxx" + }, + { + "指标名称": "电压等级", + "指标描述": { + "指标映射": ["电压等级"], + "映射规则": "1" + }, + "code": "" + }, + { + "指标名称": "工程编码", + "指标描述": { + "指标映射": ["工程编号"], + "映射规则": "1" + }, + "code": "" + }, + { + "指标名称": "工程名称", + "指标描述": { + "指标映射": ["工程名称"], + "映射规则": "1" + }, + "code": "" + }, + { + "指标名称": "工程时间", + "指标描述": { + "指标映射": ["新建时间"], + "映射规则": "1" + }, + "code": "" + }, + { + "指标名称": "线路曲折系数", + "指标描述": { + "指标映射": ["工程参数_曲折系数"], + "映射规则": "1" + }, + "code": "" + }, + { + "指标名称": "线路长度合计_折单", + "指标描述": { + "指标映射": ["折单回总长度"], + "映射规则": "1" + }, + "code": "" + }, + { + "指标名称": "路径长度_单回路长度", + "指标描述": { + "指标映射": ["单回路"], + "映射规则": "1" + }, + "code": "" + }, + { + "指标名称": "路径长度_双回路长度", + "指标描述": { + "指标映射": ["双回路"], + "映射规则": "1" + }, + "code": "" + }, + { + "指标名称": "路径长度_三回路长度", + "指标描述": { + "指标映射": ["三回路"], + "映射规则": "1" + }, + "code": "" + }, + { + "指标名称": "路径长度_四回路长度", + "指标描述": { + "指标映射": ["四回路"], + "映射规则": "1" + }, + "code": "" + }, + { + "指标名称": "杆塔总基数", + "指标描述": "查找一下【工程数据/安装工程/安装/架空输电线路本体工程/基础工程】的【定额】下的【YX2-1/YX2-2/YX2-3/YX2-4/YX2-5/YX2-6/YX2-7】", + "code": "" + }, + { + "指标名称": "角钢塔_塔基数", + "指标描述": { + "指标映射": ["角钢塔基数"], + "映射规则": "1" + }, + "code": "" + }, + { + "指标名称": "角钢塔_塔材量", + "指标描述": "查找一下【工程数据/安装工程/安装/架空输电线路本体工程/杆塔工程/杆塔组立/铁塔、钢管杆组立】的【主材】下的【角钢】", + "code": "" + }, + { + "指标名称": "角钢塔_其中:高强钢塔材量", + "指标描述": "查找一下【工程数据/安装工程/安装/架空输电线路本体工程/杆塔工程/杆塔组立/铁塔、钢管杆组立】的【主材】下的【角钢、高强】", + "code": "" + }, + { + "指标名称": "角钢塔_塔材装材费", + "指标描述": { + "指标映射": ["角钢塔_塔材装材费_元"], + "映射规则": "/10000" + }, + "code": "" + }, + { + "指标名称": "角钢塔_塔材装材费_元", + "指标描述": "查找一下【工程数据/安装工程/安装/架空输电线路本体工程/杆塔工程/杆塔组立/铁塔、钢管杆组立】的【主材】下的【角钢】", + "code": "" + }, + { + "指标名称": "角钢塔_其中:高强钢塔材费用", + "指标描述": { + "指标映射": ["角钢塔_其中:高强钢塔材费用_元"], + "映射规则": "/10000" + }, + "code": "" + }, + { + "指标名称": "角钢塔_其中:高强钢塔材费用_元", + "指标描述": "查找一下【工程数据/安装工程/安装/架空输电线路本体工程/杆塔工程/杆塔组立/铁塔、钢管杆组立】的【主材】下的【角钢、高强】", + "code": "" + }, + { + "指标名称": "钢管塔_塔基数", + "指标描述": { + "指标映射": ["钢管杆基数"], + "映射规则": "1" + }, + "code": "" + }, + { + "指标名称": "钢管塔_塔材量", + "指标描述": "查找一下【工程数据/安装工程/安装/架空输电线路本体工程/杆塔工程/杆塔组立/铁塔、钢管杆组立】的【主材】下的【钢管塔】", + "code": "" + }, + { + "指标名称": "钢管塔_钢管价格", + "指标描述": { + "指标映射": ["钢管塔_钢管价格_元"], + "映射规则": "/10000" + }, + "code": "" + }, + { + "指标名称": "钢管塔_钢管价格_元", + "指标描述": "查找一下【工程数据/安装工程/安装/架空输电线路本体工程/杆塔工程/杆塔组立/铁塔、钢管杆组立】的【主材】下的【钢管塔】", + "code": "" + }, + { + "指标名称": "钢管杆_塔基数", + "指标描述": { + "指标映射": ["钢管杆"], + "映射规则": "1" + }, + "code": "" + }, + { + "指标名称": "钢管杆_塔材量", + "指标描述": "查找一下【工程数据/安装工程/安装/架空输电线路本体工程/杆塔工程/杆塔组立/铁塔、钢管杆组立】的【主材】下的【钢管杆】", + "code": "" + }, + { + "指标名称": "钢管杆_钢管价格", + "指标描述": { + "指标映射": ["钢管杆_钢管价格_元"], + "映射规则": "/10000" + }, + "code": "" + }, + { + "指标名称": "钢管杆_钢管价格_元", + "指标描述": "查找一下【工程数据/安装工程/安装/架空输电线路本体工程/杆塔工程/杆塔组立/铁塔、钢管杆组立】的【主材】下的【钢管杆】", + "code": "" + }, + { + "指标名称": "水泥杆基数", + "指标描述": { + "指标映射": ["混凝土杆基数"], + "映射规则": "1" + }, + "code": "" + }, + { + "指标名称": "直线塔基数", + "指标描述": { + "指标映射": ["直线塔基数", "直线杆基数"], + "映射规则": "A+B" + }, + "code": "" + }, + { + "指标名称": "耐张转角塔基数", + "指标描述": { + "指标映射": ["耐张塔基数", "耐张杆基数"], + "映射规则": "A+B" + }, + "code": "" + }, + { + "指标名称": "海拔", + "指标描述": { + "指标映射": ["工程概况信息_海拔高度"], + "映射规则": "1" + }, + "code": "" + }, + { + "指标名称": "导线及线材_分裂数", + "指标描述": { + "指标映射": ["YX5-67","YX5-68","YX5-69","YX5-78","YX5-79","YX5-59","YX5-60","YX5-61","YX5-62","YX5-63","YX5-64","YX5-65","YX5-66","YX5-74","YX5-75","YX5-76","YX5-77","YX5-52","YX5-53","YX5-54","YX5-55","YX5-56","YX5-57","YX5-58","YX5-70","YX5-71","YX5-72","YX5-73","YX5-14","YX5-15","YX5-16","YX5-17","YX5-43","YX5-44","YX5-45","YX5-46","YX5-47","YX5-48","YX5-49","YX5-50","YX5-51","YX5-10","YX5-11","YX5-12","YX5-13","YX5-38","YX5-39","YX5-40","YX5-41","YX5-42","YX5-8","YX5-9"], + "映射规则": "| 资源识别规则 | 指标值 |\n|-------|-------|\n| YX5-67~69、YX5-78~79 | 8 |\n| YX5-59~66、YX5-74~77 | 6 |\n| YX5-52~58、YX5-70~73 | 4 |\n| YX5-14~17、YX5-43~51 | 2 |\n| YX5-10~13、YX5-38~42、YX5-8~9 | 1 |" + }, + "code": "" + }, + { + "指标名称": "导线及线材_单根导线面积", + "指标描述": "查找一下【工程数据/安装工程/安装/架空输电线路本体工程/架线工程/导地线架设@@工程数据/安装工程/安装/架空输电线路本体工程/架线工程/导地线跨越架设】的【主材】下的【高导电率】", + "code": "" + }, + { + "指标名称": "导线及线材_导线量", + "指标描述": { + "指标映射": ["气象条件_设计风速#导则??"], + "映射规则": "1" + }, + "code": "" + }, + { + "指标名称": "导线及线材_其中:节能导线量", + "指标描述": { + "指标映射": ["气象条件_覆冰厚度#导则?"], + "映射规则": "1" + }, + "code": "" + }, + { + "指标名称": "导线及线材_导线装材费", + "指标描述": { + "指标映射": ["导线及线材_导线装材费_元"], + "映射规则": "/10000" + }, + "code": "" + }, + { + "指标名称": "导线及线材_导线装材费_元", + "指标描述": "查找一下【工程数据/安装工程/安装/架空输电线路本体工程/架线工程/导地线架设@@工程数据/安装工程/安装/架空输电线路本体工程/架线工程/导地线跨越架设】的【主材】下的【线】", + "code": "" + }, + { + "指标名称": "导线及线材_其中:节能导线费用", + "指标描述": { + "指标映射": ["导线及线材_其中:节能导线费用_元"], + "映射规则": "/10000" + }, + "code": "" + }, + { + "指标名称": "导线及线材_其中:节能导线费用_元", + "指标描述": "查找一下【工程数据/安装工程/安装/架空输电线路本体工程/架线工程/导地线架设@@工程数据/安装工程/安装/架空输电线路本体工程/架线工程/导地线跨越架设】的【主材】下的【高导电率】", + "code": "" + }, + { + "指标名称": "导线及线材_导线类型", + "指标描述": "查找一下【工程数据/安装工程/安装/架空输电线路本体工程/架线工程/导地线架设@@工程数据/安装工程/安装/架空输电线路本体工程/架线工程/导地线跨越架设】的【主材】下的【| 资源识别规则 | 指标值 |\n|-------|-------|\n| 钢芯铝绞线 | 钢芯铝绞线 |\n| 铝包钢芯铝绞线 | 铝包钢芯铝绞线 |\n| 中强度铝合金绞线 | 中强度铝合金绞线 |\n| 铝合金芯铝绞线 | 铝合金芯铝绞线 |\n| 铝合金芯高导电率铝绞线 | 铝合金芯高导电率铝绞线 |\n| 钢芯高导电率铝绞线 | 钢芯高导电率铝绞线 |\n| 特高强度钢芯铝合金绞线 | 特高强度钢芯铝合金绞线 |\n| 扩径导线 | 扩径导线 |\n| 耐热导线 | 耐热导线 |\n| 碳纤维导线 | 碳纤维导线 |】", + "code": "" + }, + { + "指标名称": "设计风速", + "指标描述": { + "指标映射": ["气象条件_设计风速#导则?"], + "映射规则": "1" + }, + "code": "" + }, + { + "指标名称": "覆冰厚度", + "指标描述": { + "指标映射": ["气象条件_覆冰厚度#导则?"], + "映射规则": "1" + }, + "code": "" + }, + { + "指标名称": "地形分布_平地", + "指标描述": { + "指标映射": ["平地"], + "映射规则": "1" + }, + "code": "" + }, + { + "指标名称": "地形分布_丘陵", + "指标描述": { + "指标映射": ["丘陵"], + "映射规则": "1" + }, + "code": "" + }, + { + "指标名称": "地形分布_河网", + "指标描述": { + "指标映射": ["河网"], + "映射规则": "1" + }, + "code": "" + }, + { + "指标名称": "地形分布_泥沼", + "指标描述": { + "指标映射": ["泥泽"], + "映射规则": "1" + }, + "code": "" + }, + { + "指标名称": "地形分布_山地", + "指标描述": { + "指标映射": ["山地"], + "映射规则": "1" + }, + "code": "" + }, + { + "指标名称": "地形分布_高山", + "指标描述": { + "指标映射": ["高山"], + "映射规则": "1" + }, + "code": "" + }, + { + "指标名称": "地形分布_沙漠", + "指标描述": { + "指标映射": ["沙漠"], + "映射规则": "1" + }, + "code": "" + }, + { + "指标名称": "地形分布_峻岭", + "指标描述": { + "指标映射": ["峻岭"], + "映射规则": "1" + }, + "code": "" + }, + { + "指标名称": "地质条件_普通土", + "指标描述": { + "指标映射": ["普通土比例"], + "映射规则": "1" + }, + "code": "" + }, + { + "指标名称": "地质条件_坚土", + "指标描述": { + "指标映射": ["坚土比例"], + "映射规则": "1" + }, + "code": "" + }, + { + "指标名称": "地质条件_松砂石", + "指标描述": { + "指标映射": ["松砂石比例"], + "映射规则": "1" + }, + "code": "" + }, + { + "指标名称": "地质条件_水坑", + "指标描述": { + "指标映射": ["水坑比例"], + "映射规则": "1" + }, + "code": "" + }, + { + "指标名称": "地质条件_泥水坑", + "指标描述": { + "指标映射": ["泥水坑比例"], + "映射规则": "1" + }, + "code": "" + }, + { + "指标名称": "地质条件_流沙坑", + "指标描述": { + "指标映射": ["流砂坑比例"], + "映射规则": "1" + }, + "code": "" + }, + { + "指标名称": "地质条件_岩石爆破", + "指标描述": { + "指标映射": ["岩石#爆破?比例"], + "映射规则": "1" + }, + "code": "" + }, + { + "指标名称": "地质条件_岩石人工", + "指标描述": { + "指标映射": ["岩石#人凿?比例"], + "映射规则": "1" + }, + "code": "" + }, + { + "指标名称": "土石方总量", + "指标描述": { + "指标映射": ["基坑土石方量", "接地土石方量", "排水沟土石方量", "护坡挡土墙排洪沟土石方量"], + "映射规则": "A+B+C+D" + }, + "code": "" + }, + { + "指标名称": "土石方量_基坑", + "指标描述": { + "指标映射": ["基坑土石方量"], + "映射规则": "1" + }, + "code": "" + }, + { + "指标名称": "土石方量_接地", + "指标描述": { + "指标映射": ["接地土石方量"], + "映射规则": "1" + }, + "code": "" + }, + { + "指标名称": "土石方量_基面", + "指标描述": { + "指标映射": ["尖峰及施工基面土石方量"], + "映射规则": "1" + }, + "code": "" + }, + { + "指标名称": "各类基础数量占总塔基数比例_台阶式", + "指标描述": { + "指标映射": ["台阶式基础基数", "台阶式基础基数", "板式基础基数", "插入式基础基数", "掏挖基础基数", "岩石嵌固基础基数", "锚杆基础基数", "灌注桩基础基数", "人工挖孔桩基础基数", "其他基础基数"], + "映射规则": "A/(B+C+D+E+F+G+H+I+J)*100" + }, + "code": "" + }, + { + "指标名称": "各类基础数量占总塔基数比例_板式", + "指标描述": { + "指标映射": ["板式基础基数", "台阶式基础基数", "板式基础基数", "插入式基础基数", "掏挖基础基数", "岩石嵌固基础基数", "锚杆基础基数", "灌注桩基础基数", "人工挖孔桩基础基数", "其他基础基数"], + "映射规则": "A/(B+C+D+E+F+G+H+I+J)*100" + }, + "code": "" + }, + { + "指标名称": "各类基础数量占总塔基数比例_插入式", + "指标描述": { + "指标映射": ["插入式基础基数", "台阶式基础基数", "板式基础基数", "插入式基础基数", "掏挖基础基数", "岩石嵌固基础基数", "锚杆基础基数", "灌注桩基础基数", "人工挖孔桩基础基数", "其他基础基数"], + "映射规则": "A/(B+C+D+E+F+G+H+I+J)*100" + }, + "code": "" + }, + { + "指标名称": "各类基础数量占总塔基数比例_掏挖", + "指标描述": { + "指标映射": ["掏挖基础基数", "台阶式基础基数", "板式基础基数", "插入式基础基数", "掏挖基础基数", "岩石嵌固基础基数", "锚杆基础基数", "灌注桩基础基数", "人工挖孔桩基础基数", "其他基础基数"], + "映射规则": "A/(B+C+D+E+F+G+H+I+J)*100" + }, + "code": "" + }, + { + "指标名称": "各类基础数量占总塔基数比例_岩石嵌固", + "指标描述": { + "指标映射": ["岩石嵌固基础基数", "台阶式基础基数", "板式基础基数", "插入式基础基数", "掏挖基础基数", "岩石嵌固基础基数", "锚杆基础基数", "灌注桩基础基数", "人工挖孔桩基础基数", "其他基础基数"], + "映射规则": "A/(B+C+D+E+F+G+H+I+J)*100" + }, + "code": "" + }, + { + "指标名称": "各类基础数量占总塔基数比例_锚杆", + "指标描述": { + "指标映射": ["锚杆基础基数", "台阶式基础基数", "板式基础基数", "插入式基础基数", "掏挖基础基数", "岩石嵌固基础基数", "锚杆基础基数", "灌注桩基础基数", "人工挖孔桩基础基数", "其他基础基数"], + "映射规则": "A/(B+C+D+E+F+G+H+I+J)*100" + }, + "code": "" + }, + { + "指标名称": "各类基础数量占总塔基数比例_灌注桩", + "指标描述": { + "指标映射": ["灌注桩基础基数", "台阶式基础基数", "板式基础基数", "插入式基础基数", "掏挖基础基数", "岩石嵌固基础基数", "锚杆基础基数", "灌注桩基础基数", "人工挖孔桩基础基数", "其他基础基数"], + "映射规则": "A/(B+C+D+E+F+G+H+I+J)*100" + }, + "code": "" + }, + { + "指标名称": "各类基础数量占总塔基数比例_人工挖孔桩", + "指标描述": { + "指标映射": ["人工挖孔桩基础基数", "台阶式基础基数", "板式基础基数", "插入式基础基数", "掏挖基础基数", "岩石嵌固基础基数", "锚杆基础基数", "灌注桩基础基数", "人工挖孔桩基础基数", "其他基础基数"], + "映射规则": "A/(B+C+D+E+F+G+H+I+J)*100" + }, + "code": "" + }, + { + "指标名称": "各类基础数量占总塔基数比例_其他", + "指标描述": { + "指标映射": ["其他基础基数", "台阶式基础基数", "板式基础基数", "插入式基础基数", "掏挖基础基数", "岩石嵌固基础基数", "锚杆基础基数", "灌注桩基础基数", "人工挖孔桩基础基数", "其他基础基数"], + "映射规则": "A/(B+C+D+E+F+G+H+I+J)*100" + }, + "code": "" + }, + { + "指标名称": "台阶式基础基数", + "指标描述": { + "指标映射": ["阶梯式"], + "映射规则": "1" + }, + "code": "" + }, + { + "指标名称": "板式基础基数", + "指标描述": { + "指标映射": ["大板式"], + "映射规则": "1" + }, + "code": "" + }, + { + "指标名称": "插入式基础基数", + "指标描述": { + "指标映射": ["插入式"], + "映射规则": "1" + }, + "code": "" + }, + { + "指标名称": "掏挖基础基数", + "指标描述": { + "指标映射": ["掏挖式"], + "映射规则": "1" + }, + "code": "" + }, + { + "指标名称": "岩石嵌固基础基数", + "指标描述": { + "指标映射": ["岩石"], + "映射规则": "1" + }, + "code": "" + }, + { + "指标名称": "锚杆基础基数", + "指标描述": { + "指标映射": ["锚杆"], + "映射规则": "1" + }, + "code": "" + }, + { + "指标名称": "灌注桩基础基数", + "指标描述": { + "指标映射": ["其中:灌注桩"], + "映射规则": "1" + }, + "code": "" + }, + { + "指标名称": "人工挖孔桩基础基数", + "指标描述": { + "指标映射": ["人工挖孔"], + "映射规则": "1" + }, + "code": "" + }, + { + "指标名称": "其他基础基数", + "指标描述": { + "指标映射": ["其他基础型式#预规?+钢管桩+预制+桩基础"], + "映射规则": "1" + }, + "code": "" + }, + { + "指标名称": "基础混凝土总量", + "指标描述": { + "指标映射": ["现浇混凝土用量", "预制混凝土用量"], + "映射规则": "A+B" + }, + "code": "" + }, + { + "指标名称": "灌注桩基础混凝土量", + "指标描述": { + "指标映射": ["其中:灌注桩用量量"], + "映射规则": "1" + }, + "code": "" + }, + { + "指标名称": "现浇基础混凝土量", + "指标描述": { + "指标映射": ["其中:现浇基础现浇混凝土量"], + "映射规则": "1" + }, + "code": "" + }, + { + "指标名称": "挖孔基础混凝土量", + "指标描述": { + "指标映射": ["其中:挖孔基础现浇混凝土量"], + "映射规则": "1" + }, + "code": "" + }, + { + "指标名称": "基础护壁混凝土用量", + "指标描述": { + "指标映射": ["其中:基础护壁用量"], + "映射规则": "1" + }, + "code": "" + }, + { + "指标名称": "预制混凝土用量", + "指标描述": { + "指标映射": ["预制混凝土用量"], + "映射规则": "1" + }, + "code": "" + }, + { + "指标名称": "基础钢材量", + "指标描述": "查找一下【工程数据/安装工程/安装/架空输电线路本体工程/基础工程/基础砌筑】的【主材】下的【圆钢】", + "code": "" + }, + { + "指标名称": "基础钢材价格", + "指标描述": "查找一下【工程数据/安装工程/安装/架空输电线路本体工程/基础工程/基础砌筑】的【主材】下的【圆钢】", + "code": "" + }, + { + "指标名称": "本体费用合计", + "指标描述": { + "指标映射": ["本体费用合计_元"], + "映射规则": "/10000" + }, + "code": "" + }, + { + "指标名称": "本体工程人工费", + "指标描述": { + "指标映射": ["本体工程人工费_调试_元", "本体工程人工费_本体_元"], + "映射规则": "(A+B)/10000" + }, + "code": "" + }, + { + "指标名称": "本体工程机械费", + "指标描述": { + "指标映射": ["本体工程机械费_本体_元", "本体工程机械费_调试_元"], + "映射规则": "(A+B)/10000" + }, + "code": "" + }, + { + "指标名称": "基础工程费用", + "指标描述": { + "指标映射": ["基础工程费用_元"], + "映射规则": "/10000" + }, + "code": "" + }, + { + "指标名称": "杆塔工程费用", + "指标描述": { + "指标映射": ["杆塔工程费用_元"], + "映射规则": "/10000" + }, + "code": "" + }, + { + "指标名称": "接地工程费用", + "指标描述": { + "指标映射": ["接地工程费用_元"], + "映射规则": "/10000" + }, + "code": "" + }, + { + "指标名称": "架线工程费用", + "指标描述": { + "指标映射": ["架线工程费用_元"], + "映射规则": "/10000" + }, + "code": "" + }, + { + "指标名称": "附件工程费用", + "指标描述": { + "指标映射": ["附件工程费用_元"], + "映射规则": "/10000" + }, + "code": "" + }, + { + "指标名称": "辅助工程费用", + "指标描述": { + "指标映射": ["辅助工程费用_元","辅助工程费用_调试_元"], + "映射规则": "(A+B)/10000" + }, + "code": "" + }, + { + "指标名称": "辅助设施工程", + "指标描述": { + "指标映射": ["辅助设施工程_元"], + "映射规则": "/10000" + }, + "code": "" + }, + { + "指标名称": "其他费用合计", + "指标描述": { + "指标映射": ["其他费用合计_元"], + "映射规则": "/10000" + }, + "code": "" + }, + { + "指标名称": "建场费合计", + "指标描述": { + "指标映射": ["建场费合计_元"], + "映射规则": "/10000" + }, + "code": "" + }, + { + "指标名称": "项目建设管理费合计", + "指标描述": { + "指标映射": ["项目建设管理费合计_元"], + "映射规则": "/10000" + }, + "code": "" + }, + { + "指标名称": "其中:工程监理费", + "指标描述": { + "指标映射": ["其中:工程监理费_元"], + "映射规则": "/10000" + }, + "code": "" + }, + { + "指标名称": "项目建设技术服务费合计", + "指标描述": { + "指标映射": ["项目建设技术服务费合计_元"], + "映射规则": "/10000" + }, + "code": "" + }, + { + "指标名称": "其中:项目前期工作费", + "指标描述": { + "指标映射": ["其中:项目前期工作费_元"], + "映射规则": "/10000" + }, + "code": "" + }, + { + "指标名称": "其中:勘察费", + "指标描述": { + "指标映射": ["其中:勘察费_元"], + "映射规则": "/10000" + }, + "code": "" + }, + { + "指标名称": "其中:设计费", + "指标描述": { + "指标映射": ["其中:设计费_元"], + "映射规则": "/10000" + }, + "code": "" + }, + { + "指标名称": "其中:工程建设检测费", + "指标描述": { + "指标映射": ["其中:工程建设检测费_元"], + "映射规则": "/10000" + }, + "code": "" + }, + { + "指标名称": "生产准备费", + "指标描述": { + "指标映射": ["生产准备费_元"], + "映射规则": "/10000" + }, + "code": "" + }, + { + "指标名称": "其中:安全文明施工费", + "指标描述": { + "指标映射": ["其中:安全文明施工费_线路_元", "其中:安全文明施工费_调试_元"], + "映射规则": "(A+B)/10000" + }, + "code": "" + }, + { + "指标名称": "基本预备费", + "指标描述": { + "指标映射": ["生产准备费_元"], + "映射规则": "/10000" + }, + "code": "" + }, + { + "指标名称": "静态投资", + "指标描述": { + "指标映射": ["静态投资_元"], + "映射规则": "/10000" + }, + "code": "" + }, + { + "指标名称": "建设期利息", + "指标描述": { + "指标映射": ["建设期利息_元"], + "映射规则": "/10000" + }, + "code": "" + }, + { + "指标名称": "动态投资", + "指标描述": { + "指标映射": ["动态投资_元"], + "映射规则": "/10000" + }, + "code": "" + }, + { + "指标名称": "增值税抵扣税额", + "指标描述": { + "指标映射": ["增值税抵扣税额_元"], + "映射规则": "/10000" + }, + "code": "" + }, + { + "指标名称": "本体费用合计_元", + "指标描述": "@工程费用.架空输电线路本体工程.合计费", + "code": "" + }, + { + "指标名称": "本体工程人工费_本体_元", + "指标描述": "查找一下【工程数据/安装工程/安装/架空输电线路本体工程】的【项目划分费用】下的【人工费】", + "code": "" + }, + { + "指标名称": "本体工程人工费_调试_元", + "指标描述": "查找一下【工程数据/安装工程/安装/架空输电线路本体工程】的【项目划分费用】下的【人工费】", + "code": "" + }, + { + "指标名称": "本体工程机械费_本体_元", + "指标描述": "查找一下【工程数据/安装工程/安装/架空输电线路本体工程】的【项目划分费用】下的【施工机械使用费】", + "code": "" + }, + { + "指标名称": "本体工程机械费_调试_元", + "指标描述": "查找一下【工程数据/安装工程/安装/架空输电线路本体工程】的【项目划分费用】下的【施工机械使用费】", + "code": "" + }, + { + "指标名称": "基础工程费用_元", + "指标描述": "查找一下【工程数据/安装工程/安装/架空输电线路本体工程/基础工程】的【项目划分费用】下的【合计】", + "code": "" + }, + { + "指标名称": "杆塔工程费用_元", + "指标描述": "查找一下【工程数据/安装工程/安装/架空输电线路本体工程/杆塔工程】的【项目划分费用】下的【合计】", + "code": "" + }, + { + "指标名称": "接地工程费用_元", + "指标描述": "查找一下【工程数据/安装工程/安装/架空输电线路本体工程/接地工程】的【项目划分费用】下的【合计】", + "code": "" + }, + { + "指标名称": "架线工程费用_元", + "指标描述": "查找一下【工程数据/安装工程/安装/架空输电线路本体工程/架线工程】的【项目划分费用】下的【合计】", + "code": "" + }, + { + "指标名称": "附件工程费用_元", + "指标描述": "查找一下【工程数据/安装工程/安装/架空输电线路本体工程/附件安装工程】的【项目划分费用】下的【合计】", + "code": "" + }, + { + "指标名称": "辅助工程费用_元", + "指标描述": "查找一下【工程数据/安装工程/安装/架空输电线路本体工程/辅助工程】的【项目划分费用】下的【合计】", + "code": "" + }, + { + "指标名称": "辅助工程费用_调试_元", + "指标描述": "查找一下【工程数据/安装工程/安装/架空输电线路本体工程/辅助工程】的【项目划分费用】下的【合计】", + "code": "" + }, + { + "指标名称": "辅助设施工程_元", + "指标描述": "@其他费用.辅助设施工程.合计费", + "code": "" + }, + { + "指标名称": "其他费用合计_元", + "指标描述": "@工程费用.其他费用.合计费", + "code": "" + }, + { + "指标名称": "建场费合计_元", + "指标描述": "@其他费用.建设场地征用及清理费", + "code": "" + }, + { + "指标名称": "项目建设管理费合计_元", + "指标描述": "@其他费用.项目建设管理费", + "code": "" + }, + { + "指标名称": "其中:工程监理费_元", + "指标描述": "@其他费用.工程监理费", + "code": "" + }, + { + "指标名称": "项目建设技术服务费合计_元", + "指标描述": "@其他费用.项目建设技术服务费", + "code": "" + }, + { + "指标名称": "其中:项目前期工作费_元", + "指标描述": "@其他费用.项目前期工作费", + "code": "" + }, + { + "指标名称": "其中:勘察费_元", + "指标描述": "@其他费用.勘察费", + "code": "" + }, + { + "指标名称": "其中:设计费_元", + "指标描述": "@其他费用.设计费", + "code": "" + }, + { + "指标名称": "其中:工程建设检测费_元", + "指标描述": "@其他费用.工程建设检测费", + "code": "" + }, + { + "指标名称": "生产准备费_元", + "指标描述": "@其他费用.生产准备费", + "code": "" + }, + { + "指标名称": "其中:安全文明施工费_线路_元", + "指标描述": "查找一下【工程数据/安装工程/安装/架空输电线路本体工程】的【项目划分费用】下的【安全文明施工费】", + "code": "" + }, + { + "指标名称": "其中:安全文明施工费_调试_元", + "指标描述": "查找一下【工程数据/安装工程/安装/架空输电线路本体工程】的【项目划分费用】下的【安全文明施工费】", + "code": "" + }, + { + "指标名称": "基本预备费_元", + "指标描述": "@工程费用.基本预备费.合计费", + "code": "" + }, + { + "指标名称": "静态投资_元", + "指标描述": "@工程费用.工程动态投资(一~七项合计).合计费", + "code": "" + }, + { + "指标名称": "建设期利息_元", + "指标描述": "@工程费用.建设期贷款利息.合计费", + "code": "" + }, + { + "指标名称": "动态投资_元", + "指标描述": "@工程费用.工程动态投资(一~八项合计).合计费", + "code": "" + }, + { + "指标名称": "增值税抵扣税额_元", + "指标描述": "@工程费用.其中:可抵扣增值税额.合计费", + "code": "" + } + ] diff --git a/kg_lab_6.13/data/data.txt b/kg_lab_6.13/data/data.txt new file mode 100644 index 0000000..be9e9fb --- /dev/null +++ b/kg_lab_6.13/data/data.txt @@ -0,0 +1,145 @@ +测试1 +测试2 +电压等级 +工程编码 +工程名称 +工程时间 +线路曲折系数 +线路长度合计_折单 +路径长度_单回路长度 +路径长度_双回路长度 +路径长度_三回路长度 +路径长度_四回路长度 +杆塔总基数 +角钢塔_塔基数 +角钢塔_塔材量 +角钢塔_其中:高强钢塔材量 +角钢塔_塔材装材费 +角钢塔_塔材装材费_元 +角钢塔_其中:高强钢塔材费用 +角钢塔_其中:高强钢塔材费用_元 +钢管塔_塔基数 +钢管塔_塔材量 +钢管塔_钢管价格 +钢管塔_钢管价格_元 +钢管杆_塔基数 +钢管杆_塔材量 +钢管杆_钢管价格 +钢管杆_钢管价格_元 +水泥杆基数 +直线塔基数 +耐张转角塔基数 +海拔 +导线及线材_分裂数 +导线及线材_单根导线面积 +导线及线材_导线量 +导线及线材_其中:节能导线量 +导线及线材_导线装材费 +导线及线材_导线装材费_元 +导线及线材_其中:节能导线费用 +导线及线材_其中:节能导线费用_元 +导线及线材_导线类型 +设计风速 +覆冰厚度 +地形分布_平地 +地形分布_丘陵 +地形分布_河网 +地形分布_泥沼 +地形分布_山地 +地形分布_高山 +地形分布_沙漠 +地形分布_峻岭 +地质条件_普通土 +地质条件_坚土 +地质条件_松砂石 +地质条件_水坑 +地质条件_泥水坑 +地质条件_流沙坑 +地质条件_岩石爆破 +地质条件_岩石人工 +土石方总量 +土石方量_基坑 +土石方量_接地 +土石方量_基面 +各类基础数量占总塔基数比例_台阶式 +各类基础数量占总塔基数比例_板式 +各类基础数量占总塔基数比例_插入式 +各类基础数量占总塔基数比例_掏挖 +各类基础数量占总塔基数比例_岩石嵌固 +各类基础数量占总塔基数比例_锚杆 +各类基础数量占总塔基数比例_灌注桩 +各类基础数量占总塔基数比例_人工挖孔桩 +各类基础数量占总塔基数比例_其他 +台阶式基础基数 +板式基础基数 +插入式基础基数 +掏挖基础基数 +岩石嵌固基础基数 +锚杆基础基数 +灌注桩基础基数 +人工挖孔桩基础基数 +其他基础基数 +基础混凝土总量 +灌注桩基础混凝土量 +现浇基础混凝土量 +挖孔基础混凝土量 +基础护壁混凝土用量 +预制混凝土用量 +基础钢材量 +基础钢材价格 +本体费用合计 +本体工程人工费 +本体工程机械费 +基础工程费用 +杆塔工程费用 +接地工程费用 +架线工程费用 +附件工程费用 +辅助工程费用 +辅助设施工程 +其他费用合计 +建场费合计 +项目建设管理费合计 +其中:工程监理费 +项目建设技术服务费合计 +其中:项目前期工作费 +其中:勘察费 +其中:设计费 +其中:工程建设检测费 +生产准备费 +其中:安全文明施工费 +基本预备费 +静态投资 +建设期利息 +动态投资 +增值税抵扣税额 +本体费用合计_元 +本体工程人工费_本体_元 +本体工程人工费_调试_元 +本体工程机械费_本体_元 +本体工程机械费_调试_元 +基础工程费用_元 +杆塔工程费用_元 +接地工程费用_元 +架线工程费用_元 +附件工程费用_元 +辅助工程费用_元 +辅助工程费用_调试_元 +辅助设施工程_元 +其他费用合计_元 +建场费合计_元 +项目建设管理费合计_元 +其中:工程监理费_元 +项目建设技术服务费合计_元 +其中:项目前期工作费_元 +其中:勘察费_元 +其中:设计费_元 +其中:工程建设检测费_元 +生产准备费_元 +其中:安全文明施工费_线路_元 +其中:安全文明施工费_调试_元 +基本预备费_元 +静态投资_元 +建设期利息_元 +动态投资_元 +增值税抵扣税额_元 diff --git a/kg_lab_6.13/data/data1.json b/kg_lab_6.13/data/data1.json new file mode 100644 index 0000000..c2228f5 --- /dev/null +++ b/kg_lab_6.13/data/data1.json @@ -0,0 +1,777 @@ +[ + { + "指标名称": "额定电压_高压侧", + "指标描述": "", + "code": "" + }, + { + "指标名称": "额定电压_中压侧", + "指标描述": "", + "code": "" + }, + { + "指标名称": "额定电压_低压侧", + "指标描述": "", + "code": "" + }, + { + "指标名称": "工程编码", + "指标描述": "", + "code": "" + }, + { + "指标名称": "工程名称", + "指标描述": "", + "code": "" + }, + { + "指标名称": "工程时间", + "指标描述": "", + "code": "" + }, + { + "指标名称": "建设性质", + "指标描述": "", + "code": "" + }, + { + "指标名称": "污秽等级", + "指标描述": "", + "code": "" + }, + { + "指标名称": "主变压器_本期台数_三相", + "指标描述": "", + "code": "" + }, + { + "指标名称": "主变压器_本期容量_三相", + "指标描述": "", + "code": "" + }, + { + "指标名称": "主变压器_单台容量_三相", + "指标描述": "", + "code": "" + }, + { + "指标名称": "主变压器_单价_元", + "指标描述": "查找一下【安装工程/主要生产工程/主变压器系统】的【设备单价】下的【变压器】", + "code": "" + }, + { + "指标名称": "主变压器_单价_万元", + "指标描述": "", + "code": "" + }, + { + "指标名称": "本期出线回数_高压侧", + "指标描述": "", + "code": "" + }, + { + "指标名称": "本期出线回数_高压侧", + "指标描述": "", + "code": "" + }, + { + "指标名称": "本期出线回数_高压侧", + "指标描述": "", + "code": "" + }, + { + "指标名称": "本期出线回数_中压侧", + "指标描述": "", + "code": "" + }, + { + "指标名称": "本期出线回数_低压侧", + "指标描述": "", + "code": "" + }, + { + "指标名称": "高压侧_配电装置型式", + "指标描述": "", + "code": "" + }, + { + "指标名称": "高压侧_断路器台数", + "指标描述": "", + "code": "" + }, + { + "指标名称": "高压侧_规划间隔", + "指标描述": "", + "code": "" + }, + { + "指标名称": "高压侧_预留间隔", + "指标描述": "", + "code": "" + }, + { + "指标名称": "中压侧_配电装置型式", + "指标描述": "", + "code": "" + }, + { + "指标名称": "中压侧_断路器台数", + "指标描述": "", + "code": "" + }, + { + "指标名称": "中压侧_规划间隔", + "指标描述": "", + "code": "" + }, + { + "指标名称": "中压侧_预留间隔", + "指标描述": "", + "code": "" + }, + { + "指标名称": "低压侧_配电装置型式", + "指标描述": "", + "code": "" + }, + { + "指标名称": "低压侧_断路器台数", + "指标描述": "", + "code": "" + }, + { + "指标名称": "接线型式_高压侧", + "指标描述": "", + "code": "" + }, + { + "指标名称": "接线型式_中压侧", + "指标描述": "", + "code": "" + }, + { + "指标名称": "接线型式_低压侧", + "指标描述": "", + "code": "" + }, + { + "指标名称": "高压电抗器_数量", + "指标描述": "", + "code": "" + }, + { + "指标名称": "高压电抗器_数量", + "指标描述": "", + "code": "" + }, + { + "指标名称": "高压电抗器_数量_台", + "指标描述": "查找一下【安装工程/主要生产工程/无功补偿/高压电抗器】的【定额】下的【建筑工程/主要生产工程/主要生产建筑/750kV继电器室/一般土建】", + "code": "" + }, + { + "指标名称": "高压电抗器_数量_组", + "指标描述": "查找一下【安装工程/主要生产工程/无功补偿/高压电抗器】的【定额】下的【GD2-55~56、YD2-70~80】", + "code": "" + }, + { + "指标名称": "高压电抗器_单组容量", + "指标描述": "查找一下【安装工程/主要生产工程/无功补偿/高压电抗器】的【定额】下的【| 资源识别规则 | 指标值 |\n|-------|-------|\n| GD2-55、GD2-57、GD2-59、YD2-68、YD2-70、YD2-72 | 90 |\n| GD2-56、GD2-58、GD2-60、YD2-69、YD2-71、YD2-73 | 180 |\n| GD2-62、YD2-75 | 300 |\n| GD2-63、GD2-65、YD2-76 | 600 |\n| GD2-64、YD2-77 | 480 |\n| GD2-66、YD2-79 | 720 |\n| GD2-67、YD2-80 | 960 |】", + "code": "" + }, + { + "指标名称": "高压电抗器_单台价格_元", + "指标描述": "查找一下【安装工程/主要生产工程/无功补偿/高压电抗器】的【设备单价】下的【电抗器】", + "code": "" + }, + { + "指标名称": "高压电抗器_单台价格_万元", + "指标描述": "", + "code": "" + }, + { + "指标名称": "低压电容器_数量", + "指标描述": "", + "code": "" + }, + { + "指标名称": "低压电容器_数量_台", + "指标描述": "查找一下【安装工程/主要生产工程/无功补偿/低压电容器】的【定额】下的【GD3-188~194、YD3-189】", + "code": "" + }, + { + "指标名称": "低压电容器_数量_组", + "指标描述": "查找一下【安装工程/主要生产工程/无功补偿/低压电容器】的【定额】下的【GD3-195~216、YD3-190~200】", + "code": "" + }, + { + "指标名称": "低压电容器_单组容量", + "指标描述": "", + "code": "" + }, + { + "指标名称": "低压电容器_价格", + "指标描述": "", + "code": "" + }, + { + "指标名称": "低压电容器_单台价格", + "指标描述": "查找一下【安装工程/主要生产工程/无功补偿/低压电容器】的【设备单价】下的【电容器】", + "code": "" + }, + { + "指标名称": "低压电抗器_数量", + "指标描述": "", + "code": "" + }, + { + "指标名称": "低压电抗器_数量_台", + "指标描述": "查找一下【安装工程/主要生产工程/无功补偿/低压电抗器】的【定额】下的【GD2-50~51、YD2-63~64】", + "code": "" + }, + { + "指标名称": "低压电抗器_数量_组", + "指标描述": "查找一下【安装工程/主要生产工程/无功补偿/低压电抗器】的【定额】下的【GD2-52~54、YD2-65~67】", + "code": "" + }, + { + "指标名称": "低压电抗器_单组容量", + "指标描述": "查找一下【安装工程/主要生产工程/无功补偿/低压电容器】的【定额】下的【| 资源识别规则 | 指标值 |\n|-------|-------|\n| GD2-52、YD2-65 | 6 |\n| GD2-53、YD2-66 | 20 |\n| GD2-54、YD2-67 | 60 |】", + "code": "" + }, + { + "指标名称": "低压电抗器_价格", + "指标描述": "", + "code": "" + }, + { + "指标名称": "低压电抗器_单台价格", + "指标描述": "查找一下【安装工程/主要生产工程/无功补偿/低压电抗器】的【主材】下的【电抗器】", + "code": "" + }, + { + "指标名称": "控制电缆_数量", + "指标描述": "查找一下【安装工程/主要生产工程/电缆及接地/全站电缆/控制电缆】的【主材】下的【控制电缆】", + "code": "" + }, + { + "指标名称": "控制电缆_平均单价", + "指标描述": "查找一下【安装工程/主要生产工程/电缆及接地/全站电缆/控制电缆】的【主材】下的【控制电缆】", + "code": "" + }, + { + "指标名称": "控制电缆_平均单价_km", + "指标描述": "查找一下【安装工程/主要生产工程/电缆及接地/全站电缆/控制电缆】的【主材】下的【控制电缆】", + "code": "" + }, + { + "指标名称": "1kV及以下电力电缆_数量", + "指标描述": "查找一下【安装工程/主要生产工程/电缆及接地/全站电缆/电力电缆】的【主材】下的【电力电缆】", + "code": "" + }, + { + "指标名称": "1kV及以下电力电缆_平均单价", + "指标描述": "", + "code": "" + }, + { + "指标名称": "电力电缆_平均单价_km", + "指标描述": "查找一下【安装工程/主要生产工程/电缆及接地/全站电缆/电力电缆】的【主材】下的【电力电缆】", + "code": "" + }, + { + "指标名称": "光缆_数量", + "指标描述": "查找一下【安装工程/主要生产工程/通信及远动系统/通信系统】的【主材】下的【光缆】", + "code": "" + }, + { + "指标名称": "主要接地材料", + "指标描述": "", + "code": "" + }, + { + "指标名称": "扁钢", + "指标描述": "查找一下【安装工程/主要生产工程/电缆及接地/全站接地】的【主材】下的【扁钢】", + "code": "" + }, + { + "指标名称": "铜排", + "指标描述": "查找一下【安装工程/主要生产工程/电缆及接地/全站接地】的【主材】下的【铜排】", + "code": "" + }, + { + "指标名称": "建筑面积_全站", + "指标描述": "", + "code": "" + }, + { + "指标名称": "建筑面积_主控(综合)楼", + "指标描述": "查找一下【建筑工程/主要生产工程/主要生产建筑/主控通信楼】的【定额】下的【GT3-22~38、GT4-10~11、GT4-14~19、GT4-9、YT9-56~64、YT9-67、YT9-72~73、YT9-75~87、YT9-90~92】", + "code": "" + }, + { + "指标名称": "主变及进出线钢构、支架_主变", + "指标描述": "查找一下【建筑工程/主要生产工程/配电装置建筑/主变压器系统】的【定额】下的【GT9-146~148、GT9-151~153、GT9-156~158、GT9-161~166、YT13-226~250】", + "code": "" + }, + { + "指标名称": "主变及进出线钢构、支架_高压侧", + "指标描述": "", + "code": "" + }, + { + "指标名称": "主变及进出线钢构架_高压侧", + "指标描述": "", + "code": "" + }, + { + "指标名称": "主变及进出线钢支架_高压侧", + "指标描述": "", + "code": "" + }, + { + "指标名称": "主变及进出线钢构、支架_中压侧", + "指标描述": "", + "code": "" + }, + { + "指标名称": "主变及进出线钢构架_中压侧", + "指标描述": "", + "code": "" + }, + { + "指标名称": "主变及进出线钢支架_中压侧", + "指标描述": "", + "code": "" + }, + { + "指标名称": "主变及进出线钢构、支架_低压侧", + "指标描述": "", + "code": "" + }, + { + "指标名称": "主变及进出线钢构架_低压侧", + "指标描述": "", + "code": "" + }, + { + "指标名称": "主变及进出线钢支架_低压侧", + "指标描述": "", + "code": "" + }, + { + "指标名称": "主变及进出线钢构、支架_镀锌钢管价格", + "指标描述": "查找一下【建筑工程/主要生产工程/配电装置建筑/主变压器系统/构支架及基础@@建筑工程/主要生产工程/配电装置建筑/1000kV构支架及设备基础/构架及基础@@建筑工程/主要生产工程/配电装置建筑/1000kV构支架及设备基础/支架及基础@@建筑工程/主要生产工程/配电装置建筑/750kV构支架及设备基础/构架及基础@@建筑工程/主要生产工程/配电装置建筑/750kV构支架及设备基础/支架及基础@@建筑工程/主要生产工程/配电装置建筑/500kV构支架及设备基础/构架及基础@@建筑工程/主要生产工程/配电装置建筑/500kV构支架及设备基础/支架及基础@@建筑工程/主要生产工程/配电装置建筑/330kV构支架及设备基础/构架及基础@@建筑工程/主要生产工程/配电装置建筑/330kV构支架及设备基础/支架及基础@@建筑工程/主要生产工程/配电装置建筑/220kV构支架及设备基础/构架及基础@@建筑工程/主要生产工程/配电装置建筑/220kV构支架及设备基础/支架及基础@@建筑工程/主要生产工程/配电装置建筑/110kV构支架及设备基础/构架及基础@@建筑工程/主要生产工程/配电装置建筑/110kV构支架及设备基础/支架及基础@@建筑工程/主要生产工程/配电装置建筑/66kV构支架及设备基础/构架及基础@@建筑工程/主要生产工程/配电装置建筑/66kV构支架及设备基础/支架及基础@@建筑工程/主要生产工程/配电装置建筑/35kV构支架及设备基础/构架及基础@@建筑工程/主要生产工程/配电装置建筑/35kV构支架及设备基础/支架及基础@@建筑工程/主要生产工程/配电装置建筑/10kV构支架及设备基础/构架及基础@@建筑工程/主要生产工程/配电装置建筑/10kV构支架及设备基础/支架及基础】的【人材机单价】下的【C01020146、C01020147、C16110101】", + "code": "" + }, + { + "指标名称": "主变及进出线钢构、支架_镀锌钢梁价格", + "指标描述": "查找一下【建筑工程/主要生产工程/配电装置建筑/主变压器系统/构支架及基础@@建筑工程/主要生产工程/配电装置建筑/1000kV构支架及设备基础/构架及基础@@建筑工程/主要生产工程/配电装置建筑/1000kV构支架及设备基础/支架及基础@@建筑工程/主要生产工程/配电装置建筑/750kV构支架及设备基础/构架及基础@@建筑工程/主要生产工程/配电装置建筑/750kV构支架及设备基础/支架及基础@@建筑工程/主要生产工程/配电装置建筑/500kV构支架及设备基础/构架及基础@@建筑工程/主要生产工程/配电装置建筑/500kV构支架及设备基础/支架及基础@@建筑工程/主要生产工程/配电装置建筑/330kV构支架及设备基础/构架及基础@@建筑工程/主要生产工程/配电装置建筑/330kV构支架及设备基础/支架及基础@@建筑工程/主要生产工程/配电装置建筑/220kV构支架及设备基础/构架及基础@@建筑工程/主要生产工程/配电装置建筑/220kV构支架及设备基础/支架及基础@@建筑工程/主要生产工程/配电装置建筑/110kV构支架及设备基础/构架及基础@@建筑工程/主要生产工程/配电装置建筑/110kV构支架及设备基础/支架及基础@@建筑工程/主要生产工程/配电装置建筑/66kV构支架及设备基础/构架及基础@@建筑工程/主要生产工程/配电装置建筑/66kV构支架及设备基础/支架及基础@@建筑工程/主要生产工程/配电装置建筑/35kV构支架及设备基础/构架及基础@@建筑工程/主要生产工程/配电装置建筑/35kV构支架及设备基础/支架及基础@@建筑工程/主要生产工程/配电装置建筑/10kV构支架及设备基础/构架及基础@@建筑工程/主要生产工程/配电装置建筑/10kV构支架及设备基础/支架及基础】的【人材机单价】下的【C01020125】", + "code": "" + }, + { + "指标名称": "主变及进出线基础混凝土量_主变", + "指标描述": "查找一下【建筑工程/主要生产工程/配电装置建筑/主变压器系统/构支架及基础@@建筑工程/主要生产工程/配电装置建筑/主变压器系统/主变压器设备基础】的【定额】下的【GT2-1、GT2-15~16、GT2-2~9、YT5-10~21、YT5-4~7、YT5~77-79、YT5-8、YT5-80~89、YT5-9】", + "code": "" + }, + { + "指标名称": "站区其他设备支架及基础_钢支架", + "指标描述": "查找一下【建筑工程/主要生产工程/配电装置建筑/1000kV高压电抗器系统/构支架及基础@@建筑工程/主要生产工程/配电装置建筑/750kV高压电抗器系统/构支架及基础@@建筑工程/主要生产工程/配电装置建筑/500kV高压电抗器系统/构支架及基础@@建筑工程/主要生产工程/配电装置建筑/330kV高压电抗器系统/构支架及基础@@建筑工程/主要生产工程/配电装置建筑/220kV高压电抗器系统/构支架及基础@@建筑工程/主要生产工程/配电装置建筑/110kV高压电抗器系统/构支架及基础@@建筑工程/主要生产工程/配电装置建筑/66kV高压电抗器系统/构支架及基础@@建筑工程/主要生产工程/配电装置建筑/35kV高压电抗器系统/构支架及基础@@建筑工程/主要生产工程/配电装置建筑/20kV高压电抗器系统/构支架及基础@@建筑工程/主要生产工程/配电装置建筑/10kV高压电抗器系统/构支架及基础@@建筑工程/主要生产工程/配电装置建筑/1000kV串联补偿系统/构支架及基础@@建筑工程/主要生产工程/配电装置建筑/1000kV串联补偿系统/设备支架及基础@@建筑工程/主要生产工程/配电装置建筑/750kV串联补偿系统/构支架及基础@@建筑工程/主要生产工程/配电装置建筑/750kV串联补偿系统/设备支架及基础@@建筑工程/主要生产工程/配电装置建筑/500kV串联补偿系统/构支架及基础@@建筑工程/主要生产工程/配电装置建筑/500kV串联补偿系统/设备支架及基础@@建筑工程/主要生产工程/配电装置建筑/330kV串联补偿系统/构支架及基础@@建筑工程/主要生产工程/配电装置建筑/330kV串联补偿系统/设备支架及基础@@建筑工程/主要生产工程/配电装置建筑/220kV串联补偿系统/构支架及基础@@建筑工程/主要生产工程/配电装置建筑/220kV串联补偿系统/设备支架及基础@@建筑工程/主要生产工程/配电装置建筑/110kV串联补偿系统/构支架及基础@@建筑工程/主要生产工程/配电装置建筑/110kV串联补偿系统/设备支架及基础@@建筑工程/主要生产工程/配电装置建筑/66kV串联补偿系统/构支架及基础@@建筑工程/主要生产工程/配电装置建筑/66kV串联补偿系统/设备支架及基础@@建筑工程/主要生产工程/配电装置建筑/35kV串联补偿系统/构支架及基础@@建筑工程/主要生产工程/配电装置建筑/35kV串联补偿系统/设备支架及基础@@建筑工程/主要生产工程/配电装置建筑/20kV串联补偿系统/构支架及基础@@建筑工程/主要生产工程/配电装置建筑/20kV串联补偿系统/设备支架及基础@@建筑工程/主要生产工程/配电装置建筑/10kV串联补偿系统/构支架及基础@@建筑工程/主要生产工程/配电装置建筑/10kV串联补偿系统/设备支架及基础@@建筑工程/主要生产工程/配电装置建筑/低压电容器@@建筑工程/主要生产工程/配电装置建筑/低压电抗器@@建筑工程/主要生产工程/配电装置建筑/静止无功补偿装置/构支架及基础@@建筑工程/主要生产工程/配电装置建筑/避雷针塔】的【定额】下的【GT9-146~148、GT9-151~153、GT9-156~158、GT9-161~168、YT13-226~250、YT13-252~253】", + "code": "" + }, + { + "指标名称": "站区其他设备支架及基础_混凝土基础", + "指标描述": "查找一下【建筑工程/主要生产工程/配电装置建筑/1000kV高压电抗器系统/构支架及基础@@建筑工程/主要生产工程/配电装置建筑/1000kV高压电抗器系统/高压电抗器设备基础@@建筑工程/主要生产工程/配电装置建筑/750kV高压电抗器系统/构支架及基础@@建筑工程/主要生产工程/配电装置建筑/750kV高压电抗器系统/高压电抗器设备基础@@建筑工程/主要生产工程/配电装置建筑/500kV高压电抗器系统/构支架及基础@@建筑工程/主要生产工程/配电装置建筑/500kV高压电抗器系统/高压电抗器设备基础@@建筑工程/主要生产工程/配电装置建筑/330kV高压电抗器系统/构支架及基础@@建筑工程/主要生产工程/配电装置建筑/330kV高压电抗器系统/高压电抗器设备基础@@建筑工程/主要生产工程/配电装置建筑/220kV高压电抗器系统/构支架及基础@@建筑工程/主要生产工程/配电装置建筑/220kV高压电抗器系统/高压电抗器设备基础@@建筑工程/主要生产工程/配电装置建筑/110kV高压电抗器系统/构支架及基础@@建筑工程/主要生产工程/配电装置建筑/110kV高压电抗器系统/高压电抗器设备基础@@建筑工程/主要生产工程/配电装置建筑/66kV高压电抗器系统/构支架及基础@@建筑工程/主要生产工程/配电装置建筑/66kV高压电抗器系统/高压电抗器设备基础@@建筑工程/主要生产工程/配电装置建筑/35kV高压电抗器系统/构支架及基础@@建筑工程/主要生产工程/配电装置建筑/35kV高压电抗器系统/高压电抗器设备基础@@建筑工程/主要生产工程/配电装置建筑/20kV高压电抗器系统/构支架及基础@@建筑工程/主要生产工程/配电装置建筑/20kV高压电抗器系统/高压电抗器设备基础@@建筑工程/主要生产工程/配电装置建筑/10kV高压电抗器系统/构支架及基础@@建筑工程/主要生产工程/配电装置建筑/10kV高压电抗器系统/高压电抗器设备基础@@建筑工程/主要生产工程/配电装置建筑/1000kV串联补偿系统/串联补偿设备平台基础@@建筑工程/主要生产工程/配电装置建筑/1000kV串联补偿系统/构支架及基础@@建筑工程/主要生产工程/配电装置建筑/1000kV串联补偿系统/设备支架及基础@@建筑工程/主要生产工程/配电装置建筑/750kV串联补偿系统/串联补偿设备平台基础@@建筑工程/主要生产工程/配电装置建筑/750kV串联补偿系统/构支架及基础@@建筑工程/主要生产工程/配电装置建筑/750kV串联补偿系统/设备支架及基础@@建筑工程/主要生产工程/配电装置建筑/500kV串联补偿系统/串联补偿设备平台基础@@建筑工程/主要生产工程/配电装置建筑/500kV串联补偿系统/构支架及基础@@建筑工程/主要生产工程/配电装置建筑/500kV串联补偿系统/设备支架及基础@@建筑工程/主要生产工程/配电装置建筑/330kV串联补偿系统/串联补偿设备平台基础@@建筑工程/主要生产工程/配电装置建筑/330kV串联补偿系统/构支架及基础@@建筑工程/主要生产工程/配电装置建筑/330kV串联补偿系统/设备支架及基础@@建筑工程/主要生产工程/配电装置建筑/220kV串联补偿系统/串联补偿设备平台基础@@建筑工程/主要生产工程/配电装置建筑/220kV串联补偿系统/构支架及基础@@建筑工程/主要生产工程/配电装置建筑/220kV串联补偿系统/设备支架及基础@@建筑工程/主要生产工程/配电装置建筑/110kV串联补偿系统/串联补偿设备平台基础@@建筑工程/主要生产工程/配电装置建筑/110kV串联补偿系统/构支架及基础@@建筑工程/主要生产工程/配电装置建筑/110kV串联补偿系统/设备支架及基础@@建筑工程/主要生产工程/配电装置建筑/66kV串联补偿系统/串联补偿设备平台基础@@建筑工程/主要生产工程/配电装置建筑/66kV串联补偿系统/构支架及基础@@建筑工程/主要生产工程/配电装置建筑/66kV串联补偿系统/设备支架及基础@@建筑工程/主要生产工程/配电装置建筑/35kV串联补偿系统/串联补偿设备平台基础@@建筑工程/主要生产工程/配电装置建筑/35kV串联补偿系统/构支架及基础@@建筑工程/主要生产工程/配电装置建筑/35kV串联补偿系统/设备支架及基础@@建筑工程/主要生产工程/配电装置建筑/20kV串联补偿系统/串联补偿设备平台基础@@建筑工程/主要生产工程/配电装置建筑/20kV串联补偿系统/构支架及基础@@建筑工程/主要生产工程/配电装置建筑/20kV串联补偿系统/设备支架及基础@@建筑工程/主要生产工程/配电装置建筑/10kV串联补偿系统/串联补偿设备平台基础@@建筑工程/主要生产工程/配电装置建筑/10kV串联补偿系统/构支架及基础@@建筑工程/主要生产工程/配电装置建筑/10kV串联补偿系统/设备支架及基础@@建筑工程/主要生产工程/配电装置建筑/低压电容器@@建筑工程/主要生产工程/配电装置建筑/低压电抗器@@建筑工程/主要生产工程/配电装置建筑/静止无功补偿装置/构支架及基础@@建筑工程/主要生产工程/配电装置建筑/静止无功补偿装置/静止无功补偿装置设备基础@@建筑工程/主要生产工程/配电装置建筑/站用变压器系统/站用变压器设备基础及油坑、卵石@@建筑工程/主要生产工程/配电装置建筑/避雷针塔】的【定额】下的【GT2-1、GT2-15~19、GT2-2~9、YT5-10~21、YT5-4~7、YT5-77~79、YT5-8、YT5-80~89、YT5-9】", + "code": "" + }, + { + "指标名称": "进站道路_长度", + "指标描述": "", + "code": "" + }, + { + "指标名称": "进站道路_费用", + "指标描述": "", + "code": "" + }, + { + "指标名称": "进站道路_费用_元", + "指标描述": "查找一下【建筑工程/与站址有关的单项工程/站外道路】的【项目划分费用】下的【合计】", + "code": "" + }, + { + "指标名称": "建筑工程费", + "指标描述": "", + "code": "" + }, + { + "指标名称": "建筑工程人工费", + "指标描述": "", + "code": "" + }, + { + "指标名称": "建筑工程机械费", + "指标描述": "", + "code": "" + }, + { + "指标名称": "主控综合楼建筑费用", + "指标描述": "", + "code": "" + }, + { + "指标名称": "全站配电装置建筑费用", + "指标描述": "", + "code": "" + }, + { + "指标名称": "场地平整土石方量", + "指标描述": "", + "code": "" + }, + { + "指标名称": "外运或外购土石方工程", + "指标描述": "", + "code": "" + }, + { + "指标名称": "场地平整费用", + "指标描述": "", + "code": "" + }, + { + "指标名称": "地基处理方法", + "指标描述": "查找一下【建筑工程/与站址有关的单项工程/地基处理】的【定额】下的【| 资源识别规则 | 指标值 |\n|-------|-------|\n| GD2-36、YT2-24~32、YT2-45~46 | 堆载预压 |\n| YT2-33~34 | 强夯法 |\n| GD2-32~33、YT2-37~39、YT2-47~48 | 注浆法 |\n| TD2-40~44 | 振冲法 |\n| GD2-25~30、YT3-100~104、YT3-71~99 | 挤密桩法 |\n| GD2-66、YD2-79 | 搅拌桩法 |\n| GD2-67、YD2-80 | 灌注法 |\n| GT2-20、GT2-23~24、GT2-37、YT3-1、YT3-10~19、YT3-2、YT3-20~29、YT3-3、YT3-30~39、YT3-4、YT3-40~49、YT3-5、YT3-50~57、YT3-6、YT3-65、YT3-7~9 | 打入桩 |\n| GT2-34~35 | 其他 |\n| GT2-38、YT2-1 | 素土换土垫层法 |\n| GT2-39、YT2-2 | 灰土换土垫层法 |\n| GD2-42~44、YT2-10、YT2-6~7 | 毛石混凝土换土垫层法 |\n| GD2-40~41、YT2-3~5 | 砂砾换土垫层法 |\n| YT2-11、YT2-8~9 | 粉煤灰及其他工业排渣换土垫层法 |】", + "code": "" + }, + { + "指标名称": "地基处理费用", + "指标描述": "", + "code": "" + }, + { + "指标名称": "挡土墙及护坡费用", + "指标描述": "", + "code": "" + }, + { + "指标名称": "站外水源费用", + "指标描述": "", + "code": "" + }, + { + "指标名称": "站外电源费用", + "指标描述": "", + "code": "" + }, + { + "指标名称": "设备购置费合计", + "指标描述": "", + "code": "" + }, + { + "指标名称": "安装工程费", + "指标描述": "", + "code": "" + }, + { + "指标名称": "安装工程人工费", + "指标描述": "", + "code": "" + }, + { + "指标名称": "安装工程机械费", + "指标描述": "", + "code": "" + }, + { + "指标名称": "其他费用", + "指标描述": "", + "code": "" + }, + { + "指标名称": "建场费合计", + "指标描述": "", + "code": "" + }, + { + "指标名称": "全站征地面积", + "指标描述": "", + "code": "" + }, + { + "指标名称": "围墙内征地面积", + "指标描述": "", + "code": "" + }, + { + "指标名称": "项目建设管理费", + "指标描述": "", + "code": "" + }, + { + "指标名称": "工程监理费", + "指标描述": "", + "code": "" + }, + { + "指标名称": "项目建设技术服务费", + "指标描述": "", + "code": "" + }, + { + "指标名称": "项目前期工作费", + "指标描述": "", + "code": "" + }, + { + "指标名称": "勘察费", + "指标描述": "", + "code": "" + }, + { + "指标名称": "设计费", + "指标描述": "", + "code": "" + }, + { + "指标名称": "工程建设检测费", + "指标描述": "", + "code": "" + }, + { + "指标名称": "生产准备费", + "指标描述": "", + "code": "" + }, + { + "指标名称": "大件运输措施费", + "指标描述": "", + "code": "" + }, + { + "指标名称": "安全文明施工费", + "指标描述": "", + "code": "" + }, + { + "指标名称": "基本预备费", + "指标描述": "", + "code": "" + }, + { + "指标名称": "静态投资", + "指标描述": "", + "code": "" + }, + { + "指标名称": "建设期贷款利息", + "指标描述": "", + "code": "" + }, + { + "指标名称": "动态投资", + "指标描述": "", + "code": "" + }, + { + "指标名称": "增值税抵扣税额", + "指标描述": "", + "code": "" + }, + { + "指标名称": "单位容量造价", + "指标描述": "", + "code": "" + }, + { + "指标名称": "建筑工程费_元", + "指标描述": "", + "code": "" + }, + { + "指标名称": "建筑工程人工费_元", + "指标描述": "查找一下【建筑工程】的【项目划分费用】下的【人工费】", + "code": "" + }, + { + "指标名称": "建筑工程机械费_元", + "指标描述": "查找一下【建筑工程】的【项目划分费用】下的【施工机械使用费】", + "code": "" + }, + { + "指标名称": "主控综合楼建筑费用_元", + "指标描述": "查找一下【建筑工程/主要生产工程/主要生产建筑/主控通信楼】的【项目划分费用】下的【合计】", + "code": "" + }, + { + "指标名称": "全站配电装置建筑费用_元", + "指标描述": "查找一下【建筑工程/主要生产工程/配电装置建筑】的【项目划分费用】下的【合计】", + "code": "" + }, + { + "指标名称": "场地平整费用_元", + "指标描述": "查找一下【建筑工程/辅助生产工程/站区性建筑/场地平整】的【项目划分费用】下的【合计】", + "code": "" + }, + { + "指标名称": "地基处理费用_元", + "指标描述": "查找一下【建筑工程/与站址有关的单项工程/地基处理】的【项目划分费用】下的【合计】", + "code": "" + }, + { + "指标名称": "挡土墙及护坡费用_元", + "指标描述": "查找一下【建筑工程/与站址有关的单项工程/站外道路/挡土墙@@建筑工程/与站址有关的单项工程/站外道路/护坡】的【项目划分费用】下的【合计】", + "code": "" + }, + { + "指标名称": "站外水源费用_元", + "指标描述": "查找一下【建筑工程/与站址有关的单项工程/站外水源】的【项目划分费用】下的【合计】", + "code": "" + }, + { + "指标名称": "站外电源费用_元", + "指标描述": "查找一下【安装工程/与站址有关的单项工程/站外电源】的【项目划分费用】下的【合计】", + "code": "" + }, + { + "指标名称": "设备购置费合计_元", + "指标描述": "", + "code": "" + }, + { + "指标名称": "安装工程费_元", + "指标描述": "", + "code": "" + }, + { + "指标名称": "安装工程人工费_元", + "指标描述": "", + "code": "" + }, + { + "指标名称": "安装工程人工费_安装_元", + "指标描述": "查找一下【安装工程】的【项目划分费用】下的【人工费】", + "code": "" + }, + { + "指标名称": "安装工程人工费_调试_元", + "指标描述": "查找一下【安装工程】的【项目划分费用】下的【人工费】", + "code": "" + }, + { + "指标名称": "安装工程机械费_元", + "指标描述": "", + "code": "" + }, + { + "指标名称": "安装工程机械费_安装_元", + "指标描述": "查找一下【安装工程】的【项目划分费用】下的【施工机械使用费】", + "code": "" + }, + { + "指标名称": "安装工程机械费_调试_元", + "指标描述": "查找一下【安装工程】的【项目划分费用】下的【施工机械使用费】", + "code": "" + }, + { + "指标名称": "其他费用_元", + "指标描述": "", + "code": "" + }, + { + "指标名称": "建场费合计_元", + "指标描述": "", + "code": "" + }, + { + "指标名称": "项目建设管理费_元", + "指标描述": "", + "code": "" + }, + { + "指标名称": "工程监理费_元", + "指标描述": "", + "code": "" + }, + { + "指标名称": "项目建设技术服务费_元", + "指标描述": "", + "code": "" + }, + { + "指标名称": "项目前期工作费_元", + "指标描述": "", + "code": "" + }, + { + "指标名称": "勘察费_元", + "指标描述": "", + "code": "" + }, + { + "指标名称": "设计费_元", + "指标描述": "", + "code": "" + }, + { + "指标名称": "工程建设检测费_元", + "指标描述": "", + "code": "" + }, + { + "指标名称": "生产准备费_元", + "指标描述": "", + "code": "" + }, + { + "指标名称": "大件运输措施费_元", + "指标描述": "", + "code": "" + }, + { + "指标名称": "安全文明施工费_元", + "指标描述": "", + "code": "" + }, + { + "指标名称": "安全文明施工费_建筑_元", + "指标描述": "查找一下【建筑工程】的【项目划分费用】下的【安全文明施工费】", + "code": "" + }, + { + "指标名称": "安全文明施工费_安装_元", + "指标描述": "查找一下【安装工程】的【项目划分费用】下的【安全文明施工费】", + "code": "" + }, + { + "指标名称": "安全文明施工费_调试_元", + "指标描述": "查找一下【安装工程】的【项目划分费用】下的【安全文明施工费】", + "code": "" + }, + { + "指标名称": "基本预备费_元", + "指标描述": "", + "code": "" + }, + { + "指标名称": "静态投资_元", + "指标描述": "", + "code": "" + }, + { + "指标名称": "建设期贷款利息_元", + "指标描述": "", + "code": "" + }, + { + "指标名称": "动态投资_元", + "指标描述": "", + "code": "" + }, + { + "指标名称": "增值税抵扣税额_元", + "指标描述": "", + "code": "" + } +] \ No newline at end of file diff --git a/kg_lab_6.13/data/faiss_data/data/index.faiss b/kg_lab_6.13/data/faiss_data/data/index.faiss new file mode 100644 index 0000000..da65df7 Binary files /dev/null and b/kg_lab_6.13/data/faiss_data/data/index.faiss differ diff --git a/kg_lab_6.13/data/faiss_data/data/index.pkl b/kg_lab_6.13/data/faiss_data/data/index.pkl new file mode 100644 index 0000000..41c8f17 Binary files /dev/null and b/kg_lab_6.13/data/faiss_data/data/index.pkl differ diff --git a/kg_lab_6.13/extraction_info.py b/kg_lab_6.13/extraction_info.py new file mode 100644 index 0000000..e69de29 diff --git a/kg_lab_6.13/main.py b/kg_lab_6.13/main.py new file mode 100644 index 0000000..7ff72de --- /dev/null +++ b/kg_lab_6.13/main.py @@ -0,0 +1,37 @@ +from chains_lab import Problem_rewrite + +problem_rewrite = Problem_rewrite() + +from vector_lab import intersection_of_three_lists + +# input_str1 = "杆塔总基数是多少?" +# input_str2 = "单回路长度是多少?" +# input_str3 = "计算一下角钢塔的塔材装材费" +# input_str4 = "计算一下土石方总量" +# input_str5 = "板式塔基的各类基础数量占总塔基数比例是多少?" +# input_str6 = "基础混凝土总量是多少" +# input_str7 = "计算一下本体工程机械费" +# ipout_str8 = "项目建设技术服务费合计" + +input_str = "项目建设技术服务费合计是多少?" +results = intersection_of_three_lists(input_str) + +retriever = intersection_of_three_lists(input_str)[0] + +print(f"输入:{input_str}") + +keywords = problem_rewrite.invoke({"query":input_str, "retriever":retriever}) + +print(f"输出:{keywords}") + + +import json + +with open('./data/data.json', 'r', encoding='utf-8') as file: + data = json.load(file) + +from utils import find_target_item, find_target_items, pre_mapping, pre_mapping2 + +input_neo4j = pre_mapping2(keywords, data) + +print(f"检索目标:{input_neo4j}") \ No newline at end of file diff --git a/kg_lab_6.13/pre.py b/kg_lab_6.13/pre.py new file mode 100644 index 0000000..6864fa9 --- /dev/null +++ b/kg_lab_6.13/pre.py @@ -0,0 +1,12 @@ +with open("./data/data.json", 'r', encoding='utf-8') as json_file: + data_list = json.load(json_file) + +with open("./data/data.txt", 'w', encoding='utf-8') as txt_file: + for item in data_list: + if "指标名称" in item: + txt_file.write(item["指标名称"] + '\n') + else: + txt_file.write("无指标名称字段\n") + +with open("./data/data.txt", 'r', encoding='utf-8') as file: + txt_list = [line.strip() for line in file] \ No newline at end of file diff --git a/kg_lab_6.13/utils.py b/kg_lab_6.13/utils.py new file mode 100644 index 0000000..60e1d8e --- /dev/null +++ b/kg_lab_6.13/utils.py @@ -0,0 +1,221 @@ +def Dictionary_content_mapping(input_str, data, key="指标名称"): + import re + + match = re.search(r'【(.*?)】', input_str) + + if match: + extracted = match.group(1) + else: + return None # 如果没有匹配到,提前返回 + + for i in range(len(data)): + if data[i].get(key) == extracted: + return data[i] + + return None + +def find_target_item(input_str, data): + result = [None, None] + temp = None + for item in data: + if isinstance(item["指标描述"], dict): + if item["指标描述"]["指标映射"][0] == input_str: + result[0] = item["指标描述"]["映射规则"] + temp = item["指标描述"]["指标映射"][0] + + for item in data: + if item["指标名称"] == temp: + result[1] = item['指标描述'] + return result + +def find_target_items(ele, input_str, data): + result = [None, ele] + for item in data: + if isinstance(item["指标描述"], dict): + if item["指标名称"] == input_str or item["指标描述"]["指标映射"][0] == input_str: + if len(item["指标描述"]["指标映射"]) == 1: + result[0] = item["指标描述"]["指标映射"][0] + return result + +def judge_exists(input_str, data): + for item in data: + if isinstance(item["指标描述"], dict): + if item["指标名称"] == input_str or item["指标描述"]["指标映射"][0] == input_str: + return True + return False + +def judge_str(ceshi, data): + for item in data: + if isinstance(item["指标描述"], str): + if item["指标名称"] == ceshi["指标描述"]["指标映射"][0]: + return True + return False + +def pre_mapping(keywords, data): + import re + + match = re.search(r'【(.*?)】', keywords) + + if match: + extracted = match.group(1) + + for i in range(len(data)): + if data[i]["指标名称"] == extracted: + ceshi = data[i] + break + + if isinstance(ceshi["指标描述"], str): + return ceshi["指标描述"] + + elif isinstance(ceshi["指标描述"], dict): + if ceshi["指标描述"]["映射规则"] == "1": + temp = ceshi["指标描述"]["指标映射"][0] + return f"模糊查找一下【{temp}】" + else: + if len(ceshi["指标描述"]["指标映射"]) == 1: + temp0, temp1 = find_target_item(ceshi["指标描述"]["指标映射"][0], data) + return f"{temp1},换算规则:【{temp0}】" + + elif len(ceshi["指标描述"]["指标映射"]) > 1: + + + result = [] + if judge_str(ceshi, data) == True: + for ele in ceshi["指标描述"]["指标映射"]: + for item in data: + if isinstance(item["指标描述"], str) and item["指标名称"] == ele: + temp1 = item["指标描述"] + temp2 = ceshi["指标描述"]["映射规则"] + result.append(f"{temp1},换算规则:【{temp2}】") + + else: + + for item in ceshi["指标描述"]["指标映射"]: + temp0, temp1 = find_target_items(ceshi["指标描述"]["映射规则"], item, data) + + if temp0 is None and temp1 is None: + pass + elif temp0 != None and temp1 is None: + if judge_exists(item, data): + temp1 = item + # temp0 = find_target_items(ceshi["指标描述"]["映射规则"], item, data) + result.append(f"模糊查找一下【{temp0}】,换算规则:【{temp1}】") + else: + continue + + elif temp0 != None and temp1 != None: + if judge_exists(item, data): + # temp0, temp1 = find_target_items(ceshi["指标描述"]["映射规则"], item, data) + result.append(f"模糊查找一下【{temp0}】,换算规则:【{temp1}】") + else: + continue + + return result + + +def extract_concrete_info(outputs): + import re + from typing import List + + """ + 从多个句子中提取第一个“【】”作为查找信息,最后一个“【】”作为换算规则, + 返回格式为:[合并的查找句子, 换算规则] + """ + prefixes = [] + suffix = '' + + for item in outputs: + matches = re.findall(r'【([^】]+)】', item) + if len(matches) >= 2: + prefixes.append(f"查找一下【{matches[0]}】") + # 假设所有换算规则一致,取第一个即可 + if not suffix: + suffix = f'换算规则:【{matches[-1]}】' + + if not prefixes or not suffix: + return [] + + return ['; '.join(prefixes), suffix] + + +def extract_query_prefix_list(input_list): + import re + """ + 输入一个字符串列表,提取每个字符串中符合格式的前缀内容(例如:'查找一下【样式】') + + 参数: + input_list (list[str]): 包含描述性语句的字符串列表 + + 返回: + list[str]: 提取出的前缀部分列表(如 '查找一下【大板式】') + """ + pattern = r'(查找一下【[^】]+】)' + return [re.match(pattern, text).group(1) for text in input_list if re.match(pattern, text)] + + + +def pre_mapping2(keywords, data): + import re + + # 提取关键字中中括号内的内容 + match = re.search(r'【(.*?)】', keywords) + if not match: + return "未找到匹配的关键字" + + extracted = match.group(1) + + # 查找对应的指标项 + ceshi = next((item for item in data if item["指标名称"] == extracted), None) + if not ceshi: + return "未找到对应的指标" + + desc = ceshi.get("指标描述") + + if isinstance(desc, str): + return f"测试:{desc}" + + elif isinstance(desc, dict): + mapping_rule = desc.get("映射规则") + mappings = desc.get("指标映射", []) + + # 单一映射规则为1时 + if mapping_rule == "1": + return f"模糊查找一下【{mappings[0]}】" + + # 仅有一个映射项 + if len(mappings) == 1: + temp0, temp1 = find_target_item(mappings[0], data) + if "【" in temp0: + return f"{temp1},换算规则:【{temp0}】" + else: + return f"查找一下【{temp1}】,换算规则:【{temp0}】" + + + # 多个映射项 + result = [] + if judge_str(ceshi, data): + for ele in mappings: + item = next((d for d in data if d["指标名称"] == ele and isinstance(d["指标描述"], str)), None) + if item: + result.append(f"{item['指标描述']},换算规则:【{mapping_rule}】") + else: + for item_name in mappings: + temp0, temp1 = find_target_items(mapping_rule, item_name, data) + + if temp0 is None and temp1 is None: + continue + + if judge_exists(item_name, data): + if temp1 is None: + temp1 = item_name + result.append(f"模糊查找一下【{temp0}】,换算规则:【{temp1}】") + + return result or "未匹配到有效的映射项" + + else: + return "不支持的指标描述格式" + + + + + \ No newline at end of file diff --git a/kg_lab_6.13/vector_lab.py b/kg_lab_6.13/vector_lab.py new file mode 100644 index 0000000..54ccd29 --- /dev/null +++ b/kg_lab_6.13/vector_lab.py @@ -0,0 +1,39 @@ +import os +from langchain_community.vectorstores import FAISS +from langchain_huggingface import HuggingFaceEmbeddings + +with open("./data/data.txt", 'r', encoding='utf-8') as file: + txt_list = [line.strip() for line in file] + +embedding_path = "/data/Z_LLM_data/Embed_data/bge-m3" +embeddings = HuggingFaceEmbeddings(model_name=embedding_path) + +faiss_archived = "./data/faiss_data/data" +vectorstore_txt_faiss = FAISS.from_texts(txt_list, embeddings) +vectorstore_txt_faiss.save_local(faiss_archived) + +retriever_txt_faiss1 = vectorstore_txt_faiss.as_retriever(search_kwargs={"k":3}) +retriever_txt_faiss2 = vectorstore_txt_faiss.as_retriever( + search_type="mmr", + search_kwargs={"k": 3, # 检索结果 + "fetch_k": 1, # 候选结果数量 + "lambda_mult": 0.5} # 平衡指数,1为相关性;0为多样性 +) +retriever_txt_faiss3 = vectorstore_txt_faiss.as_retriever( + search_type="similarity_score_threshold", + search_kwargs={"score_threshold": 0.5} +) + +def intersection_of_three_lists(input_str): + list1 = retriever_txt_faiss1.invoke(input_str) + list2 = retriever_txt_faiss2.invoke(input_str) + list3 = retriever_txt_faiss3.invoke(input_str) + + def _intersection_of_three_lists(retrieval_results): + return [doc.page_content for doc in retrieval_results] + + list11 = _intersection_of_three_lists(list1) + list22 = _intersection_of_three_lists(list2) + list33 = _intersection_of_three_lists(list3) + + return list(set(list11) & set(list22) & set(list33)) \ No newline at end of file