12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- # -*- 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)
|