TheUnclonable / app.py
K00B404's picture
Create app.py
04722c5 verified
raw
history blame
2.43 kB
import gradio as gr
import os
from time import sleep
from hugchat import hugchat
from rich import print as rp
from hugchat.login import Login
from gradio_client import Client
from dotenv import load_dotenv,find_dotenv
load_dotenv(find_dotenv())
# Retrieve the hidden authentication and initialisation code from the environment variable
unclonables=['HIDDEN_CODE',
'INIT_CLIENTS',
'CHATBOT_CODE',
'IMAGE_CODE'
]
# Ensure the unclonables are valid and not exposed! execute 'TheServerlessUnclonables'
for unclonable in unclonables:
env_var=os.getenv(unclonable)
#rp(env_var)
exec(os.getenv(unclonable))
sleep(1)
# Predefined functions for chatbot actions
def switch_model(model_index):
print(f"Switching to model {model_index}...")
chatbot.switch_llm(model_index)
def new_conversation(model_index, system_prompt):
print(f"Starting new conversation with model {model_index} and system prompt '{system_prompt}'...")
chatbot.new_conversation(model_index=model_index, system_prompt=system_prompt, goto=True)
def process_image(prompt):
rp(f"running fluxcapacitor...")
fluxcapacitor(prompt)
def run_chatbot(prompt ,system_prompt="You are a good assistant", model_index=0, switch=False):
chatbot = hugchat.ChatBot(cookies=cookies.get_dict(),system_prompt=system_prompt)
chatbot.new_conversation(model_index, system_prompt, switch)
chatbot.chat(prompt)
def test():
if fluxcapacitor:
flux_prompt="A astronaut riding a lollipop in lala land holding a sign with 'TEST' on it!."
process_image(flux_prompt)
# Execute sanitized chatbot logic (no direct exec() here)
if chatbot:
# Start a new conversation with a given system prompt
chat_prompt="Hello make a python game"
run_chatbot(chat_prompt)
test()
def gradio_interface():
with gr.Blocks() as app:
with gr.Tab("Chatbot"):
chatbot_input = gr.Textbox(placeholder="Enter your message")
chatbot_output = gr.Textbox()
chatbot_input.submit(run_chatbot, chatbot_input, chatbot_output)
with gr.Tab("Image Processing"):
image_input = gr.Image()
image_output = gr.Image()
image_input.change(process_image, image_input, image_output)
app.launch()
if __name__ == "__main__":
gradio_interface()