From dbc017c5c742a28f81027dfc474f9502ab741644 Mon Sep 17 00:00:00 2001 From: shenchucheng Date: Thu, 11 Jul 2024 14:11:57 +0800 Subject: [PATCH] add proxy for browser --- metagpt/tools/libs/browser.py | 3 ++- metagpt/utils/proxy_env.py | 19 +++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 metagpt/utils/proxy_env.py diff --git a/metagpt/tools/libs/browser.py b/metagpt/tools/libs/browser.py index 864996e8c..072eebde1 100644 --- a/metagpt/tools/libs/browser.py +++ b/metagpt/tools/libs/browser.py @@ -24,6 +24,7 @@ from metagpt.utils.a11y_tree import ( scroll_page, type_text, ) +from metagpt.utils.proxy_env import get_proxy_from_env from metagpt.utils.report import BrowserReporter @@ -72,7 +73,7 @@ class Browser: self.page: Optional[Page] = None self.accessibility_tree: list = [] self.headless: bool = True - self.proxy = None + self.proxy = get_proxy_from_env() self.is_empty_page = True self.reporter = BrowserReporter() diff --git a/metagpt/utils/proxy_env.py b/metagpt/utils/proxy_env.py new file mode 100644 index 000000000..bcb5c84f5 --- /dev/null +++ b/metagpt/utils/proxy_env.py @@ -0,0 +1,19 @@ +import os + + +def get_proxy_from_env(): + proxy_config = {} + server = None + for i in ("ALL_PROXY", "all_proxy", "HTTPS_PROXY", "https_proxy", "HTTP_PROXY", "http_proxy"): + if os.environ.get(i): + server = os.environ.get(i) + if server: + proxy_config["server"] = server + no_proxy = os.environ.get("NO_PROXY") or os.environ.get("no_proxy") + if no_proxy: + proxy_config["bypass"] = no_proxy + + if not proxy_config: + proxy_config = None + + return proxy_config