in src/dfcx_scrapi/tools/search_util.py [0:0]
def get_raw_agent_fulfillment_df(self, agent_id: str):
"""Gets all fulfillment structures for an agent.
Args:
agent_id: ID of the Dialogflow CX agent.
Returns:
dataframe with columns:
flow_name,
page_name,
parameter_name,
event,
route_group_name,
intent,
condition,
fulfillment
"""
flow_df = self.get_flow_df(agent_id)
page_df = self.get_page_df(flow_df)
route_group_df = self.get_route_group_df(
page_df, list(flow_df.flow_id))
route_df = SearchUtil.get_route_df(page_df, route_group_df)
intent_map = self.intents.get_intents_map(agent_id)
route_df.intent = route_df.intent.map(intent_map)
param_df = SearchUtil.get_param_df(page_df)
param_initial_prompt_fulfillment_df = param_df[
[
"flow_name",
"page_name",
"parameter_name",
"initial_prompt_fulfillment",
]
]
param_reprompt_event_handler_df = param_df[
[
"flow_name",
"page_name",
"parameter_name",
"reprompt_event_handlers",
]
]
event_handler_df = self.get_event_handler_df(
page_df, param_reprompt_event_handler_df
)
fulfillment_df = pd.concat(
[
page_df.drop(
columns=[
"parameters",
"route_groups",
"routes",
"event_handlers",
]
).rename(columns={"entry_fulfillment": "fulfillment"}),
event_handler_df.rename(
columns={"trigger_fulfillment": "fulfillment"}
),
route_df.rename(
columns={"trigger_fulfillment": "fulfillment"}),
param_initial_prompt_fulfillment_df.rename(
columns={"initial_prompt_fulfillment": "fulfillment"}
),
],
ignore_index=True,
).dropna(subset=["fulfillment"], axis="index")
return fulfillment_df