diff options
Diffstat (limited to 'g4f/Provider/Liaobots.py')
-rw-r--r-- | g4f/Provider/Liaobots.py | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/g4f/Provider/Liaobots.py b/g4f/Provider/Liaobots.py index 5151c115..b16b44d3 100644 --- a/g4f/Provider/Liaobots.py +++ b/g4f/Provider/Liaobots.py @@ -2,7 +2,7 @@ from __future__ import annotations import uuid -from aiohttp import ClientSession +from aiohttp import ClientSession, BaseConnector from ..typing import AsyncResult, Messages from .base_provider import AsyncGeneratorProvider, ProviderModelMixin @@ -91,6 +91,7 @@ class Liaobots(AsyncGeneratorProvider, ProviderModelMixin): messages: Messages, auth: str = None, proxy: str = None, + connector: BaseConnector = None, **kwargs ) -> AsyncResult: headers = { @@ -100,9 +101,16 @@ class Liaobots(AsyncGeneratorProvider, ProviderModelMixin): "referer": f"{cls.url}/", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36", } + if proxy and not connector: + try: + from aiohttp_socks import ProxyConnector + connector = ProxyConnector.from_url(proxy) + except ImportError: + raise RuntimeError('Install "aiohttp_socks" package for proxy support') async with ClientSession( headers=headers, - cookie_jar=cls._cookie_jar + cookie_jar=cls._cookie_jar, + connector=connector ) as session: cls._auth_code = auth if isinstance(auth, str) else cls._auth_code if not cls._auth_code: |