Skip to content

Commit dd632fb

Browse files
committed
ignore irrelevant methods with decorators, upgrade browser to be headless
1 parent 0ec3a9f commit dd632fb

File tree

4 files changed

+25
-9
lines changed

4 files changed

+25
-9
lines changed

.gitignore

+3-2
Original file line numberDiff line numberDiff line change
@@ -235,8 +235,9 @@ misc/
235235

236236
# Ignore litellm_uuid.txt
237237
litellm_uuid.txt
238+
239+
# some more
238240
.aider*
239241
file.txt
240242
numbers.txt
241-
poetry.lock
242-
poetry.lock
243+
poetry.lock

interpreter/core/computer/browser/browser.py

+15-6
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,9 @@ def __init__(self, computer):
1616
self._driver = None
1717

1818
@property
19-
def driver(self):
19+
def driver(self, headless=True):
2020
if self._driver is None:
21-
self.setup()
21+
self.setup(headless)
2222
return self._driver
2323

2424
@driver.setter
@@ -62,10 +62,19 @@ def fast_search(self, query):
6262

6363
return response.json()["result"]
6464

65-
def setup(self):
66-
self.service = Service(ChromeDriverManager().install())
67-
self.options = webdriver.ChromeOptions()
68-
self._driver = webdriver.Chrome(service=self.service, options=self.options)
65+
def setup(self, headless):
66+
try:
67+
self.service = Service(ChromeDriverManager().install())
68+
self.options = webdriver.ChromeOptions()
69+
# Run Chrome in headless mode
70+
if headless:
71+
self.options.add_argument("--headless")
72+
self.options.add_argument("--disable-gpu")
73+
self.options.add_argument("--no-sandbox")
74+
self._driver = webdriver.Chrome(service=self.service, options=self.options)
75+
except Exception as e:
76+
print(f"An error occurred while setting up the WebDriver: {e}")
77+
self._driver = None
6978

7079
def go_to_url(self, url):
7180
"""Navigate to a URL"""

interpreter/core/computer/computer.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,8 @@ def _extract_tool_info(self, tool):
110110
"methods": []
111111
}
112112
for name, method in inspect.getmembers(tool, predicate=inspect.ismethod):
113-
if not name.startswith("_"):
113+
# Check if the method should be ignored based on its decorator
114+
if not name.startswith("_") and not hasattr(method, '__wrapped__'):
114115
# Get the method signature
115116
method_signature = inspect.signature(method)
116117
# Construct the signature string without *args and **kwargs

tests/core/computer/test_computer.py

+5
Original file line numberDiff line numberDiff line change
@@ -19,3 +19,8 @@ def test_get_all_computer_tools_signature_and_description(self):
1919

2020
# Assert
2121
self.assertGreater(len(tools_description), 64)
22+
23+
if __name__ == "__main__":
24+
testing = TestComputer()
25+
testing.setUp()
26+
testing.test_get_all_computer_tools_signature_and_description()

0 commit comments

Comments
 (0)