import io from fastapi import FastAPI, File, UploadFile import subprocess import os import requests import random # import undetected_chromedriver as uc import shutil import json # from transformers import AutoModelForQuestionAnswering, AutoTokenizer, pipeline from pydantic import BaseModel from typing import Annotated from fastapi import Form import selenium from selenium import webdriver from selenium.webdriver import ChromeOptions from selenium.webdriver.chrome.service import Service import threading import random import string from selenium.webdriver.common.keys import Keys import time # from selenium.webdriver.firefox.options import Options # options = FirefoxOptions() # options.headless = True # service = Service() # driver = webdriver.Firefox(options= options,service=service) # driver.get("https://yuntian-deng-chatgpt.hf.space/") # driver.get("https://yuntian-deng-chatgpt.hf.space/") class Query(BaseModel): text: str host:str from fastapi import FastAPI, Request, Depends, UploadFile, File from fastapi.exceptions import HTTPException from fastapi.middleware.cors import CORSMiddleware from fastapi.responses import JSONResponse app = FastAPI() app.add_middleware( CORSMiddleware, allow_origins=['*'], allow_credentials=True, allow_methods=['*'], allow_headers=['*'], ) # cred = credentials.Certificate('key.json') # app1 = firebase_admin.initialize_app(cred) # db = firestore.client() # data_frame = pd.read_csv('data.csv') from selenium.webdriver.common.by import By from pymongo.mongo_client import MongoClient @app.on_event("startup") async def startup_event(): x=requests.get('https://open-ai-ping-eight.vercel.app/proxy') print("response ", x.text) print("on startup") # t = threading.Thread(target=makeqimg) # t.start() proxy =None llama_last_error=0 # LLAMA chrome_driver_path = '/usr/local/bin/chromedriver-linux64/chromedriver' @app.post("/llama") async def get_answer_llama(request: Request ): data = await request.json() text = data['text'] text = text.replace('\n', ' : ') # print("recived ",text) proxy=None # try: # proxy = data['proxy'] # except: # pass # print('proxy ip ', proxy ) currtime= time.time() res= "" if currtime-llama_last_error<=3600: res = do_ML_LLAMA7b(text,0) else: res= do_ML_LLAMA70b_chori(text,0, proxy) dict={"LLAMA":res} return JSONResponse(dict) def do_ML_LLAMA70b_chori(text:str, trycount:int, proxy:str): starttime=time.time() options = ChromeOptions() global llama_last_error options.add_argument('--no-sandbox') options.add_argument('-headless') options.add_argument("start-maximized") options.add_argument("--ignore-certificate-errors") service = Service(executable_path=chrome_driver_path) driver = webdriver.Chrome(options= options,service=service) driver.get("https://chansung-llama2-with-gradio-chat.hf.space/?") try: while True: currtime= time.time() if(currtime>starttime+20): driver.delete_all_cookies() llama_last_error= currtime driver.quit() return "Requested Could not be proceed" try: control_panel_span = driver.find_element(By.XPATH,'//span[@class="svelte-s1r2yt" and contains(text(), "Control Panel")]') control_panel_span.click() time.sleep(0.5) input_element = driver.find_element(By.CSS_SELECTOR,'[data-testid="number-input"]') new_value = "4000" # Replace this with the value you want to set input_element.clear() # Clear the current value if needed input_element.send_keys(new_value) xpath = "//textarea[@data-testid='textbox' and @placeholder='Ask anything']" textarea = driver.find_element(By.XPATH,xpath) textarea.clear() textarea.send_keys(text) textarea.send_keys("\n") break except Exception as e: print(e) continue prev ="" time.sleep(0.6) while True: time.sleep(0.5) currtime= time.time() if(currtime>starttime+170): driver.delete_all_cookies() driver.quit() llama_last_error= currtime return "Requested Could not be proceed" try: div_element = driver.find_element(By.CSS_SELECTOR,'div.wrap.default.full.svelte-zlszon.generating') print("generating") continue; except: print('done gen ') div_element = driver.find_elements(By.CLASS_NAME,'md.svelte-9tftx4.chatbot') div_element= div_element[1] # Extract and print the text content of the div element div_text = div_element.text print(div_text) driver.delete_all_cookies() driver.quit() return div_text driver.delete_all_cookies() driver.quit() return " --Error Occurred-- " except: driver.delete_all_cookies() driver.quit() currtime= time.time() llama_last_error= currtime return "Error Occurred " def do_ML_LLAMA70b(text:str, trycount:int, proxy:str): starttime=time.time() options = ChromeOptions() options.add_argument('--no-sandbox') options.add_argument('-headless') options.add_argument("start-maximized") options.add_argument("--ignore-certificate-errors") proxy_port = "8080" proxy_ip= proxy print("pxoxy ip ",proxy_ip) proxy_ip = f"{proxy_ip}:{proxy_port}" print("proxy final ", proxy_ip) options.add_argument(f'--proxy-server=http://{proxy_ip}') service = Service(executable_path=chrome_driver_path) driver = webdriver.Chrome(options= options,service=service) driver.get("https://huggingface.co/chat/") try: while True: currtime= time.time() if(currtime>starttime+20): driver.delete_all_cookies() driver.quit() return "Requested Could not be proceed" try: # xpath_expression = '//textarea[@data-testid="tex textarea_element = driver.find_element(By.XPATH, "//textarea[@placeholder='Ask anything']") # for line in text.split('\n'): textarea_element.send_keys(text) # textarea_element.send_keys(Keys.SHIFT + Keys.ENTER) textarea_element.send_keys('\n') break except Exception as e: print(e) continue prev ="" time.sleep(0.6) while True: time.sleep(0.5) currtime= time.time() if(currtime>starttime+170): driver.delete_all_cookies() driver.quit() return "Requested Could not be proceed" try: class_name = "-ml-1" svg_elements = driver.find_element(By.CLASS_NAME, class_name) continue except: print("not found") element = driver.find_element(By.CLASS_NAME, "prose") # Find the element by its class name element_text = element.text # Extract the text from the element driver.delete_all_cookies() driver.quit() return element_text driver.delete_all_cookies() driver.quit() return " --Error Occurred-- " except: driver.delete_all_cookies() driver.quit() return "Error Occurred " def do_ML_LLAMA7b(text:str, trycount:int): starttime=time.time() options = ChromeOptions() options.add_argument('--no-sandbox') options.add_argument('-headless') options.add_argument("start-maximized") service = Service(executable_path=chrome_driver_path) driver = webdriver.Chrome(options= options,service=service) driver.get("https://huggingface-projects-llama-2-7b-chat.hf.space") try: while True: currtime= time.time() if(currtime>starttime+20): driver.delete_all_cookies() driver.quit() return "Requested Could not be proceed" try: xpath_expression = '//textarea[@data-testid="textbox"]' textarea_element = driver.find_element(By.XPATH, xpath_expression) for line in text.split('\n'): textarea_element.send_keys(line) # Simulate pressing the 'Shift + Enter' keys to add a newline without triggering submit textarea_element.send_keys(Keys.SHIFT + Keys.ENTER) span_element = driver.find_element(By.CLASS_NAME, 'svelte-s1r2yt') span_element.click() input_element = driver.find_element(By.CSS_SELECTOR, 'input[data-testid="number-input"]') new_value = "2048" # Replace this with the value you want to set input_element.clear() input_element.send_keys(new_value) textarea_element.send_keys('\n') break except: continue prev ="" time.sleep(0.6) while True: time.sleep(0.5) currtime= time.time() if(currtime>starttime+170): driver.delete_all_cookies() driver.quit() return "Requested Could not be proceed" # value="" try: div_element = driver.find_element(By.CLASS_NAME, 'wrap.default.minimal.svelte-zlszon.translucent.hide') element = driver.find_element(By.XPATH,'//div[@data-testid="bot" and contains(@class, "message bot")]') x=(element.text) driver.delete_all_cookies() driver.quit() return x except: continue driver.delete_all_cookies() driver.quit() return " --Error Occurred-- " except: driver.delete_all_cookies() driver.quit() return "Error Occurred " def do_ML_LLAMA13b(text:str, trycount:int): starttime=time.time() options = ChromeOptions() options.add_argument('--no-sandbox') options.add_argument('-headless') options.add_argument("start-maximized") service = Service(executable_path=chrome_driver_path) driver = webdriver.Chrome(options= options,service=service) driver.get("https://huggingface-projects-llama-2-13b-chat--mkxgl.hf.space/") try: while True: currtime= time.time() if(currtime>starttime+20): driver.delete_all_cookies() driver.quit() return "Requested Could not be proceed" try: xpath_expression = '//textarea[@data-testid="textbox"]' textarea_element = driver.find_element(By.XPATH, xpath_expression) for line in text.split('\n'): textarea_element.send_keys(line) # Simulate pressing the 'Shift + Enter' keys to add a newline without triggering submit textarea_element.send_keys(Keys.SHIFT + Keys.ENTER) span_element = driver.find_element(By.CLASS_NAME, 'svelte-s1r2yt') span_element.click() input_element = driver.find_element(By.CSS_SELECTOR, 'input[data-testid="number-input"]') new_value = "2048" # Replace this with the value you want to set input_element.clear() input_element.send_keys(new_value) textarea_element.send_keys('\n') break except: continue prev ="" time.sleep(0.6) while True: time.sleep(0.5) currtime= time.time() if(currtime>starttime+170): driver.delete_all_cookies() driver.quit() return "Requested Could not be proceed" try: queue_element = driver.find_element(By.CLASS_NAME,'progress-text') queue_text = queue_element.text print(queue_text) if "queue" in queue_text: print("Queue is present") driver.delete_all_cookies() driver.quit() return do_ML_LLAMA7b(text, trycount) except: pass # value="" try: div_element = driver.find_element(By.CLASS_NAME, 'wrap.default.minimal.svelte-zlszon.translucent.hide') element = driver.find_element(By.XPATH,'//div[@data-testid="bot" and contains(@class, "message bot")]') x=(element.text) driver.delete_all_cookies() driver.quit() return x except: continue driver.delete_all_cookies() driver.quit() return " --Error Occurred-- " except: driver.delete_all_cookies() driver.quit() return "Error Occurred " ########## MPT @app.post("/mpt") async def get_answer_mpt(request: Request ): data = await request.json() text = data['text'] print("recived ",text) res= do_ML_MPT(text,0) dict={"MPT":res} return JSONResponse(dict) def do_ML_MPT(text:str, trycount:int): starttime=time.time() options = ChromeOptions() options.add_argument('--no-sandbox') options.add_argument('-headless') options.add_argument("start-maximized") service = Service(executable_path=chrome_driver_path) driver = webdriver.Chrome(options= options,service=service) driver.get("https://mosaicml-mpt-30b-chat.hf.space") try: while True: currtime= time.time() if(currtime>starttime+20): driver.delete_all_cookies() driver.quit() return "Requested Could not be proceed" try: textarea_xpath = "//textarea[@data-testid='textbox' and @class='scroll-hide svelte-1pie7s6' and @placeholder='Chat Message Box']" textarea_element = driver.find_element(By.XPATH,textarea_xpath) for line in text.split('\n'): textarea_element.send_keys(line) # Simulate pressing the 'Shift + Enter' keys to add a newline without triggering submit textarea_element.send_keys(Keys.SHIFT + Keys.ENTER) break except: continue while True: currtime= time.time() if(currtime>starttime+20): driver.delete_all_cookies() driver.quit() return "Requested Could not be proceed" try: button_id = 'component-9' # Replace 'comonent-7' with the actual ID button_element = driver.find_element(By.ID,button_id) # Perform actions on the element (e.g., clicking the button) button_element.click() break except Exception as e: print(e) time.sleep(0.2) prev ="" # time.sleep(2) while True: time.sleep(0.5) currtime= time.time() if(currtime>starttime+120): driver.delete_all_cookies() driver.quit() return "Requested Could not be proceed" # value="" try: element = driver.find_element(By.XPATH,'//div[@data-testid="bot" and contains(@class, "message bot")]') x=(element.text) print("From text ",x) if x=="": raise ValueError(" k") driver.quit() return x except Exception as e: print(e) continue driver.quit() return " --Error Occurred-- " except: print("Error") if trycount>1: driver.delete_all_cookies() driver.quit() return "Error" driver.quit() return do_ML_MPT(text,trycount+1) '''Falcon 40 b intruct''' @app.post("/falcon") async def get_answer_falcon(request: Request ): data = await request.json() text = data['text'] print("recived ",text) res= do_ML_FALCON(text,0) dict={"FALCON":res} return JSONResponse(dict) def do_ML_FALCON(text:str, trycount:int): starttime=time.time() options = ChromeOptions() options.add_argument('--no-sandbox') options.add_argument('-headless') options.add_argument("start-maximized") service = Service(executable_path=chrome_driver_path) driver = webdriver.Chrome(options= options,service=service) driver.get("https://huggingfaceh4-falcon-chat.hf.space") try: while True: currtime= time.time() if(currtime>starttime+20): driver.delete_all_cookies() driver.quit() return "Requested Could not be proceed" try: textarea_element = driver.find_element(By.CSS_SELECTOR,'textarea[placeholder="Hello Falcon !!"]') for line in text.split('\n'): textarea_element.send_keys(line) # Simulate pressing the 'Shift + Enter' keys to add a newline without triggering submit textarea_element.send_keys(Keys.SHIFT + Keys.ENTER) textarea_element.send_keys('\n') break except: continue prev ="" # time.sleep(2) while True: time.sleep(0.5) currtime= time.time() if(currtime>starttime+170): driver.delete_all_cookies() driver.quit() return "Requested Could not be proceed" # value="" try: div_element = driver.find_element(By.CSS_SELECTOR,'div[data-testid="bot"]') div_text = div_element.text print(div_text) if prev==div_text and prev !="": driver.quit() return div_text prev= div_text except Exception as e: print(e) continue driver.quit() return " --Error Occurred-- " except: print("Error") driver.delete_all_cookies() driver.quit() return "Error Occureed" '''Star Code''' @app.post("/starcode") async def get_answer_falcon(request: Request ): data = await request.json() text = data['text'] print("recived ",text) res= do_ML_STARCODE(text,0) dict={"RESULT":res} return JSONResponse(dict) def do_ML_STARCODE(text:str, trycount:int): starttime=time.time() options = ChromeOptions() options.add_argument('--no-sandbox') options.add_argument('-headless') options.add_argument("start-maximized") service = Service(executable_path=chrome_driver_path) driver = webdriver.Chrome(options= options,service=service) driver.get("https://huggingfaceh4-starchat-playground.hf.space/") try: while True: currtime= time.time() if(currtime>starttime+20): driver.delete_all_cookies() driver.quit() return "Requested Could not be proceed" try: textarea_element = driver.find_element(By.CSS_SELECTOR,'textarea[placeholder="Enter your message here"]') for line in text.split('\n'): textarea_element.send_keys(line) # Simulate pressing the 'Shift + Enter' keys to add a newline without triggering submit textarea_element.send_keys(Keys.SHIFT + Keys.ENTER) time.sleep(0.5) textarea_element.send_keys('\n') break except: continue prev ="" # time.sleep(2) while True: time.sleep(0.5) currtime= time.time() if(currtime>starttime+170): driver.delete_all_cookies() driver.quit() return "Requested Could not be proceed" try: div_element = driver.find_element(By.CLASS_NAME,'svelte-j1gjts.generating') continue except: pass # value="" try: div_element = driver.find_element(By.CSS_SELECTOR,'div[data-testid="bot"]') text_content = div_element.text print(text_content) driver.delete_all_cookies() driver.quit() return text_content except Exception as e: print(e) continue driver.quit() return " --Error Occurred-- " except: print("Error") driver.delete_all_cookies() driver.quit() return "Error Occureed"