EvoConvo / app.py
HemanM's picture
Update app.py
e9037c9 verified
import gradio as gr
from generate import generate_response
from web_search import web_search # RAG fallback
def evo_qa(question, context, use_rag, temperature):
# If no context and RAG is enabled, fetch from web
if not context.strip() and use_rag:
context = web_search(question)
# Generate answer using Evo
answer = generate_response(prompt=question, external_context=context, temperature=temperature)
if not answer.strip():
return "(No meaningful response generated.)"
return answer
with gr.Blocks(title="EvoRAG — SQuAD-Tuned QA with Optional Web Retrieval") as demo:
gr.Markdown("🧠 **EvoRAG — SQuAD-Tuned QA with Optional Web Retrieval**\nAsk a question with optional context. Evo was fine-tuned on SQuAD v2. Toggle RAG for live web search if no context is available.")
with gr.Row():
with gr.Column():
question = gr.Textbox(label="❓ Question", placeholder="Enter your question...")
context = gr.Textbox(label="📄 Context (Optional)", placeholder="Paste context or leave blank to use RAG")
use_rag = gr.Checkbox(label="🔍 Use RAG (Live Web Search)", value=False)
temperature = gr.Slider(minimum=0.1, maximum=1.5, value=1.0, label="🔥 Temperature")
submit = gr.Button("Submit")
clear = gr.Button("Clear")
with gr.Column():
answer = gr.Textbox(label="🤖 Evo's Answer", interactive=False, lines=6)
submit.click(fn=evo_qa, inputs=[question, context, use_rag, temperature], outputs=answer)
clear.click(fn=lambda: ("", "", False, 1.0, ""), inputs=[], outputs=[question, context, use_rag, temperature, answer])
demo.launch()