RAG / app.py
Hanzo03's picture
Update app.py
638439a verified
import gradio as gr
from utils.config import get_logger
from utils.engine import process_and_index_video, ask_video_question
logger = get_logger("GradioUI")
logger.info("Constructing UI...")
# Removed theme from Blocks constructor
with gr.Blocks() as demo:
gr.Markdown("# 🧠 Multimodal Video RAG (Vision Q/A)")
with gr.Row():
with gr.Column(scale=1):
video_input = gr.Video(label="Upload Video")
index_btn = gr.Button("1. Process & Index Video", variant="primary")
status_out = gr.Textbox(label="System Status", interactive=False)
with gr.Column(scale=1):
query_input = gr.Textbox(label="Ask a visual question:")
ask_btn = gr.Button("2. Ask Question")
answer_out = gr.Textbox(label="VLM Answer", lines=4)
gallery_out = gr.Gallery(label="Context Frames", show_label=True, columns=3)
index_btn.click(fn=process_and_index_video, inputs=[video_input], outputs=[status_out, gallery_out])
ask_btn.click(fn=ask_video_question, inputs=[query_input], outputs=[answer_out, gallery_out])
if __name__ == "__main__":
logger.info("Launching server...")
# Moved theme to launch method for Gradio 6.0 compatibility
demo.launch(theme=gr.themes.Soft())