|
import io |
|
from fastapi import FastAPI, File, UploadFile |
|
|
|
import subprocess |
|
import os |
|
import requests |
|
import random |
|
|
|
|
|
import shutil |
|
import json |
|
|
|
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 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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=['*'], |
|
) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
from selenium.webdriver.common.by import By |
|
from pymongo.mongo_client import MongoClient |
|
|
|
@app.on_event("startup") |
|
async def startup_event(): |
|
print("on startup") |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
chrome_driver_path = '/usr/local/bin/chromedriver' |
|
|
|
@app.post("/llama") |
|
async def get_answer_llama(request: Request ): |
|
data = await request.json() |
|
text = data['text'] |
|
print("recived ",text) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
res= do_ML_LLAMA13b(text,0) |
|
|
|
dict={"LLAMA":res} |
|
|
|
return JSONResponse(dict) |
|
|
|
|
|
|
|
|
|
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): |
|
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) |
|
|
|
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" |
|
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: |
|
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) |
|
return x |
|
except: |
|
continue |
|
|
|
|
|
|
|
|
|
return " --Error Occurred-- " |
|
|
|
|
|
|
|
except: |
|
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): |
|
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) |
|
|
|
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" |
|
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") |
|
return do_ML_LLAMA7b(text, trycount) |
|
except: |
|
pass |
|
|
|
|
|
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) |
|
return x |
|
except: |
|
continue |
|
|
|
|
|
|
|
|
|
return " --Error Occurred-- " |
|
|
|
|
|
|
|
except: |
|
return "Error Occurred " |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@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): |
|
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) |
|
|
|
textarea_element.send_keys(Keys.SHIFT + Keys.ENTER) |
|
break |
|
except: |
|
continue |
|
|
|
while True: |
|
currtime= time.time() |
|
if(currtime>starttime+20): |
|
return "Requested Could not be proceed" |
|
try: |
|
|
|
|
|
button_id = 'component-9' |
|
button_element = driver.find_element(By.ID,button_id) |
|
|
|
|
|
button_element.click() |
|
break |
|
except Exception as e: |
|
print(e) |
|
time.sleep(0.2) |
|
|
|
|
|
prev ="" |
|
|
|
|
|
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" |
|
|
|
|
|
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: |
|
|
|
return |
|
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): |
|
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) |
|
|
|
textarea_element.send_keys(Keys.SHIFT + Keys.ENTER) |
|
textarea_element.send_keys('\n') |
|
break |
|
except: |
|
continue |
|
|
|
|
|
prev ="" |
|
|
|
|
|
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.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") |
|
|
|
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): |
|
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) |
|
|
|
textarea_element.send_keys(Keys.SHIFT + Keys.ENTER) |
|
time.sleep(0.5) |
|
textarea_element.send_keys('\n') |
|
break |
|
except: |
|
continue |
|
|
|
|
|
prev ="" |
|
|
|
|
|
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 |
|
|
|
try: |
|
div_element = driver.find_element(By.CSS_SELECTOR,'div[data-testid="bot"]') |
|
text_content = div_element.text |
|
print(text_content) |
|
return text_content |
|
|
|
except Exception as e: |
|
print(e) |
|
continue |
|
|
|
|
|
|
|
driver.quit() |
|
return " --Error Occurred-- " |
|
|
|
|
|
|
|
except: |
|
print("Error") |
|
|
|
return "Error Occureed" |
|
|
|
|