[docs]defprompt_maker_node(func):@functools.wraps(func)@result_to_dataframe(["prompts"])defwrapper(project_dir:Union[str,Path],previous_result:pd.DataFrame,*args,**kwargs)->List[str]:logger.info(f"Running prompt maker node - {func.__name__} module...")# get query and retrieved contents from previous_resultassert("query"inprevious_result.columns),"previous_result must have query column."assert("retrieved_contents"inprevious_result.columns),"previous_result must have retrieved_contents column."query=previous_result["query"].tolist()retrieved_contents=previous_result["retrieved_contents"].tolist()prompt=kwargs.pop("prompt")iffunc.__name__=="fstring":returnfunc(prompt,query,retrieved_contents)eliffunc.__name__=="long_context_reorder":assert("retrieve_scores"inprevious_result.columns),"previous_result must have retrieve_scores column."retrieve_scores=previous_result["retrieve_scores"].tolist()returnfunc(prompt,query,retrieved_contents,retrieve_scores)eliffunc.__name__=="window_replacement":retrieved_ids=previous_result["retrieved_ids"].tolist()# load corpusdata_dir=os.path.join(project_dir,"data")corpus_data=pd.read_parquet(os.path.join(data_dir,"corpus.parquet"),engine="pyarrow")# get metadata from corpusretrieved_metadata=fetch_contents(corpus_data,retrieved_ids,column_name="metadata")returnfunc(prompt,query,retrieved_contents,retrieved_metadata)else:raiseNotImplementedError(f"Module {func.__name__} is not implemented or not supported.")returnwrapper