import sys import json import datetime 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