import datetime import json import sys import urllib.parse from curl_cffi import requests config = json.loads(sys.argv[1]) prompt = config["messages"][-1]["content"] skill = "expert" if config["model"] == "gpt-4" else "intermediate" json_data = json.dumps( { "question": prompt, "options": { "skill": skill, "date": datetime.datetime.now().strftime("%d/%m/%Y"), "language": "en", "detailed": True, "creative": True, "customLinks": [], }, }, separators=(",", ":"), ) headers = { "Content-Type": "application/json", "Pragma": "no-cache", "Accept": "*/*", "Sec-Fetch-Site": "same-origin", "Accept-Language": "en-GB,en;q=0.9", "Cache-Control": "no-cache", "Sec-Fetch-Mode": "cors", "Content-Length": str(len(json_data)), "Origin": "https://www.phind.com", "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.4 Safari/605.1.15", "Referer": f"https://www.phind.com/search?q={urllib.parse.quote(prompt)}&source=searchbox", "Connection": "keep-alive", "Host": "www.phind.com", "Sec-Fetch-Dest": "empty", } def output(chunk): try: if b"PHIND_METADATA" in chunk: return if chunk == b"data: \r\ndata: \r\ndata: \r\n\r\n": chunk = b"data: \n\r\n\r\n" chunk = chunk.decode() chunk = chunk.replace("data: \r\n\r\ndata: ", "data: \n") chunk = chunk.replace("\r\ndata: \r\ndata: \r\n\r\n", "\n\r\n\r\n") chunk = chunk.replace("data: ", "").replace("\r\n\r\n", "") print(chunk, flush=True, end="") except json.decoder.JSONDecodeError: pass while True: try: response = requests.post( "https://www.phind.com/api/infer/answer", headers=headers, data=json_data, content_callback=output, timeout=999999, impersonate="safari15_5", ) exit(0) except Exception as e: print("an error occured, retrying... |", e, flush=True) continue