Source code for biolmai.core.payloads

[docs]def INST_DAT_TXT(batch, include_batch_size=False): d = {"instances": []} for _, row in batch.iterrows(): inst = {"data": {"text": row.text}} d["instances"].append(inst) if include_batch_size is True: d["batch_size"] = len(d["instances"]) return d
[docs]def PARAMS_ITEMS(batch, key="sequence", params=None, include_batch_size=False): d = {"items": []} for _, row in batch.iterrows(): inst = {key: row.text} d["items"].append(inst) if include_batch_size is True: d["batch_size"] = len(d["items"]) if isinstance(params, dict): d["params"] = params return d
[docs]def predict_resp_many_in_one_to_many_singles( resp_json, status_code, batch_id, local_err, batch_size, response_key = "results" ): expected_root_key = response_key to_ret = [] if not local_err and status_code and status_code == 200: list_of_individual_seq_results = resp_json[expected_root_key] elif local_err: list_of_individual_seq_results = [{"error": resp_json}] elif status_code and status_code != 200 and isinstance(resp_json, dict): list_of_individual_seq_results = [resp_json] * batch_size else: raise ValueError("Unexpected response in parser") for idx, item in enumerate(list_of_individual_seq_results): d = {"status_code": status_code, "batch_id": batch_id, "batch_item": idx} if not status_code or status_code != 200: d.update(item) # Put all resp keys at root there else: # We just append one item, mimicking a single seq in POST req/resp d[expected_root_key] = [] d[expected_root_key].append(item) to_ret.append(d) return to_ret