browse.py 807 B

1234567891011121314151617181920212223242526272829
  1. import requests
  2. from dataclasses import dataclass
  3. from opendevin.observation import BrowserOutputObservation
  4. from .base import ExecutableAction
  5. @dataclass
  6. class BrowseURLAction(ExecutableAction):
  7. url: str
  8. def run(self, *args, **kwargs) -> BrowserOutputObservation:
  9. try:
  10. response = requests.get(self.url)
  11. return BrowserOutputObservation(
  12. content=response.text,
  13. status_code=response.status_code,
  14. url=self.url
  15. )
  16. except requests.exceptions.RequestException as e:
  17. return BrowserOutputObservation(
  18. content=str(e),
  19. error=True,
  20. url=self.url
  21. )
  22. @property
  23. def message(self) -> str:
  24. return f"Browsing URL: {self.url}"