(gnode,node:ExecutionNode)
| 130 | return wrapped_text |
| 131 | |
| 132 | def set_node_vis(gnode,node:ExecutionNode): |
| 133 | for k,v in VIS_CONFIG[node.role].items(): |
| 134 | gnode.attr[k] = v |
| 135 | |
| 136 | if node.role == 'system': |
| 137 | gnode.attr['label']='SystemPrompt' |
| 138 | elif node.role == 'tool': |
| 139 | if node.message['name'] == 'Finish': |
| 140 | # args = json.loads(node.message['arguments']) |
| 141 | args = str(node.message['arguments']) |
| 142 | idx = args.find('return_type') |
| 143 | |
| 144 | if 'give_answer' in args[idx:idx+30]: |
| 145 | gnode.attr['fillcolor'] = 'green' |
| 146 | # gnode.attr['xlabel'] = f"{wrap_text(args.get('final_answer',''))}" |
| 147 | gnode.attr['label'] = wrap_text(args[args.find('final_answer'):]) |
| 148 | else: |
| 149 | gnode.attr['fillcolor'] = 'red' |
| 150 | gnode.attr['label'] = 'restart' |
| 151 | gnode.attr['style'] = 'filled' |
| 152 | gnode.attr['shape'] = 'ellipse' |
| 153 | else: |
| 154 | gnode.attr['label'] = f"tool: {wrap_text(node.message['name'])}" |
| 155 | gnode.attr['xlabel'] = f"{wrap_text(node.message['response'])}" |
| 156 | elif node.role =='assistant': |
| 157 | gnode.attr['label'] = node.role.upper() +'\n'+ wrap_text(str(node.message)) |
| 158 | else: |
| 159 | gnode.attr['xlabel'] = wrap_text(str(node.message)) |
| 160 | gnode.attr['label'] = node.role.upper() |
| 161 | |
| 162 | for node in self.nodes.values(): |
| 163 | gnode = G.get_node(str(node)) |
nothing calls this directly
no outgoing calls
no test coverage detected