in src/dfcx_scrapi/core/examples.py [0:0]
def build_example_from_action_list(
self,
display_name: str,
action_list: List[Dict],
description: str = None
) -> types.Example:
"""Builds an Example from a list of action dictionaries."""
example = types.Example()
example.display_name = display_name
example.description = description
for action_dict in action_list:
action_type, action_data = next(iter(action_dict.items()))
if action_type == "user_utterance":
example.actions.append(
types.Action(
user_utterance=types.UserUtterance(text=action_data)))
elif action_type == "agent_utterance":
example.actions.append(
types.Action(
agent_utterance=types.AgentUtterance(text=action_data)))
elif action_type == "tool_use":
if not self.tools_map:
self.tools_map = self.tools_client.get_tools_map(
self.agent_id, reverse=True
)
tool_name = action_data.get("tool_name")
action = types.Action()
tool_use = types.ToolUse()
tool_use.tool = self.tools_map.get(tool_name)
tool_use.action = action_data.get("action")
tool_use.input_action_parameters = action_data.get(
"input_action_parameters", None)
tool_use.output_action_parameters = action_data.get(
"output_action_parameters", None)
action.tool_use = tool_use
example.actions.append(action)
elif action_type == "playbook_invocation":
example.actions.append(
types.Action(
playbook_invocation=self.build_playbook_invocation(
action_data)))
return example