From b68c139125213b4fa22f5e119f1c6bd1c8476eef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8E=98=E6=9D=83=20=E9=A9=AC?= Date: Mon, 26 Aug 2024 14:07:02 +0800 Subject: [PATCH 1/3] feat: +omniparse timeout --- metagpt/configs/omniparse_config.py | 1 + metagpt/tools/libs/editor.py | 20 +++++++++++--------- metagpt/utils/omniparse_client.py | 2 +- 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/metagpt/configs/omniparse_config.py b/metagpt/configs/omniparse_config.py index bf1516fc8..ecae78697 100644 --- a/metagpt/configs/omniparse_config.py +++ b/metagpt/configs/omniparse_config.py @@ -3,3 +3,4 @@ from metagpt.utils.yaml_model import YamlModel class OmniParseConfig(YamlModel): url: str = "" + timeout: int = 600 diff --git a/metagpt/tools/libs/editor.py b/metagpt/tools/libs/editor.py index 240c28767..76f009fa6 100644 --- a/metagpt/tools/libs/editor.py +++ b/metagpt/tools/libs/editor.py @@ -3,7 +3,7 @@ import os import shutil import subprocess from pathlib import Path -from typing import List, Optional, Union +from typing import List, Optional, Tuple, Union from pydantic import BaseModel, ConfigDict @@ -251,15 +251,17 @@ class Editor(BaseModel): from metagpt.tools.libs import get_env_default from metagpt.utils.omniparse_client import OmniParseClient - base_url = await get_env_default(key="base_url", app_name="OmniParse", default_value="") - if not base_url: - base_url = await Editor._read_omniparse_config() + base_url1 = await get_env_default(key="base_url", app_name="OmniParse", default_value="") + timeout1 = await get_env_default(key="timeout", app_name="OmniParse", default_value="") + base_url2, timeout2 = await Editor._read_omniparse_config() + + base_url = base_url1 or base_url2 if not base_url: return None api_key = await get_env_default(key="api_key", app_name="OmniParse", default_value="") - v = await get_env_default(key="timeout", app_name="OmniParse", default_value="120") + timeout = timeout1 or timeout2 or 120 try: - timeout = int(v) or 120 + timeout = int(timeout) except ValueError: timeout = 120 @@ -287,8 +289,8 @@ class Editor(BaseModel): return result @staticmethod - async def _read_omniparse_config() -> str: + async def _read_omniparse_config() -> Tuple[str, int]: config = Config.default() if config.omniparse and config.omniparse.url: - return config.omniparse.url - return "" + return config.omniparse.url, config.omniparse.timeout + return "", 0 diff --git a/metagpt/utils/omniparse_client.py b/metagpt/utils/omniparse_client.py index cb2341944..361e84fd1 100644 --- a/metagpt/utils/omniparse_client.py +++ b/metagpt/utils/omniparse_client.py @@ -189,7 +189,7 @@ class OmniParseClient: # Do not verify if only byte data is provided return - file_ext = Path(verify_file_path).suffix + file_ext = Path(verify_file_path).suffix.lower() if file_ext not in allowed_file_extensions: raise ValueError(f"Not allowed {file_ext} File extension must be one of {allowed_file_extensions}") From 16e76179595f6f03f3ce9613c191f609692930b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8E=98=E6=9D=83=20=E9=A9=AC?= Date: Tue, 27 Aug 2024 14:30:56 +0800 Subject: [PATCH 2/3] =?UTF-8?q?feat:=20=E4=BC=98=E5=8C=96=E5=8F=98?= =?UTF-8?q?=E9=87=8F=E5=91=BD=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- metagpt/tools/libs/editor.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/metagpt/tools/libs/editor.py b/metagpt/tools/libs/editor.py index 76f009fa6..e6f1525a4 100644 --- a/metagpt/tools/libs/editor.py +++ b/metagpt/tools/libs/editor.py @@ -251,15 +251,15 @@ class Editor(BaseModel): from metagpt.tools.libs import get_env_default from metagpt.utils.omniparse_client import OmniParseClient - base_url1 = await get_env_default(key="base_url", app_name="OmniParse", default_value="") - timeout1 = await get_env_default(key="timeout", app_name="OmniParse", default_value="") - base_url2, timeout2 = await Editor._read_omniparse_config() + env_base_url = await get_env_default(key="base_url", app_name="OmniParse", default_value="") + env_timeout = await get_env_default(key="timeout", app_name="OmniParse", default_value="") + conf_base_url, conf_timeout = await Editor._read_omniparse_config() - base_url = base_url1 or base_url2 + base_url = env_base_url or conf_base_url if not base_url: return None api_key = await get_env_default(key="api_key", app_name="OmniParse", default_value="") - timeout = timeout1 or timeout2 or 120 + timeout = env_timeout or conf_timeout or 120 try: timeout = int(timeout) except ValueError: From aae2bfe1fafc0df635ab648faa0d8949f93c6ccd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8E=98=E6=9D=83=20=E9=A9=AC?= Date: Tue, 27 Aug 2024 14:59:28 +0800 Subject: [PATCH 3/3] feat: default timeout 120 -> 600 --- metagpt/tools/libs/editor.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/metagpt/tools/libs/editor.py b/metagpt/tools/libs/editor.py index e6f1525a4..478903d9c 100644 --- a/metagpt/tools/libs/editor.py +++ b/metagpt/tools/libs/editor.py @@ -259,11 +259,11 @@ class Editor(BaseModel): if not base_url: return None api_key = await get_env_default(key="api_key", app_name="OmniParse", default_value="") - timeout = env_timeout or conf_timeout or 120 + timeout = env_timeout or conf_timeout or 600 try: timeout = int(timeout) except ValueError: - timeout = 120 + timeout = 600 try: if not await check_http_endpoint(url=base_url):