MCPcopy Index your code
hub / github.com/OpenBMB/ToolBench / process_valid_data

Function process_valid_data

toolbench/tooleval/utils.py:54–99  ·  view source on GitHub ↗
(method,answer_generation)

Source from the content-addressed store, hash-verified

52 return node
53
54def process_valid_data(method,answer_generation):
55 conversation = answer_generation['train_messages'][-1]
56 functions = answer_generation['function']
57 query = answer_generation['query']
58 eg = ExecutionGraph()
59 last_node = generate_init_message_node(eg,functions,query)
60
61 index = 2
62 while index < len(conversation):
63 message = conversation[index]
64 role = message['role']
65 if role == 'system' or role == 'user' or role == 'function':
66 index = index + 1
67 continue
68 elif role == 'assistant':
69 if 'function_call' in message :
70 node = ExecutionNode(role='tool', message={
71 'name':message['function_call']['name'],
72 'arguments':message['function_call']['arguments'],
73 'response':conversation[index+1]['content'] if message['function_call']['name']!='Finish' else ''
74 })
75 index = index + 1
76 else:
77 node = ExecutionNode(role='assistant',
78 message=message['content'])
79
80 else:
81 raise NotImplementedError(f'Unkown role {role}')
82
83 index = index + 1
84 eg.add_node(node)
85 eg[last_node,node] = None
86 last_node = node
87
88 eg = eg.reduce_graph_to_sequence()
89
90 return {
91 'query':query,
92 'available_tools':functions,
93 'answer':{
94 'method':method,
95 'total_steps': eg.node_count,
96 'final_answer': answer_generation['final_answer'],
97 'answer_details': eg.convert_to_dict()
98 }
99 }
100
101def process_invalid_data(method,data_dict):
102 answer_generation = data_dict['answer_generation']

Callers

nothing calls this directly

Calls 6

add_nodeMethod · 0.95
convert_to_dictMethod · 0.95
ExecutionGraphClass · 0.90
ExecutionNodeClass · 0.90

Tested by

no test coverage detected