browse.py 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. from dataclasses import dataclass
  2. from typing import ClassVar
  3. from openhands.core.schema import ActionType
  4. from openhands.events.action.action import Action, ActionSecurityRisk
  5. @dataclass
  6. class BrowseURLAction(Action):
  7. url: str
  8. thought: str = ''
  9. action: str = ActionType.BROWSE
  10. runnable: ClassVar[bool] = True
  11. security_risk: ActionSecurityRisk | None = None
  12. @property
  13. def message(self) -> str:
  14. return f'Browsing URL: {self.url}'
  15. def __str__(self) -> str:
  16. ret = '**BrowseURLAction**\n'
  17. if self.thought:
  18. ret += f'THOUGHT: {self.thought}\n'
  19. ret += f'URL: {self.url}'
  20. return ret
  21. @dataclass
  22. class BrowseInteractiveAction(Action):
  23. browser_actions: str
  24. thought: str = ''
  25. browsergym_send_msg_to_user: str = ''
  26. action: str = ActionType.BROWSE_INTERACTIVE
  27. runnable: ClassVar[bool] = True
  28. security_risk: ActionSecurityRisk | None = None
  29. @property
  30. def message(self) -> str:
  31. return f'Executing browser actions: {self.browser_actions}'
  32. def __str__(self) -> str:
  33. ret = '**BrowseInteractiveAction**\n'
  34. if self.thought:
  35. ret += f'THOUGHT: {self.thought}\n'
  36. ret += f'BROWSER_ACTIONS: {self.browser_actions}'
  37. return ret