flasktestgradio / app.py
tommy24's picture
Update app.py
cc1a61d
# import gradio as gr
# import requests
# import os
# def function(Textbox,Textbox2):
# target = os.environ.get("target")
# target2 = os.environ.get("target2")
# model = os.environ.get("model")
# hrc = os.environ.get("hrc")
# content = os.environ.get("content")
# if Textbox2 == target:
# payload = {
# "model": "gpt-3.5-turbo",
# "messages": [{"role": "system", "content": content},{"role": "user", "content": Textbox}],
# "temperature" : 1.0,
# "top_p":1.0,
# "n" : 1,
# "stream": False,
# "presence_penalty":0,
# "frequency_penalty":0,
# }
# headers = {
# "Content-Type": "application/json",
# "Authorization": f"Bearer {target2}"
# }
# response = requests.post(hrc, headers=headers, json=payload, stream=False)
# response = response.json()
# return response["choices"][0]["message"]["content"]
# else:
# return "Failed"
# inputs = [
# gr.inputs.Textbox(label="Textbox",type="text"),
# gr.inputs.Textbox(label="Textbox2",type="password")
# ]
# iface = gr.Interface(fn=function, inputs=inputs, outputs="text")
# iface.launch()
# import gradio as gr
# import requests
# import openai
# import os
# def function(Textbox,Textbox3):
# target = os.environ.get("target")
# target2 = os.environ.get("target2")
# openai.api_key = target2
# content = os.environ.get("content")
# # model = os.environ.get("model")
# # hrc = os.environ.get("hrc")
# if Textbox3 == target:
# messages = [
# {"role": "system", "content": content},
# ]
# messages.append(
# {"role": "user", "content": Textbox},
# )
# chat = openai.ChatCompletion.create(
# model="gpt-3.5-turbo", messages=messages
# )
# reply = chat.choices[0].message.content
# messages.append({"role": "assistant", "content": reply})
# return reply
# else:
# return "Failed"
# inputs = [
# gr.inputs.Textbox(label="Textbox",type="text"),
# # gr.inputs.Textbox(label="Textbox2",type="text"),
# gr.inputs.Textbox(label="Textbox3",type="password")
# ]
# iface = gr.Interface(fn=function, inputs=inputs, outputs="text")
# iface.launch()
from time import sleep
from io import BytesIO
from PIL import Image
import gradio as gr
import numpy as np
import replicate
import traceback
import requests
import openai
import random
import base64
import json
import os
import urllib.request
from pydub import AudioSegment
def function(Textbox, Textbox2, Textbox3, Dropdown):
target = os.environ.get("target")
target2 = os.environ.get("target2")
target3 = os.environ.get("target3")
os.environ["REPLICATE_API_TOKEN"]
base = os.environ.get("base")
openai.api_base = base
openai.api_key = target2
content = os.environ.get("content")
model = os.environ.get("model")
link1 = os.environ.get("link1")
path = os.environ.get("path")
link2 = os.environ.get("link2")
if "/web" in Textbox.lower() or "web" in Textbox.lower():
try:
prompt = Textbox.replace("/web", "")
except:
prompt = Textbox.replace("web", "")
headers = {
"authority": link1,
"method": "POST",
"path": path,
"scheme": "https",
"accept": "application/json, text/plain, */*",
"accept-encoding": "gzip, deflate, br",
"accept-language": "en-US,en;q=0.9",
"content-length": "88",
"content-type": "application/json",
"origin": link2,
"referer": f"{link2}/",
"sec-ch-ua": '"Google Chrome";v="111", "Not(A:Brand";v="8", "Chromium";v="111"',
"sec-ch-ua-mobile": "?0",
"sec-ch-ua-platform": '"Windows"',
"sec-fetch-dest": "empty",
"sec-fetch-mode": "cors",
"sec-fetch-site": "same-site",
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36"
}
href = os.environ.get("href")
response = requests.post(href, json={
"Body": prompt,
"From": f"4b7cec35-d15b-422d-838f-b25583bde426{random.randint(1,100)}"
}, headers=headers)
data = response.json()
data = data["message"]
trigger = os.environ.get("trigger")
if trigger in data:
data = data.replace(trigger, "John")
return data
else:
return data
else:
def download_image(url):
try:
with urllib.request.urlopen(url) as response:
image_data = response.read()
image = Image.open(BytesIO(image_data))
image_array = np.array(image)
return image_array
except urllib.error.URLError as e:
print('URL Error:', str(e))
except IOError as e:
print('IO Error:', str(e))
if Textbox3 == target:
if Dropdown == "Option1":
def get_current_time(location):
url = "https://api.api-ninjas.com/v1/worldtime?city="
url += location
headers = {
'X-Api-Key': 'Fl79Q6SqQz8BWQcaYGeQ5A==o5DKruyij5IfnMLM'
}
response = requests.request("GET", url, headers=headers)
data = response.json()
if response.status_code == 200:
time = data
return f"The current time in {location} is {time}."
else:
return f"Failed to retrieve the current time for {location}."
Textbox2 = Textbox2.replace("[", "").replace("]", "").replace("'", "")
Textbox2 = Textbox2.split(",")
Textbox2_edited = [x.strip() for x in Textbox2]
Textbox2_edited = list(Textbox2_edited)
Textbox2_edited.append(Textbox)
data = {
"messages": [
{"role": "system", "content": content}
]
}
for i in Textbox2_edited:
data["messages"].append(
{"role": "user", "content": i}
)
try:
sleep(0.8)
def chat_with_assistant(messages, functions=None):
chat = openai.ChatCompletion.create(
model=model,
messages=data["messages"],
functions=functions,
function_call="auto"
)
# reply = chat.choices[0].message
# return reply
# response = requests.post(base, json={
# "model":model,
# "messages":data["messages"],
# "functions":functions,
# "function_call":"auto"
#})
reply = json.loads(response.content)
print("Reply:",reply)
reply = reply["choices"][0]["message"]
return reply
functions = [
{
"name": "get_current_time",
"description": "Get the current time in a given location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA",
},
"unit": {"type": "string", "enum": ["time", "date", "both"]},
},
"required": ["location"],
},
}
]
# response = requests.post(target2, json=data)
# print("target2",target2)
# reply = response.content.decode("utf-8")
# reply = reply.replace(" ", "%20")
# image_array = download_image(f"https://api.placid.app/u/pydav4ibo?quote[text]={reply}")
data["messages"].append({"role": "assistant", "content": Textbox})
assistant_response = chat_with_assistant(data["messages"], functions)
print(assistant_response)
if assistant_response.get("function_call"):
function_name = assistant_response["function_call"]["name"]
function_args = json.loads(assistant_response["function_call"]["arguments"])
if function_name == "get_current_time":
time = get_current_time(function_args["location"])
result = time
else:
return assistant_response['content']
data["messages"].append({
"role": "function",
"name": function_name,
"content": str(result)
})
assistant_response = chat_with_assistant(data["messages"], functions)
return assistant_response['content']
data["messages"].append(assistant_response)
except Exception as e:
print(traceback.format_exc())
return "Please Wait!"
elif Dropdown == "Option2":
print("Actual value:",Textbox2)
Textbox2 = Textbox2.replace("[", "").replace("]", "").replace("'", "")
Textbox2 = Textbox2.split(",")
Textbox2_edited = [x.strip() for x in Textbox2]
Textbox2_edited = list(Textbox2_edited)
Textbox2_edited.append(Textbox)
print("Edited value:",Textbox2_edited)
data = {
"messages": [
{"role": "system", "content": content}
]
}
for i in Textbox2_edited:
data["messages"].append(
{"role": "user", "content": i}
)
print(data["messages"])
try:
sleep(0.8)
chat = openai.ChatCompletion.create(
model=model, messages=data["messages"]
)
reply = chat.choices[0].message.content
# response = requests.post(target2, json=data)
# reply = response.content.decode("utf-8")
# reply = reply.replace(" ", "%20")
# image_array = download_image(f"https://api.placid.app/u/pydav4ibo?quote[text]={reply}")
data["messages"].append({"role": "assistant", "content": reply})
headers = {"Content-Type": "application/json"}
voice = {
"text": reply,
"key": "3637c6b5-09c9-4d49-b8fe-a9ffecc36f86",
"voice_id": "male"
}
response = requests.post(target3, headers=headers, json=voice)
output = response.json()
print(output)
output_url = output["output"]["audio"]
def download_audio(output_url, output_file):
urllib.request.urlretrieve(output_url, output_file)
# output_file = "audio.wav"
output_file = "audio.mp3"
download_audio(output_url, output_file)
# convert_wav_to_mp3(output_file, "audio.mp3")
return "https://tommy24-flasktestgradio.hf.space/file=audio.mp3"
except Exception as e:
print(traceback.format_exc())
return "Please Wait!"
else:
return "Failed"
inputs = [
gr.inputs.Textbox(label="Textbox", type="text"),
gr.inputs.Textbox(label="Textbox2", type="text"),
gr.inputs.Textbox(label="Textbox3", type="password"),
gr.inputs.Dropdown(["Option1", "Option2"], label="Dropdown")
]
# outputs = gr.outputs.Image(type="numpy")
# outputs = gr.outputs.Audio(type="filepath")
iface = gr.Interface(fn=function, inputs=inputs, outputs="text")
iface.launch()
# from time import sleep
# import gradio as gr
# import traceback
# import requests
# import openai
# import random
# import base64
# import os
# def function(Textbox,Textbox2, Textbox3):
# target = os.environ.get("target")
# target2 = os.environ.get("target2")
# content = os.environ.get("content")
# content2 = os.environ.get("content2")
# auth_key = os.environ.get("auth_key")
# link1 = os.environ.get("link1")
# path = os.environ.get("path")
# link2 = os.environ.get("link2")
# if "/web" in Textbox.lower() or "web" in Textbox.lower():
# try:
# prompt = Textbox.replace("/web","")
# except:
# prompt = Textbox.replace("web","")
# headers = {
# "authority": link1,
# "method": "POST",
# "path": path,
# "scheme": "https",
# "accept": "application/json, text/plain, */*",
# "accept-encoding": "gzip, deflate, br",
# "accept-language": "en-US,en;q=0.9",
# "content-length": "88",
# "content-type": "application/json",
# "origin": link2,
# "referer": f"{link2}/",
# "sec-ch-ua": '"Google Chrome";v="111", "Not(A:Brand";v="8", "Chromium";v="111"',
# "sec-ch-ua-mobile": "?0",
# "sec-ch-ua-platform": '"Windows"',
# "sec-fetch-dest": "empty",
# "sec-fetch-mode": "cors",
# "sec-fetch-site": "same-site",
# "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36"
# }
# href = os.environ.get("href")
# response = requests.post(href,json={
# "Body":prompt,
# "From":f"4b7cec35-d15b-422d-838f-b25583bde426{random.randint(1,100)}"
# },headers=headers)
# data = response.json()
# data = data["message"]
# trigger = os.environ.get("trigger")
# if trigger in data:
# data = data.replace(trigger,"John")
# return data
# else:
# return data
# else:
# # model = os.environ.get("model")
# # hrc = os.environ.get("hrc")
# if Textbox3 == target:
# Textbox2 = Textbox2.replace("[", "").replace("]", "").replace("'", "")
# Textbox2 = Textbox2.split(",")
# Textbox2_edited = [x.strip() for x in Textbox2]
# Textbox2_edited = list(Textbox2_edited)
# Textbox2_edited.append(Textbox)
# messages = [
# {"role": "system", "content": content2},
# ]
# for i in Textbox2_edited:
# messages.append(
# {"role": "user", "content": i}
# )
# try:
# # sleep(0.8)
# # headers = {
# # "Authorization": f"Bearer {auth_key}"
# # }
# response = requests.post(target2, json={
# "messages": messages
# }).json()
# # reply = response['choices'][0]['message']['content']
# reply = response["content"]
# messages.append({"role": "assistant", "content": reply})
# return reply
# except Exception as e:
# print(traceback.format_exc())
# return "Please Wait!"
# else:
# return "Failed"
# inputs = [
# gr.inputs.Textbox(label="Textbox",type="text"),
# gr.inputs.Textbox(label="Textbox2",type="text"),
# gr.inputs.Textbox(label="Textbox3",type="password")
# ]
# iface = gr.Interface(fn=function, inputs=inputs, outputs="text")
# iface.launch()
# from time import sleep
# import gradio as gr
# import traceback
# import requests
# import openai
# import random
# import base64
# import json
# import os
# def function(Textbox,Textbox2, Textbox3, Textbox4):
# target = os.environ.get("target")
# target2 = os.environ.get("target2")
# content = os.environ.get("content")
# content2 = os.environ.get("content2")
# auth_key = os.environ.get("auth_key")
# link1 = os.environ.get("link1")
# path = os.environ.get("path")
# link2 = os.environ.get("link2")
# if "/web" in Textbox.lower() or "web" in Textbox.lower():
# try:
# prompt = Textbox.replace("/web","")
# except:
# prompt = Textbox.replace("web","")
# headers = {
# "authority": link1,
# "method": "POST",
# "path": path,
# "scheme": "https",
# "accept": "application/json, text/plain, */*",
# "accept-encoding": "gzip, deflate, br",
# "accept-language": "en-US,en;q=0.9",
# "content-length": "88",
# "content-type": "application/json",
# "origin": link2,
# "referer": f"{link2}/",
# "sec-ch-ua": '"Google Chrome";v="111", "Not(A:Brand";v="8", "Chromium";v="111"',
# "sec-ch-ua-mobile": "?0",
# "sec-ch-ua-platform": '"Windows"',
# "sec-fetch-dest": "empty",
# "sec-fetch-mode": "cors",
# "sec-fetch-site": "same-site",
# "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36"
# }
# href = os.environ.get("href")
# response = requests.post(href,json={
# "Body":prompt,
# "From":f"4b7cec35-d15b-422d-838f-b25583bde426{random.randint(1,100)}"
# },headers=headers)
# data = response.json()
# data = data["message"]
# trigger = os.environ.get("trigger")
# if trigger in data:
# data = data.replace(trigger,"John")
# return data
# else:
# return data
# else:
# # model = os.environ.get("model")
# # hrc = os.environ.get("hrc")
# if Textbox3 == target:
# try:
# # sleep(0.8)
# # headers = {
# # "Authorization": f"Bearer {auth_key}"
# # }
# response = requests.post(target2, headers={
# "Content-Type": "application/json"
# }, data=json.dumps({
# "text": Textbox,
# "key": auth_key,
# "playerId": Textbox4,
# "speak": False
# }))
# # reply = response['choices'][0]['message']['content']
# response = response.json()
# reply = response["output"]["text"]
# return reply
# except Exception as e:
# print(traceback.format_exc())
# return "Please Wait!"
# else:
# return "Failed"
# inputs = [
# gr.inputs.Textbox(label="Textbox",type="text"),
# gr.inputs.Textbox(label="Textbox2",type="text"),
# gr.inputs.Textbox(label="Textbox3",type="password"),
# gr.inputs.Textbox(label="Textbox4",type="text")
# ]
# iface = gr.Interface(fn=function, inputs=inputs, outputs="text")
# iface.launch()
# from time import sleep
# import gradio as gr
# import traceback
# import requests
# import openai
# import random
# import base64
# import os
# def function(Textbox,Textbox2, Textbox3):
# target = os.environ.get("target")
# target2 = os.environ.get("target2")
# openai.api_key = target2
# content = os.environ.get("content")
# content2 = os.environ.get("content2")
# link1 = os.environ.get("link1")
# path = os.environ.get("path")
# link2 = os.environ.get("link2")
# if "/web" in Textbox.lower() or "web" in Textbox.lower():
# try:
# prompt = Textbox.replace("/web","")
# except:
# prompt = Textbox.replace("web","")
# headers = {
# "authority": link1,
# "method": "POST",
# "path": path,
# "scheme": "https",
# "accept": "application/json, text/plain, */*",
# "accept-encoding": "gzip, deflate, br",
# "accept-language": "en-US,en;q=0.9",
# "content-length": "88",
# "content-type": "application/json",
# "origin": link2,
# "referer": f"{link2}/",
# "sec-ch-ua": '"Google Chrome";v="111", "Not(A:Brand";v="8", "Chromium";v="111"',
# "sec-ch-ua-mobile": "?0",
# "sec-ch-ua-platform": '"Windows"',
# "sec-fetch-dest": "empty",
# "sec-fetch-mode": "cors",
# "sec-fetch-site": "same-site",
# "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36"
# }
# href = os.environ.get("href")
# response = requests.post(href,json={
# "Body":prompt,
# "From":f"4b7cec35-d15b-422d-838f-b25583bde426{random.randint(1,100)}"
# },headers=headers)
# data = response.json()
# data = data["message"]
# trigger = os.environ.get("trigger")
# if trigger in data:
# data = data.replace(trigger,"John")
# return data
# else:
# return data
# else:
# # model = os.environ.get("model")
# # hrc = os.environ.get("hrc")
# if Textbox3 == target:
# Textbox2 = Textbox2.replace("[", "").replace("]", "").replace("'", "")
# Textbox2 = Textbox2.split(",")
# Textbox2_edited = [x.strip() for x in Textbox2]
# Textbox2_edited = list(Textbox2_edited)
# Textbox2_edited.append(Textbox)
# messages = [
# {"role": "system", "content": content2},
# ]
# for i in Textbox2_edited:
# messages.append(
# {"role": "user", "content": i}
# )
# try:
# # sleep(1.8)
# response = requests.post(target2, json={
# "messages":messages,
# "model":"gpt-3.5-turbo-003",
# "max_tokens":"null",
# "temperature":1,
# "presence_penalty":0,
# "top_p":1,
# "frequency_penalty":0,
# "stream":False
# }).json()
# reply = response['choices'][0]['message']['content']
# messages.append({"role": "assistant", "content": reply})
# return reply
# except Exception as e:
# print(traceback.format_exc())
# return "Please Wait!"
# else:
# return "Failed"
# inputs = [
# gr.inputs.Textbox(label="Textbox",type="text"),
# gr.inputs.Textbox(label="Textbox2",type="text"),
# gr.inputs.Textbox(label="Textbox3",type="password")
# ]
# iface = gr.Interface(fn=function, inputs=inputs, outputs="text")
# iface.launch()