def build_example_from_action_list()

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