def parse_interactions_from_conversation_history()

in src/dfcx_scrapi/tools/evaluations.py [0:0]


    def parse_interactions_from_conversation_history(
                self,
                conversation: types.Conversation) -> List[Dict[str, Any]]:
            results = []

            # Load maps if they don't already exist
            if not self.tools_map:
                self.tools_map = self.tools_client.get_tools_map(self.agent_id)
            if not self.playbooks_map:
                self. playbooks_map = self.playbooks_client.get_playbooks_map(
                    self.agent_id)

            for conv_interaction in conversation.interactions:
                interaction = Interaction(
                    query=conv_interaction.request.query_input.text.text,
                    query_result=conv_interaction.response.query_result
                )

                if interaction.generative_info:
                    for action in interaction.actions:
                        if "tool_use" in action:
                            tool_calls = (
                                self.parse_tool_use_from_conversation_history(
                                    action.tool_use)
                            )
                            interaction.tool_calls.append(tool_calls)

                        elif "agent_utterance" in action:
                            response_text = action.agent_utterance.text
                            interaction.responses.append(response_text)

                        elif "playbook_invocation" in action:
                            playbook_name = self.playbooks_map.get(
                                action.playbook_invocation.playbook, None)
                            interaction.playbook_invocation = playbook_name

                results.append(interaction)
            results.reverse()

            return results