import gradio as gr from final_funcs import global_vars from final_agent import create_agent from messages import instructions, greeting, description from final_funcs import auth import os import time start_of_chat = True def add_text(history, text): history = history + [(text, None)] return history, gr.update(value="", interactive=False) def bot(history): user_input = history[-1][0] global start_of_chat if start_of_chat: start_of_chat = False response = greeting elif user_input.strip() == '!help': response = instructions else: key = global_vars['OPENAI_API_KEY'] if key is None: yield [("OpenAI client not initialized. Authenticate OpenAI first.", "Try again")] return agent_executor = create_agent(key) response = agent_executor(user_input, include_run_info=True) response = response["output"] history[-1][1] = "" for character in response: history[-1][1] += character time.sleep(0.0075) yield history def end_session(): global_vars['OPENAI_API_KEY'] = None sp = None device_id = None return f"""
Session Ended. Thank you for using Apollo!
""" with gr.Blocks() as chat: gr.Markdown(description) chatbot = gr.Chatbot([], elem_id="chatbot", height=750) with gr.Row(): txt = gr.Textbox( show_label=False, placeholder="What would you like to hear?", container=False ) txt_msg = txt.submit(add_text, [chatbot, txt], [chatbot, txt], queue=False).then( bot, chatbot, chatbot ) txt_msg.then(lambda: gr.update(interactive=True), None, [txt], queue=False) logout_button = gr.Button("End Your Session") logout_result = gr.Markdown() logout_button.click(fn=end_session, outputs=logout_result) demo = gr.TabbedInterface([auth, chat], ["Authentication Station", "Music Room"], theme="finlaymacklon/boxy_violet", css=None ) demo.queue() demo.launch() os.remove(".cache")