""" freeGPT's gpt4 module """ from uuid import uuid4 from re import findall from curl_cffi.requests import get, RequestsError class Completion: """ This class provides methods for generating completions based on prompts. """ async def create(self, prompt): """ Generate a completion based on the provided prompt. Args: prompt (str): The input prompt to generate a completion from. Returns: str: The generated completion as a text string. Raises: Exception: If the response does not contain the expected "youChatToken". """ resp = get( "https://you.com/api/streamingSearch", headers={ "cache-control": "no-cache", "referer": "https://you.com/search?q=gpt4&tbm=youchat", "cookie": f"safesearch_guest=Off; uuid_guest={str(uuid4())}", }, params={ "q": prompt, "page": 1, "count": 10, "safeSearch": "Off", "onShoppingPage": False, "mkt": "", "responseFilter": "WebPages,Translations,TimeZone,Computation,RelatedSearches", "domain": "youchat", "queryTraceId": str(uuid4()), "chat": [], }, impersonate="chrome107", ) if "youChatToken" not in resp.text: raise RequestsError("Unable to fetch response.") return ( "".join(findall(r"{\"youChatToken\": \"(.*?)\"}", resp.text)) .replace("\\n", "\n") .replace("\\\\", "\\") .replace('\\"', '"') )