MCPcopy Index your code
hub / github.com/microsoft/JARVIS / main

Function main

taskbench/inference.py:37–171  ·  view source on GitHub ↗
(data_dir, temperature, top_p, api_addr, api_key, api_port, multiworker, llm, use_demos, reformat, reformat_by, tag, dependency_type, log_first_detail)

Source from the content-addressed store, hash-verified

35@click.option("--dependency_type", type=str, default="resource")
36@click.option("--log_first_detail", type=bool, default=False)
37def main(data_dir, temperature, top_p, api_addr, api_key, api_port, multiworker, llm, use_demos, reformat, reformat_by, tag, dependency_type, log_first_detail):
38 assert dependency_type in ["resource", "temporal"], "Dependency type not supported"
39 if dependency_type == "resource":
40 assert data_dir != "data_dailylifeapis", "Resource dependency type only support data_huggingface and data_multimedia"
41
42 arguments = locals()
43 url = f"http://{api_addr}:{api_port}/v1/chat/completions"
44 header = {
45 "Authorization": f"Bearer {api_key}",
46 "Content-Type": "application/json"
47 }
48
49 prediction_dir = f"{data_dir}/predictions{f'_use_demos_{use_demos}' if use_demos and tag else ''}{f'_reformat_by_{ reformat_by}' if reformat and tag else ''}"
50 wf_name = f"{prediction_dir}/{llm}.json"
51
52 if not os.path.exists(prediction_dir):
53 os.makedirs(prediction_dir, exist_ok=True)
54
55 has_inferenced = []
56 if os.path.exists(wf_name):
57 rf = open(wf_name, "r")
58 for line in rf:
59 data = json.loads(line)
60 has_inferenced.append(data["id"])
61 rf.close()
62
63 rf_ur = open(f"{data_dir}/user_requests.json", "r")
64 inputs = []
65 for line in rf_ur:
66 input = json.loads(line)
67 if input["id"] not in has_inferenced:
68 inputs.append(input)
69 rf_ur.close()
70
71 wf = open(wf_name, "a")
72
73 tool_list = json.load(open(f"{data_dir}/tool_desc.json", "r"))["nodes"]
74 if "input-type" not in tool_list[0]:
75 assert dependency_type == "temporal", "Tool type is not ignored, but the tool list does not contain input-type and output-type"
76 if dependency_type == "temporal":
77 for tool in tool_list:
78 parameter_list = []
79 for parameter in tool["parameters"]:
80 parameter_list.append(parameter["name"])
81 tool["parameters"] = parameter_list
82
83 # log llm name in format
84 formatter = logging.Formatter(f"%(asctime)s - [ {llm} ] - %(levelname)s - %(message)s")
85 console_handler = logging.StreamHandler()
86 console_handler.setFormatter(formatter)
87 console_handler.setLevel(logging.INFO)
88 logger.addHandler(console_handler)
89
90 file_handler = logging.FileHandler(f"{prediction_dir}/{llm}.log")
91 file_handler.setFormatter(formatter)
92 file_handler.setLevel(logging.INFO)
93 logger.addHandler(file_handler)
94

Callers 1

inference.pyFile · 0.70

Calls 1

inference_wrapperFunction · 0.85

Tested by

no test coverage detected