[docs]defquery_expansion_node(func):@functools.wraps(func)@result_to_dataframe(["queries"])defwrapper(project_dir:Union[str,Path],previous_result:pd.DataFrame,*args,**kwargs)->List[List[str]]:logger.info(f"Running query expansion node - {func.__name__} module...")validate_qa_dataset(previous_result)# find queries columnsassert("query"inprevious_result.columns),"previous_result must have query column."queries=previous_result["query"].tolist()iffunc.__name__=="pass_query_expansion":returnfunc(queries=queries)# pop prompt from kwargsif"prompt"inkwargs.keys():prompt=kwargs.pop("prompt")else:prompt=""# set generator module for query expansiongenerator_callable,generator_param=make_generator_callable_param(kwargs)# run query expansion functionexpanded_queries=func(queries=queries,prompt=prompt,generator_func=generator_callable,generator_params=generator_param,)# delete empty string in the nested expanded queries listexpanded_queries=[list(map(lambdax:x.strip(),sublist))forsublistinexpanded_queries]expanded_queries=[list(filter(lambdax:bool(x),sublist))forsublistinexpanded_queries]returnexpanded_queriesreturnwrapper