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

Function process_valid_data

toolbench/tooleval/convert_to_answer_format.py:27–73  ·  view source on GitHub ↗
(method,answer_generation)

Source from the content-addressed store, hash-verified

25
26
27def process_valid_data(method,answer_generation):
28 conversation = answer_generation['train_messages'][-1]
29 functions = answer_generation['function']
30 query = answer_generation['query']
31 eg = ExecutionGraph()
32 last_node = generate_init_message_node(eg,functions,query)
33
34 index = 2
35 while index < len(conversation):
36 message = conversation[index]
37 role = message['role']
38 if role == 'system' or role == 'user' or role == 'function':
39 index = index + 1
40 continue
41 elif role == 'assistant':
42 if 'function_call' in message :
43 node = ExecutionNode(role='tool', message={
44 'name':message['function_call']['name'],
45 'arguments':message['function_call']['arguments'],
46 'response':conversation[index+1]['content'] if message['function_call']['name']!='Finish' else ''
47 })
48 index = index + 1
49 else:
50 node = ExecutionNode(role='assistant',
51 message=message['content'])
52
53
54 else:
55 raise NotImplementedError(f'Unkown role {role}')
56
57 index = index + 1
58 eg.add_node(node)
59 eg[last_node,node] = None
60 last_node = node
61
62 eg = eg.reduce_graph_to_sequence()
63
64 return {
65 'query':query,
66 'available_tools':functions,
67 'answer':{
68 'method':method,
69 'total_steps': eg.node_count,
70 'final_answer': answer_generation['final_answer'],
71 'answer_details': eg.convert_to_dict()
72 }
73 }
74def process_invalid_data(method,data_dict):
75 answer_generation = data_dict['answer_generation']
76 functions = answer_generation['function']

Callers 2

convert_answers.pyFile · 0.90

Calls 6

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

Tested by

no test coverage detected