gpt / gpt4free /g4f /Provider /needs_auth /CopilotAccount.py
LoRDxdd's picture
Add gpt4free API for Hugging Face
a4b70d9
from __future__ import annotations
import os
from typing import AsyncIterator
from ..Copilot import Copilot, readHAR, has_nodriver, get_access_token_and_cookies
from ...providers.response import AuthResult, RequestLogin
from ...errors import NoValidHarFileError
from ... import debug
class CopilotAccount(Copilot):
needs_auth = True
use_nodriver = True
parent = "Copilot"
default_model = "Copilot"
default_vision_model = default_model
model_aliases = {
"gpt-4": default_model,
"gpt-4o": default_model,
"o1": "Think Deeper",
"dall-e-3": default_model
}
@classmethod
async def on_auth_async(cls, proxy: str = None, **kwargs) -> AsyncIterator:
try:
cls._access_token, cls._cookies = readHAR(cls.url)
except NoValidHarFileError as h:
debug.log(f"Copilot: {h}")
if has_nodriver:
yield RequestLogin(cls.label, os.environ.get("G4F_LOGIN_URL", ""))
cls._access_token, cls._cookies = await get_access_token_and_cookies(cls.url, proxy)
else:
raise h
yield AuthResult(
api_key=cls._access_token,
cookies=cls.cookies_to_dict()
)