Spaces:
Sleeping
Sleeping
File size: 1,361 Bytes
3a93742 ca69070 a198487 ca69070 3a93742 9ef96a3 ca69070 9ef96a3 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
import gradio as gr
from ingestion.pdf import process_pdf
from rag.pipeline import run_rag
vectorstore = None
def load_document(file):
global vectorstore
if file is None:
return "Please upload a PDF file."
try:
vectorstore = process_pdf(file.name)
return "✓ Document processed successfully."
except Exception as e:
return f"❌ Error: {str(e)}"
def ask(question):
if vectorstore is None:
return "⚠ Upload a document first", "", ""
if not question.strip():
return "⚠ Please enter a question", "", ""
try:
return run_rag(question, vectorstore)
except Exception as e:
return f"❌ Error: {str(e)}", "", ""
with gr.Blocks() as demo:
gr.Markdown("# Tech Explainer — RAG with Automatic Evaluation")
file = gr.File(label="Upload PDF", file_types=[".pdf"])
load_btn = gr.Button("Process PDF")
status = gr.Textbox(label="Status")
gr.Markdown("---")
question = gr.Textbox(label="Question")
ask_btn = gr.Button("Ask")
answer = gr.Textbox(label="Answer", lines=5)
sources = gr.Textbox(label="Sources", lines=2)
evaluation = gr.Textbox(label="Evaluation", lines=3)
load_btn.click(load_document, inputs=file, outputs=status)
ask_btn.click(ask, inputs=question, outputs=[answer, sources, evaluation])
demo.launch() |