in 3_optimization-design-ptn/03_prompt-optimization/promptwizard/glue/paramlogger/__init__.py [0:0]
def run_over_logs(self, method_obj):
"""
Run the method referenced by method_obj over each entry in jsonl file present at location `file_path`.
`id`, `inputs`, `outputs` fields in jsonl file at `file_path` can be accessed via dummy_id, dummy_input,
dummy_output parameters respectively.
:param method_obj:
:return: None
"""
def wrap(file_path, dummy_id, dummy_input, dummy_output, dummy_meta, **kwargs):
eval_file_path = join(self.BASE_PATH, method_obj.__name__ + "_" + basename(file_path))
args_to_log = defaultdict(dict)
for json_obj in futil.read_jsonl_row(file_path):
eval_result = method_obj(None,
json_obj[LogLiterals.ID],
json_obj[LogLiterals.INPUTS],
json_obj[LogLiterals.OUTPUTS],
json_obj[LogLiterals.META],
**kwargs)
args_to_log[LogLiterals.ID] = json_obj[LogLiterals.ID]
args_to_log[LogLiterals.EVAL_RESULT] = eval_result
args_to_log[LogLiterals.META][LogLiterals.TIMESTAMP] = datetime.now()
futil.append_as_jsonl(file_path=eval_file_path, args_to_log=args_to_log)
return wrap