schema.py 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. from dataclasses import dataclass
  2. import json
  3. @dataclass
  4. class Message:
  5. role: str # system / user / assistant
  6. content: str
  7. def to_str(self) -> str:
  8. return f'{self.role}: {self.content}'
  9. def to_dict(self) -> dict:
  10. return {
  11. 'role': self.role,
  12. 'content': self.content
  13. }
  14. @dataclass
  15. class Record:
  16. url: str
  17. time: str
  18. type: str
  19. raw: list
  20. extract: str
  21. topic: str
  22. checked: bool
  23. session: list
  24. def to_dict(self) -> dict:
  25. return {
  26. 'url': self.url,
  27. 'time': self.time,
  28. 'type': self.type,
  29. 'raw': self.raw,
  30. 'extract': self.extract,
  31. 'topic': self.topic,
  32. 'checked': self.checked,
  33. 'session': self.session
  34. }
  35. @dataclass
  36. class RefMaterial:
  37. url: str
  38. text: list
  39. def to_dict(self) -> dict:
  40. return {
  41. 'url': self.url,
  42. 'text': self.text,
  43. }
  44. @dataclass
  45. class Observation:
  46. action:str
  47. observation:str
  48. def to_dict(self) -> dict:
  49. return {
  50. 'action': self.action,
  51. 'observation': self.observation,
  52. }
  53. @dataclass
  54. class DialogInfo:
  55. query_obs: list
  56. def to_string(self) -> str:
  57. result = []
  58. for q,o in self.query_obs:
  59. result.append(f"{q}:{json.dumps(o.to_dict())}\n")