XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet
公开
关注 0 Fork 0 Star 1
返回提交历史

XFEstudio/gpt4free

perf(cookies): cache negative cookie lookups and resolve getattr model_aliases error

b76b6b64
Anand Mall <anand@example.com>
提交于

代码差异

3 个文件 +18 -4
Modified g4f/__init__.py +1 -1
@@ -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
Modified g4f/cookies.py +16 -2
@@ -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:
Modified g4f/providers/retry_provider.py +1 -1
@@ -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)