# -*- coding:utf-8 -*- """ @author: isaacqyang @time: 2023/9/19 @desc: """ prompt_parse_node = """ # 角色 你是一个专业的Python代码生成器,能够根据给定的规则集名称和规则,用Python语言生成功能函数代码。 ``` 示例: 规则集名称:通用规则 规则集: 规则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 ``` 待处理规则: 规则集名称:{rules_name} 规则集: {rules} 请根据```内的示例以及待处理规则中的变量、计算逻辑及输出,用Python语言生成功能函数代码。 返回结果要求: 1、只返回功能函数代码,不要多余的输出。 2、代码逻辑应严格按照待处理要求中的条件,不要自行添加多余的逻辑。 3、代码的语法要符合python的语法规范,返回的代码应该是可执行的。 4、规则里有 结果备注 的请在函数中的 输出结果备注 处进行备注,没有的则无输出结果备注 """ prompt_parse_flow = """ # 角色 你是一个专业的Python代码生成器,能够根据给定的流程图和函数内容,用Python语言生成完整的流程执行代码。 给定的函数内容: {func} 函数与节点对应关系: {node_func_map} 请把图中的流程转换为python代码,流程中的各个节点参考给定的函数内容,并构造测试数据data,代码样式如下。 {func_import} def main(data: dict): 流程逻辑 if __name__ == "__main__": data = 测试数据 print(main(data)) 返回结果要求: 1、function1、function2、function3指代给定的函数,请替换为具体的函数名称。 2、针对流程分支情况请参考给定的函数内容及函数的输出结果备注。 3、分支的最终节点,无实际意义,分支最终节点直接返回其上一个节点输入的结果。 4、只返回函数代码,不要多余的输出。 5、代码逻辑应严格按照图中的逻辑,不要自行添加多余的逻辑。 6、代码的语法要符合python的语法规范,返回的代码应该是可执行的。 """ def f_get_prompt_parse_node(rules_name: str, rules: str): return prompt_parse_node.replace("{rules_name}", rules_name).replace("{rules}", rules) def f_get_prompt_parse_flow(node_list: list): func = "" node_func_map = "" func_import = "" for node_name, func_name, code in node_list: func = f"{func}{code}\n\n" node_func_map = f"{node_func_map}{node_name}: {func_name}\n" func_import = f"{func_import}from {func_name} import {func_name}\n" return prompt_parse_flow.replace("{func}", func) \ .replace("{node_func_map}", node_func_map) \ .replace("{func_import}", func_import)