Merge branch 'fixbug/omniparse_timeout' into 'mgx_ops'

feat: +omniparse timeout

See merge request pub/MetaGPT!351
This commit is contained in:
张雷 2024-08-27 07:00:42 +00:00
commit 82e848a2f7
3 changed files with 14 additions and 11 deletions

View file

@ -3,3 +3,4 @@ from metagpt.utils.yaml_model import YamlModel
class OmniParseConfig(YamlModel):
url: str = ""
timeout: int = 600

View file

@ -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,17 +251,19 @@ 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()
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 = 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="")
v = await get_env_default(key="timeout", app_name="OmniParse", default_value="120")
timeout = env_timeout or conf_timeout or 600
try:
timeout = int(v) or 120
timeout = int(timeout)
except ValueError:
timeout = 120
timeout = 600
try:
if not await check_http_endpoint(url=base_url):
@ -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

View file

@ -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}")