from dataclasses import dataclass import json @dataclass class Message: role: str # system / user / assistant content: str def to_str(self) -> str: return f'{self.role}: {self.content}' def to_dict(self) -> dict: return { 'role': self.role, 'content': self.content } @dataclass class Record: url: str time: str type: str raw: list extract: str topic: str checked: bool session: list def to_dict(self) -> dict: return { 'url': self.url, 'time': self.time, 'type': self.type, 'raw': self.raw, 'extract': self.extract, 'topic': self.topic, 'checked': self.checked, 'session': self.session } @dataclass class RefMaterial: url: str text: list def to_dict(self) -> dict: return { 'url': self.url, 'text': self.text, } @dataclass class Observation: action:str observation:str def to_dict(self) -> dict: return { 'action': self.action, 'observation': self.observation, } @dataclass class DialogInfo: query_obs: list def to_string(self) -> str: result = [] for q,o in self.query_obs: result.append(f"{q}:{json.dumps(o.to_dict())}\n")