Parse conversation data.
(conv_data: dict)
| 77 | return Session(session_id=session_id, date_time=date_time, turns=turns) |
| 78 | |
| 79 | def parse_conversation(conv_data: dict) -> Conversation: |
| 80 | """Parse conversation data.""" |
| 81 | sessions = {} |
| 82 | for key, value in conv_data.items(): |
| 83 | if key.startswith("session_") and isinstance(value, list): |
| 84 | session_id = int(key.split("_")[1]) |
| 85 | date_time = conv_data.get(f"{key}_date_time") |
| 86 | if date_time: |
| 87 | session = parse_session(value, session_id, date_time) |
| 88 | # Only add sessions that have turns after filtering |
| 89 | if session.turns: |
| 90 | sessions[session_id] = session |
| 91 | |
| 92 | return Conversation( |
| 93 | speaker_a=conv_data["speaker_a"], |
| 94 | speaker_b=conv_data["speaker_b"], |
| 95 | sessions=sessions |
| 96 | ) |
| 97 | |
| 98 | def load_locomo_dataset(file_path: Union[str, Path]) -> List[LoCoMoSample]: |
| 99 | """ |
no test coverage detected