Spaces:
Sleeping
Sleeping
import gradio as gr | |
import os | |
import threading | |
from research_agent import ResearchAgent | |
lock = threading.Lock() | |
def invoke(openai_api_key: str, question: str) -> str: | |
if not openai_api_key: | |
raise gr.Error("OpenAI API Key is required.") | |
if not question: | |
raise gr.Error("Question is required.") | |
with lock: | |
try: | |
agent = ResearchAgent(openai_api_key) | |
result = agent.perform_research(question) | |
return result | |
except Exception as e: | |
raise gr.Error(f"Error: {str(e)}") | |
gr.close_all() | |
demo = gr.Interface( | |
fn=invoke, | |
inputs=[ | |
gr.Textbox( | |
label="OpenAI API Key", | |
type="password", | |
lines=1, | |
placeholder="Enter your OpenAI API key" | |
), | |
gr.Textbox( | |
label="Medical Research Question", | |
lines=3, | |
placeholder="Enter your medical research question here..." | |
) | |
], | |
outputs=gr.Markdown( | |
label="Research Results", | |
show_label=True | |
), | |
title="Medical Research Assistant", | |
description="""This AI-powered tool helps you research medical questions by: | |
1. Analyzing your question to identify key search terms | |
2. Searching PubMed Central for relevant articles | |
3. Analyzing the content using RAG (Retrieval Augmented Generation) | |
4. Providing a comprehensive answer with references to scientific literature | |
Please enter your medical research question above.""", | |
theme="default", | |
css=".gradio-container {max-width: 800px; margin: auto;}" | |
) | |
demo.launch() |