| import gradio as gr | |
| import os, threading | |
| from crew import get_crew | |
| from util import get_questions | |
| lock = threading.Lock() | |
| def invoke(level, question, file_name, ground_truth, openai_api_key): | |
| if not question: | |
| raise gr.Error("Question is required.") | |
| if not openai_api_key: | |
| raise gr.Error("OpenAI API Key is required.") | |
| with lock: | |
| answer = "" | |
| try: | |
| os.environ["OPENAI_API_KEY"] = openai_api_key | |
| answer = get_crew().kickoff(inputs={"topic": question}) | |
| except Exception as e: | |
| raise gr.Error(e) | |
| finally: | |
| del os.environ["OPENAI_API_KEY"] | |
| return answer | |
| gr.close_all() | |
| demo = gr.Interface(fn=invoke, | |
| inputs=[gr.Radio([1, 2, 3], label="Level"), | |
| gr.Textbox(label="Question"), | |
| gr.Textbox(label="File Name"), | |
| gr.Textbox(label="Ground Truth"), | |
| gr.Textbox(label="OpenAI API Key", type="password")], | |
| outputs=[gr.Textbox(label="Answer", lines=1, interactive=False)], | |
| title="General AI Assistant (GAIA) π€π€π€", | |
| description=os.environ["DESCRIPTION"], | |
| examples=get_questions(), | |
| cache_examples=False | |
| ) | |
| demo.launch() |