import gradio as gr import time, os from openai import OpenAI api_key = os.environ["OPENAI_API_KEY_PUBLIC"] class ask_me: def __init__(self): self.client = OpenAI(api_key=api_key) self.thread = self.client.beta.threads.create() def ask(self,question): run = self.client.beta.threads.runs.create( thread_id=self.thread.id, assistant_id='asst_cqL6gztTsqBGDdkKegpcQ32Y', instructions=question ) while run.status in ['queued', 'in_progress', 'cancelling']: time.sleep(1) # Wait for 1 second run = self.client.beta.threads.runs.retrieve( thread_id=self.thread.id, run_id=run.id ) if run.status == 'completed': messages = self.client.beta.threads.messages.list( thread_id=self.thread.id ) return messages.data[0].content[0].text.value else: return run.status def clear(self): self.thread = self.client.beta.threads.create() return "New search is there." def wait(): time.sleep(1) return "Waiting for the answer." temp = ask_me() with gr.Blocks(css="footer {visibility: hidden}") as demo: with gr.Row(): with gr.Column(scale=5): search_box = gr.Textbox(label= "Your questions",value="How many MOF with Cu?",interactive = True) with gr.Column(scale=2): sub = gr.Button("Ask it!") clear = gr.Button("New search") with gr.Row(): text = gr.Textbox(label= "Result",value="Answer is out there.") sub.click(temp.ask,inputs=search_box,outputs=text) clear.click(temp.clear,outputs=text) demo.launch(debug=True)