feat: merge

This commit is contained in:
莘权 马 2023-12-28 18:05:33 +08:00
commit f76078dedf
95 changed files with 1629 additions and 948 deletions

View file

@ -9,7 +9,7 @@ from typing import Optional
from urllib.parse import urlparse
import httplib2
from pydantic import BaseModel, validator
from pydantic import BaseModel, ConfigDict, Field, field_validator
from metagpt.config import CONFIG
from metagpt.logs import logger
@ -25,15 +25,14 @@ except ImportError:
class GoogleAPIWrapper(BaseModel):
google_api_key: Optional[str] = None
google_cse_id: Optional[str] = None
model_config = ConfigDict(arbitrary_types_allowed=True)
google_api_key: Optional[str] = Field(default=None, validate_default=True)
google_cse_id: Optional[str] = Field(default=None, validate_default=True)
loop: Optional[asyncio.AbstractEventLoop] = None
executor: Optional[futures.Executor] = None
class Config:
arbitrary_types_allowed = True
@validator("google_api_key", always=True)
@field_validator("google_api_key", mode="before")
@classmethod
def check_google_api_key(cls, val: str):
val = val or CONFIG.google_api_key
@ -45,7 +44,7 @@ class GoogleAPIWrapper(BaseModel):
)
return val
@validator("google_cse_id", always=True)
@field_validator("google_cse_id", mode="before")
@classmethod
def check_google_cse_id(cls, val: str):
val = val or CONFIG.google_cse_id

View file

@ -8,13 +8,15 @@
from typing import Any, Dict, Optional, Tuple
import aiohttp
from pydantic import BaseModel, Field, validator
from pydantic import BaseModel, ConfigDict, Field, field_validator
from metagpt.config import CONFIG
class SerpAPIWrapper(BaseModel):
search_engine: Any #: :meta private:
model_config = ConfigDict(arbitrary_types_allowed=True)
search_engine: Any = None #: :meta private:
params: dict = Field(
default={
"engine": "google",
@ -23,13 +25,11 @@ class SerpAPIWrapper(BaseModel):
"hl": "en",
}
)
serpapi_api_key: Optional[str] = None
# should add `validate_default=True` to check with default value
serpapi_api_key: Optional[str] = Field(default=None, validate_default=True)
aiosession: Optional[aiohttp.ClientSession] = None
class Config:
arbitrary_types_allowed = True
@validator("serpapi_api_key", always=True)
@field_validator("serpapi_api_key", mode="before")
@classmethod
def check_serpapi_api_key(cls, val: str):
val = val or CONFIG.serpapi_api_key

View file

@ -9,21 +9,18 @@ import json
from typing import Any, Dict, Optional, Tuple
import aiohttp
from pydantic import BaseModel, Field, validator
from pydantic import BaseModel, Field, field_validator
from metagpt.config import CONFIG
class SerperWrapper(BaseModel):
search_engine: Any #: :meta private:
search_engine: Any = None #: :meta private:
payload: dict = Field(default={"page": 1, "num": 10})
serper_api_key: Optional[str] = None
serper_api_key: Optional[str] = Field(default=None, validate_default=True)
aiosession: Optional[aiohttp.ClientSession] = None
class Config:
arbitrary_types_allowed = True
@validator("serper_api_key", always=True)
@field_validator("serper_api_key", mode="before")
@classmethod
def check_serper_api_key(cls, val: str):
val = val or CONFIG.serper_api_key