yq пре 3 месеци
родитељ
комит
70bd646610
4 измењених фајлова са 344 додато и 97 уклоњено
  1. 1 1
      prompt/prompt.py
  2. 342 95
      prompt/prompt_example.txt
  3. 1 1
      strategy_parse.py
  4. BIN
      template/demo.xlsx

+ 1 - 1
prompt/prompt.py

@@ -94,7 +94,7 @@ prompt_parse_flow = """
 {flow}
 ```
 流程描述说明:
-1、[满足条件: *] 为判断上一个节点的输出是否符合条件
+1、[A: B] 这种形式的结构代表需要进行分支条件判断,节点A的结果与被比较值B进行比较
 
 请把```括号内的流程描述的内容转换为python代码,流程中的各个节点参考给定的函数内容与函数与节点对应关系,并构造测试数据data,代码样式如下。
 

+ 342 - 95
prompt/prompt_example.txt

@@ -1,95 +1,342 @@
-示例1:
-规章制度内容:
-第五章  罚则第二十条 员工未经批准擅自休假、无正当理由超假或延长因公外出时间的,按旷工处理。第二十一条 员工开虚假证明休病假或不能提供医院证明材料的,其休假时间一律按旷工处理。经核实,员工提供虚假证明材料请病假的,视为严重违纪,单位有权单方解除劳动合同。
-问题和答案对:
-1、{"问题":"如果员工没有得到批准就休假,或者没有合理的理由就超假,会有什么后果?","答案":"员工未经批准擅自休假、无正当理由超假或延长因公外出时间的,按旷工处理。"}
-2、{"问题":"员工如果使用虚假的病假证明,公司会怎么处理?","答案":" 员工开虚假证明休病假或不能提供医院证明材料的,其休假时间一律按旷工处理。经核实,员工提供虚假证明材料请病假的,视为严重违纪,单位有权单方解除劳动合同。"}
-
-示例2:
-规章制度内容:
-第二十一条 车辆事故及损失处理。(一)驾驶员违反交通规则被罚款,一律不予报销。(二)若发生交通事故,应及时报告车辆管理部门,写出事故经过及损失情况报告。造成责任事故,须由驾驶员写出书面检查,并视情节进行赔偿,对责任人给予相应处理。赔偿比例系指扣除保险公司赔付后实际产生的车辆损失和赔偿金额。1.全责的赔偿 50%;扣发责任人日常绩效至事故处理完毕。2.主要责任的赔偿 40%;扣发责任人日常绩效的 50%至事故处理完毕。3.双方同责的赔偿 30%;扣发责任人日常绩效的 30%至事故处理完毕。4.次要责任的赔偿 20%;扣发责任人月考核工资的20%至事故处理完毕。(三)若对方负全责或意外事故,修车期间驾驶员不承担因修车给本行造成的间接损失;其余情况,修车时间内驾驶员应承担因修车造成的间接损失。
-问题和答案对:
-1、{"问题":"驾驶员违反交通规则被罚款怎么处理?","答案":"驾驶员违反交通规则被罚款,一律不予报销"}
-2、{"问题":"若发生交通事故应该怎么做?","答案":"若发生交通事故,应及时报告车辆管理部门,写出事故经过及损失情况报告。造成责任事故,须由驾驶员写出书面检查。"}
-3、{"问题":"使用公司车辆发生责任事故时的赔偿比例?","答案":"赔偿比例系指扣除保险公司赔付后实际产生的车辆损失和赔偿金额。1.全责的赔偿 50%;扣发责任人日常绩效至事故处理完毕。2.主要责任的赔偿 40%;扣发责任人日常绩效的 50%至事故处理完毕。3.双方同责的赔偿 30%;扣发责任人日常绩效的 30%至事故处理完毕。4.次要责任的赔偿 20%;扣发责任人月考核工资的20%至事故处理完毕。"}
-4、{"问题":"对方负全责或意外事驾驶员需要赔偿吗?","答案":"若对方负全责或意外事故,修车期间驾驶员不承担因修车给本行造成的间接损失;其余情况,修车时间内驾驶员应承担因修车造成的间接损失"}
-
-待处理的规章制度内容:
-"""
-第三章  车辆编制第八条 原则上配备的商务接待车不超过 2 辆,业务用车、机要通信车、应急保障车可视情况配备。第九条 根据业务发展规模和公司财务承受状况,公司车辆编制一年一定。第十条 以资抵债形成的车辆,原则上不得自用;如确需自用,在符合车辆编制标准的前提下,可按新购车辆管理的要求和程序报批。
-"""
-
-生成要求:
-1、输出格式要严格按照上面示例的格式。
-2、生成的问题要贴近实际人类的提问风格。
-3、生成的问题不能是固定的文本开头,或者是固定的模式提问。
-4、生成的问题要有很强的随机性。
-5、生成的问题要确保多样性。
-6、生成的问题要和"""内的规章制度内容相关。
-7、和问题相关的答案必须是"""内的规章制度内容。
-8、尽可能的生成多的问题。
-
-请根据示例、"""内的规章制度内容和8条生成要求的内容,生成问题和答案对。
-
-[2024-08-08 14:19:49,159] [INFO] [MainThread] [prompt.py] [func:parse_gen_ques_response_text line:105]
- 1、{"问题":"公司商务接待车一般配备几辆?","答案":"原则上配备的商务接待车不超过 2 辆"}
-2、{"问题":"公司车辆编制多久确定一次?","答案":"根据业务发展规模和公司财务承受状况,公司车辆编制一年一定"}
-3、{"问题":"以资抵债形成的车辆能否自用?","答案":"以资抵债形成的车辆,原则上不得自用;如确需自用,在符合车辆编制标准的前提下,可按新购车辆管理的要求和程序报批"}
-4、{"问题":"业务用车可以随意配备吗?","答案":"业务用车、机要通信车、应急保障车可视情况配备"}
-5、{"问题":"不符合车辆编制标准时,以资抵债形成的车辆能自用吗?","答案":"以资抵债形成的车辆,原则上不得自用;如确需自用,在符合车辆编制标准的前提下,可按新购车辆管理的要求和程序报批"}
-6、{"问题":"公司财务状况对车辆编制有影响吗?","答案":"根据业务发展规模和公司财务承受状况,公司车辆编制一年一定"}
-7、{"问题":"应急保障车是怎么配备的?","答案":"业务用车、机要通信车、应急保障车可视情况配备"}
-[2024-08-08 14:19:57,082] [INFO] [MainThread] [prompt.py] [func:parse_call_ans_response_text line:123]
- =====
-   - 👀 问题: 公司商务接待车一般配备几辆?
-   - 🌟 答案: 原则上配备的商务接待车不超过 2 辆,业务用车、机要通信车、应急保障车可视情况配备。
-=====
-[2024-08-08 14:19:57,082] [INFO] [MainThread] [main.py] [func:<module> line:102]
-
-示例1:
-规章制度内容:
-第五章  罚则第二十条 员工未经批准擅自休假、无正当理由超假或延长因公外出时间的,按旷工处理。第二十一条 员工开虚假证明休病假或不能提供医院证明材料的,其休假时间一律按旷工处理。经核实,员工提供虚假证明材料请病假的,视为严重违纪,单位有权单方解除劳动合同。
-问题:
-如果员工没有得到批准就休假,或者没有合理的理由就超假,会有什么后果?
-答案:
-员工未经批准擅自休假、无正当理由超假或延长因公外出时间的,按旷工处理。
-判断结果:
-{"结果":"正确", "原因":""}
-
-
-示例2:
-规章制度内容:
-第二十一条 车辆事故及损失处理。(一)驾驶员违反交通规则被罚款,一律不予报销。(二)若发生交通事故,应及时报告车辆管理部门,写出事故经过及损失情况报告。造成责任事故,须由驾驶员写出书面检查,并视情节进行赔偿,对责任人给予相应处理。赔偿比例系指扣除保险公司赔付后实际产生的车辆损失和赔偿金额。1.全责的赔偿 50%;扣发责任人日常绩效至事故处理完毕。2.主要责任的赔偿 40%;扣发责任人日常绩效的 50%至事故处理完毕。3.双方同责的赔偿 30%;扣发责任人日常绩效的 30%至事故处理完毕。4.次要责任的赔偿 20%;扣发责任人月考核工资的20%至事故处理完毕。(三)若对方负全责或意外事故,修车期间驾驶员不承担因修车给本行造成的间接损失;其余情况,修车时间内驾驶员应承担因修车造成的间接损失。
-问题:
-使用公司车辆发生责任事故时的赔偿比例?
-答案:
-1.全责的赔偿 50%;扣发责任人日常绩效至事故处理完毕。2.主要责任的赔偿 30%;扣发责任人日常绩效的 50%至事故处理完毕。3.双方同责的赔偿 30%;扣发责任人日常绩效的 30%至事故处理完毕。4.次要责任的赔偿 20%;扣发责任人月考核工资的20%至事故处理完毕。
-判断结果:
-{"结果":"错误", "原因":"主要责任的赔偿应该是40%"}
-
-规章制度内容:
-"""
-第三章  车辆编制第八条 原则上配备的商务接待车不超过 2 辆,业务用车、机要通信车、应急保障车可视情况配备。第九条 根据业务发展规模和公司财务承受状况,公司车辆编制一年一定。第十条 以资抵债形成的车辆,原则上不得自用;如确需自用,在符合车辆编制标准的前提下,可按新购车辆管理的要求和程序报批。
-"""
-
-问题:
-"""
-公司商务接待车一般配备几辆?
-"""
-
-答案:
-"""
- 原则上配备的商务接待车不超过 2 辆,业务用车、机要通信车、应急保障车可视情况配备。
-=====
-"""
-
-输出要求:
-1、输出格式要严格按照上面示例的格式,"结果"字段的取值只能是"正确"或者"错误"。
-2、必须判断答案是否严格遵从规章制度内容。
-3、如果错误需要给出错误的原因。
-
-
-请根据示例、"""内的规章制度内容、"""内的问题和"""内的答案和输出要求,判断答案是否正确。
-
-[2024-08-08 14:20:01,285] [INFO] [MainThread] [prompt.py] [func:parse_judge_ans_response_text line:130]
- {"结果":"正确", "原因":""}
+示例:
+规则集名称:通用规则
+规则集默认输出:-1
+规则集:
+规则1: 变量:年龄 age 逻辑:年龄小于18或大于等于65 输出:1 结果备注: 1代表好
+规则2: 变量:欠税总额 qsze 逻辑:欠税总额大于500 输出:3 结果备注: 3代表一般
+规则3: 变量:非银行机构未结清贷款机构数 fyjgwjqs 逻辑:非银行机构未结清贷款机构数大于10 输出:2
+输出:
+def handle_general_rules(data:dict):
+    # 通用规则
+    # 输出结果备注:
+    # 1代表好
+    # 3代表一般
+    age = data.get("age")
+    qsze = data.get("qsze")
+    fyjgwjqs = data.get("fyjgwjqs")
+    if age is not None:
+        if age < 18 or age >= 65:
+            return 1
+    if qsze is not None:
+        if qsze > 500:
+            return 3
+    if fyjgwjqs is not None:
+        if fyjgwjqs > 10:
+            return 2
+    return -1
+```
+
+待处理规则:
+规则集名称:极优质客户
+规则集默认输出:接受
+规则集:
+规则1: 变量:年龄 age 性别 sex 逻辑:男性客户年龄小于22岁或大于60岁,普通女性客户小于22岁或大于55岁 输出:拒绝 变量备注: 性别为男或者女
+规则2: 变量:是否本行关系人 sfbhgxr 逻辑:sfbhgxr=1 输出:拒绝
+规则3: 变量:配偶在黑名单中  pozhmdz 逻辑:pozhmdz=1 输出:拒绝
+规则4: 变量:行内审慎客户 hnsskh 逻辑:hnsskh=1 输出:拒绝
+规则5: 变量:呆账信息汇总、资产处置信息汇总、保证人代偿信息汇总数据中有记录的  ydzhzccz 逻辑:ydzhzccz=1 输出:拒绝
+规则6: 变量:资产处置信息余额的zcczye 逻辑:zcczye>0 输出:拒绝
+规则7: 变量:保证人代偿信息余额的 bzrdcye 逻辑:bzrdcye>0 输出:拒绝
+规则8: 变量:呆账贷记卡是记录dzdjkjl_cnt 逻辑:dzdjkjl_cnt>0 输出:拒绝
+规则9: 变量:对外担保信息中担保贷款五级分类 dbxxwjfl 逻辑:对外担保信息中担保贷款五级分类是“次级”或“可疑”或“损失” 输出:拒绝
+规则10: 变量:当前逾期金额 dqyqje 逻辑:dqyqje>0 输出:拒绝
+规则11: 变量:客户存在公安负面信息 gafmxx_cnt 逻辑:gafmxx_cnt>0 输出:拒绝
+规则12: 变量:客户存在失信被执行人信息 ssxrzxxx_cnt 逻辑:ssxrzxxx_cnt>0 输出:拒绝
+规则13: 变量:公积金缴至年月距申请时的月份数gjjjfyffs 逻辑:公积金缴至年月距申请时的月份数大于3 输出:拒绝
+规则14: 变量:公积金近1年累计缴纳次数 gjjjncs_l122m 逻辑:公积金近1年累计缴纳次数小于6 输出:拒绝
+规则15: 变量:贷记卡最近24个月的还款记录中逾期天数 djkyqts_l24m 逾期金额 yqje 逻辑:贷记卡或贷记卡最近24个月的还款记录中逾期天数(3-7、D、Z、G字符)且逾期金额500元以上 输出:拒绝
+规则16: 变量:借款人最近24个月最大连续逾期期数jkrzdlxyqqs_l24m 累计逾期次数 ljyqqs 逻辑:借款人最近24个月最大连续逾期期数>3或累计逾期次数>6 输出:拒绝
+规则17: 变量:非银行机构未结清贷款笔数 fyjgwjqdkbs 逻辑:非银行机构未结清贷款笔数>=3 输出:拒绝
+规则18: 变量:近一个月非本行审批查询机构数 fbhspcxs_l1m 近3个月非本月审批查询机构数 fbhspcxs_l3m 近6个月非本行审批查询机构数 fbhspcxs_l6m 逻辑:近一个月非本行审批查询机构数>3或近3个月非本月审批查询机构数>5或近6个月非本行审批查询机构数>8 输出:拒绝
+规则19: 变量:一代模型评分  ydmxpf 逻辑:一代模型评分>0.766 输出:拒绝
+
+请根据```内的示例以及待处理规则中的变量、计算逻辑及输出,用Python语言生成功能函数代码。
+返回结果要求:
+1、只返回功能函数代码,不要多余的输出。
+2、代码逻辑应严格按照待处理要求中的条件,不要自行添加多余的逻辑。
+3、代码的语法要符合python的语法规范,返回的代码应该是可执行的。
+4、规则里有 结果备注 的请在函数中的 输出结果备注 处进行备注,没有的则无输出结果备注
+
+
+
+
+# 角色
+你是一个专业的Python代码生成器,能够根据给定的流程图和函数内容,用Python语言生成完整的流程执行代码。
+
+给定的函数内容:
+def handle_general_rules(data:dict):
+    # 通用规则
+    # 输出结果备注:
+    # 0代表拒绝,1代表接受
+    sex = data.get("sex")
+    age = data.get("age")
+    pboc_score = data.get("pboc_score")
+    incomeM = data.get("incomeM")
+    qzzxbjz = data.get("qzzxbjz")
+    yzxbje = data.get("yzxbje")
+    wjqxedkbss = data.get("wjqxedkbss")
+    xedkjgs = data.get("xedkjgs")
+    if sex is not None and age is not None:
+        if (sex == "男" and (22 <= age <= 60)) or (sex == "女" and (22 <= age <= 55)):
+            return 1
+    if pboc_score is not None:
+        if pboc_score > 0.523:
+            return 0
+    if incomeM is not None:
+        if incomeM < 2000:
+            return 0
+    if qzzxbjz is not None and yzxbje is not None:
+        if (qzzxbjz - yzxbje) > 20000:
+            return 0
+    if wjqxedkbss is not None or xedkjgs is not None:
+        if (wjqxedkbss is not None and wjqxedkbss > 4) or (xedkjgs is not None and xedkjgs > 2):
+            return 0
+    return 1.0
+
+def handle_kequn_rules(data:dict):
+    # 客群规则
+    # 输出结果备注:
+    # 公积金单位较优客户
+    # 金融资产较优客户
+    # 房贷客户
+    gjjdwlx = data.get("gjjdwlx")
+    sex = data.get("sex")
+    age = data.get("age")
+    gjjkhsj = data.get("gjjkhsj")
+    gjjjncs_l12m = data.get("gjjjncs_l12m")
+    nrjjrzc = data.get("nrjjrzc")
+    rjzc_l3m = data.get("rjzc_l3m")
+    whkkhsj = data.get("whkkhsj")
+    xymxpf = data.get("xymxpf")
+    wjqfdyyhke = data.get("wjqfdyyhke")
+    yhkqs = data.get("yhkqs")
+    zcyqts = data.get("zcyqts")
+    yqcs_l24m = data.get("yqcs_l24m")
+    if gjjdwlx is not None and sex is not None and age is not None and gjjkhsj is not None and gjjjncs_l12m is not None:
+        if (gjjdwlx in ("国家机关", "事业单位", "国企", "医院") and
+            ((sex == "男" and 22 <= age <= 60) or (sex == "女" and 22 <= age <= 55)) and
+            gjjkhsj >= 1 and gjjjncs_l12m >= 6):
+            return "公积金单位较优客户"
+    if nrjjrzc is not None and rjzc_l3m is not None and whkkhsj is not None and xymxpf is not None:
+        if (nrjjrzc > 10 and rjzc_l3m >= 1 and whkkhsj >= 1 and
+            (xymxpf > 0.397 or xymxpf == -1)):
+            return "金融资产较优客户"
+    if wjqfdyyhke is not None and yhkqs is not None and zcyqts is not None and yqcs_l24m is not None:
+        if ((wjqfdyyhke > 4000 and yhkqs > 12 and yqcs_l24m <= 2 and zcyqts <= 30) or
+            (0 < wjqfdyyhke <= 4000 and yhkqs > 24 and yqcs_l24m <= 2 and zcyqts <= 30)):
+            return "房贷客户"
+    return "其它"
+
+def handle_extremely_high_quality_customer_rules(data:dict):
+    # 极优质客户规则
+    # 输出结果备注:
+    age = data.get("age")
+    sex = data.get("sex")
+    sfbhgxr = data.get("sfbhgxr")
+    pozhmdz = data.get("pozhmdz")
+    hnsskh = data.get("hnsskh")
+    ydzhzccz = data.get("ydzhzccz")
+    zcczye = data.get("zcczye")
+    bzrdcye = data.get("bzrdcye")
+    dzdjkjl_cnt = data.get("dzdjkjl_cnt")
+    dbxxwjfl = data.get("dbxxwjfl")
+    dqyqje = data.get("dqyqje")
+    gafmxx_cnt = data.get("gafmxx_cnt")
+    ssxrzxxx_cnt = data.get("ssxrzxxx_cnt")
+    gjjjfyffs = data.get("gjjjfyffs")
+    gjjjncs_l122m = data.get("gjjjncs_l122m")
+    djkyqts_l24m = data.get("djkyqts_l24m")
+    yqje = data.get("yqje")
+    jkrzdlxyqqs_l24m = data.get("jkrzdlxyqqs_l24m")
+    ljyqqs = data.get("ljyqqs")
+    fyjgwjqdkbs = data.get("fyjgwjqdkbs")
+    fbhspcxs_l1m = data.get("fbhspcxs_l1m")
+    fbhspcxs_l3m = data.get("fbhspcxs_l3m")
+    fbhspcxs_l6m = data.get("fbhspcxs_l6m")
+    ydmxpf = data.get("ydmxpf")
+    if age is not None and sex is not None:
+        if (sex == "男" and (age < 22 or age > 60)) or (sex == "女" and (age < 22 or age > 55)):
+            return "拒绝"
+    if sfbhgxr is not None:
+        if sfbhgxr == 1:
+            return "拒绝"
+    if pozhmdz is not None:
+        if pozhmdz == 1:
+            return "拒绝"
+    if hnsskh is not None:
+        if hnsskh == 1:
+            return "拒绝"
+    if ydzhzccz is not None:
+        if ydzhzccz == 1:
+            return "拒绝"
+    if zcczye is not None:
+        if zcczye > 0:
+            return "拒绝"
+    if bzrdcye is not None:
+        if bzrdcye > 0:
+            return "拒绝"
+    if dzdjkjl_cnt is not None:
+        if dzdjkjl_cnt > 0:
+            return "拒绝"
+    if dbxxwjfl is not None:
+        if dbxxwjfl in ["次级", "可疑", "损失"]:
+            return "拒绝"
+    if dqyqje is not None:
+        if dqyqje > 0:
+            return "拒绝"
+    if gafmxx_cnt is not None:
+        if gafmxx_cnt > 0:
+            return "拒绝"
+    if ssxrzxxx_cnt is not None:
+        if ssxrzxxx_cnt > 0:
+            return "拒绝"
+    if gjjjfyffs is not None:
+        if gjjjfyffs > 3:
+            return "拒绝"
+    if gjjjncs_l122m is not None:
+        if gjjjncs_l122m < 6:
+            return "拒绝"
+    if djkyqts_l24m is not None and yqje is not None:
+        if (djkyqts_l24m in ["3", "4", "5", "6", "7", "D", "Z", "G"] and yqje > 500):
+            return "拒绝"
+    if jkrzdlxyqqs_l24m is not None and ljyqqs is not None:
+        if jkrzdlxyqqs_l24m > 3 or ljyqqs > 6:
+            return "拒绝"
+    if fyjgwjqdkbs is not None:
+        if fyjgwjqdkbs >= 3:
+            return "拒绝"
+    if fbhspcxs_l1m is not None and fbhspcxs_l3m is not None and fbhspcxs_l6m is not None:
+        if fbhspcxs_l1m > 3 or fbhspcxs_l3m > 5 or fbhspcxs_l6m > 8:
+            return "拒绝"
+    if ydmxpf is not None:
+        if ydmxpf > 0.766:
+            return "拒绝"
+    return "接受"
+
+def handle_important_customer_rules(data:dict):
+    # 要客规则
+    # 输出结果备注: 无
+    bhgxr = data.get("bhgxr")
+    dqyqje = data.get("dqyqje")
+    wbhdkhxykyqye = data.get("wbhdkhxykyqye")
+    if bhgxr is not None:
+        if bhgxr == 1:
+            return "拒绝"
+    if dqyqje is not None:
+        if dqyqje > 0:
+            return "拒绝"
+    if wbhdkhxykyqye is not None:
+        if wbhdkhxykyqye == 1:
+            return "拒绝"
+    return "拒绝"
+
+def handle_gov_vip_rules(data:dict):
+    # 是否要客
+    # 输出结果备注:
+    # 1代表是要客
+    # 0代表不是要客
+    GovVip = data.get("GovVip")
+    if GovVip is not None:
+        if GovVip == 1:
+            return 1
+        elif GovVip == 0:
+            return 0
+    return 0.0
+
+def handle_high_quality_customer_credit(data:dict):
+    # 极优质客户额度
+    # 输出结果备注: 无
+    dwlx = data.get("dwlx")
+    incomeM = data.get("incomeM")
+    if dwlx is not None and incomeM is not None:
+        if dwlx == "国家机关" and 0 < incomeM < 5000:
+            return 60000
+        if dwlx == "国家机关" and 5000 <= incomeM < 12000:
+            return 180000
+        if dwlx == "国家机关" and 12000 <= incomeM < 15000:
+            return 250000
+        if dwlx == "国家机关" and incomeM > 15000:
+            return 300000
+        if (dwlx == "三甲医院" or dwlx == "优质学校" or dwlx == "国网") and 0 < incomeM < 6000:
+            return 50000
+        if dwlx == "国家机关" and 6000 <= incomeM < 14000:
+            return 150000
+        if (dwlx == "三甲医院" or dwlx == "优质学校" or dwlx == "国网") and 14000 <= incomeM < 16000:
+            return 220000
+        if (dwlx == "三甲医院" or dwlx == "优质学校" or dwlx == "国网") and incomeM > 16000:
+            return 300000
+    return 0.0
+
+def handle_customer_credit(data:dict):
+    # 客群额度
+    # 输出结果备注: 无
+    kqlx = data.get("kqlx")
+    incomeM = data.get("incomeM")
+    if kqlx is not None and incomeM is not None:
+        if kqlx == "公积金单位较优客户":
+            if 0 < incomeM < 5000:
+                return 60000
+            elif 5000 <= incomeM < 12000:
+                return 180000
+            elif 12000 <= incomeM < 15000:
+                return 250000
+            elif incomeM > 15000:
+                return 300000
+        elif kqlx == "房贷客户":
+            if 0 < incomeM < 6000:
+                return 50000
+            elif 6000 <= incomeM < 14000:
+                return 150000
+            elif 14000 <= incomeM < 16000:
+                return 220000
+            elif incomeM > 16000:
+                return 300000
+    return 0.0
+
+
+函数与节点对应关系:
+通用规则: handle_general_rules
+客群规则: handle_kequn_rules
+极优质客户: handle_extremely_high_quality_customer_rules
+要客规则: handle_important_customer_rules
+是否要客: handle_gov_vip_rules
+极优质客户额度: handle_high_quality_customer_credit
+客群额度: handle_customer_credit
+
+
+流程描述:
+```
+开始 --> [是否要客: 1] --> 要客规则 --> 结束
+开始 --> [是否要客: 0] --> 极优质客户
+[极优质客户: 拒绝]  --> 通用规则
+[极优质客户: 接受]  --> 极优质客户额度 --> 结束
+[通用规则: 0]  --> 结束
+[通用规则: 1] --> 客群规则 --> 客群额度 --> 结束
+```
+流程描述说明:
+1、[满足条件: *] 为判断上一个节点的输出是否符合条件
+
+请把```括号内的流程描述的内容转换为python代码,流程中的各个节点参考给定的函数内容与函数与节点对应关系,并构造测试数据data,代码样式如下。
+
+from handle_general_rules import handle_general_rules
+from handle_kequn_rules import handle_kequn_rules
+from handle_extremely_high_quality_customer_rules import handle_extremely_high_quality_customer_rules
+from handle_important_customer_rules import handle_important_customer_rules
+from handle_gov_vip_rules import handle_gov_vip_rules
+from handle_high_quality_customer_credit import handle_high_quality_customer_credit
+from handle_customer_credit import handle_customer_credit
+
+
+def main(data: dict):
+    流程逻辑
+
+if __name__ == "__main__":
+    data = 测试数据
+    print(main(data))
+
+返回结果要求:
+1、针对流程分支情况请参考给定的函数内容及函数的输出结果备注。
+2、开始节点与结束节点,无实际意义,结束节点直接返回其上一个节点输出的结果。
+3、只返回函数代码,不要多余的输出。
+4、代码逻辑应严格按照流程描述中的逻辑,不要自行添加多余的逻辑。
+5、代码的语法要符合python的语法规范,返回的代码应该是可执行的。

+ 1 - 1
strategy_parse.py

@@ -215,7 +215,7 @@ class StrategyParse:
 
 
 if __name__ == "__main__":
-    excel = pd.ExcelFile("./cache/策略节点配置3demo.xlsx")
+    excel = pd.ExcelFile("./template/demo.xlsx")
     strategy_parse = StrategyParse()
     strategy_parse.f_parse_strategy(excel)
     excel.close()

BIN
template/demo.xlsx