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