summaryrefslogtreecommitdiffstats
path: root/g4f/Provider/Liaobots.py
diff options
context:
space:
mode:
Diffstat (limited to 'g4f/Provider/Liaobots.py')
-rw-r--r--g4f/Provider/Liaobots.py35
1 files changed, 27 insertions, 8 deletions
diff --git a/g4f/Provider/Liaobots.py b/g4f/Provider/Liaobots.py
index ea3e0d45..e65c3a0d 100644
--- a/g4f/Provider/Liaobots.py
+++ b/g4f/Provider/Liaobots.py
@@ -30,8 +30,8 @@ models = {
}
class Liaobots(AsyncGeneratorProvider):
- url = "https://liaobots.com"
- working = False
+ url = "https://liaobots.site"
+ working = True
supports_gpt_35_turbo = True
supports_gpt_4 = True
_auth_code = None
@@ -43,6 +43,7 @@ class Liaobots(AsyncGeneratorProvider):
messages: list[dict[str, str]],
auth: str = None,
proxy: str = None,
+ timeout: int = 30,
**kwargs
) -> AsyncGenerator:
model = model if model in models else "gpt-3.5-turbo"
@@ -54,13 +55,25 @@ class Liaobots(AsyncGeneratorProvider):
"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",
}
async with ClientSession(
- headers=headers
+ headers=headers, timeout=timeout
) as session:
- auth_code = auth if isinstance(auth, str) else cls._auth_code
- if not auth_code:
- async with session.post(cls.url + "/api/user", proxy=proxy, json={"authcode": ""}) as response:
+ cls._auth_code = auth if isinstance(auth, str) else cls._auth_code
+ if not cls._auth_code:
+ async with session.post(
+ "https://liaobots.work/recaptcha/api/login",
+ proxy=proxy,
+ data={"token": "abcdefghijklmnopqrst"},
+ verify_ssl=False
+ ) as response:
response.raise_for_status()
- auth_code = cls._auth_code = json.loads(await response.text())["authCode"]
+ async with session.post(
+ "https://liaobots.work/api/user",
+ proxy=proxy,
+ json={"authcode": ""},
+ verify_ssl=False
+ ) as response:
+ response.raise_for_status()
+ cls._auth_code = (await response.json(content_type=None))["authCode"]
data = {
"conversationId": str(uuid.uuid4()),
"model": models[model],
@@ -68,7 +81,13 @@ class Liaobots(AsyncGeneratorProvider):
"key": "",
"prompt": "You are ChatGPT, a large language model trained by OpenAI. Follow the user's instructions carefully.",
}
- async with session.post(cls.url + "/api/chat", proxy=proxy, json=data, headers={"x-auth-code": auth_code}) as response:
+ async with session.post(
+ "https://liaobots.work/api/chat",
+ proxy=proxy,
+ json=data,
+ headers={"x-auth-code": cls._auth_code},
+ verify_ssl=False
+ ) as response:
response.raise_for_status()
async for stream in response.content.iter_any():
if stream: