返回提交历史
Modified
g4f/__init__.py
+1
-1
Modified
g4f/cookies.py
+16
-2
Modified
g4f/providers/retry_provider.py
+1
-1
XFEstudio/gpt4free
perf(cookies): cache negative cookie lookups and resolve getattr model_aliases error
b76b6b64
代码差异
3 个文件
+18
-4
@@ -9,7 +9,7 @@ from . import debug, version
9
9
from .models import Model
10
10
from .client import Client, AsyncClient, ClientFactory, create_custom_provider
11
11
from .typing import Messages, CreateResult, AsyncResult, ImageType
12
from .cookies import get_cookies, set_cookies
12
from .cookies import get_cookies, get_cookies_async, set_cookies
13
13
from .providers.types import ProviderType
14
14
from .providers.base_provider import get_async_provider_method, get_provider_method
15
15
from .providers.helper import concat_chunks, async_concat_chunks
@@ -141,12 +141,26 @@ def get_cookies(
141
141
domain_name, raise_requirements_error, single_browser
142
142
)
143
143
if single_browser != "all" and cache_result:
144
if len(cookies) > 0:
145
CookiesConfig.cookies[domain_name] = cookies
144
CookiesConfig.cookies[domain_name] = cookies
146
145
return CookiesConfig.cookies.get(domain_name, {})
147
146
return cookies
148
147
149
148
149
async def get_cookies_async(
150
domain_name: str,
151
raise_requirements_error: bool = True,
152
single_browser: Optional[str] = None,
153
cache_result: bool = True,
154
) -> Dict[str, str]:
155
"""Async helper to load cookies without blocking the event loop."""
156
if single_browser != "all" and domain_name in CookiesConfig.cookies:
157
return CookiesConfig.cookies[domain_name]
158
import asyncio
159
return await asyncio.to_thread(
160
get_cookies, domain_name, raise_requirements_error, single_browser, cache_result
161
)
162
163
150
164
def set_cookies(domain_name: str, cookies: Cookies = None) -> None:
151
165
"""Set or remove cookies for a given domain in the cache."""
152
166
if cookies:
@@ -14,7 +14,7 @@ from ..errors import RetryProviderError, RetryNoProviderError
14
14
15
15
def _resolve_model(provider: Type[BaseProvider], model: str) -> str:
16
16
alias = model or getattr(provider, "default_model", None)
17
if getattr(provider, "model_aliases"):
17
if getattr(provider, "model_aliases", None):
18
18
alias = provider.model_aliases.get(model, model)
19
19
if isinstance(alias, list):
20
20
alias = random.choice(alias)