def launch_interface(): with gr.Blocks( title="RAG App", css=""" .gradio-container { background-color: #e6fff7 !important; } #header-text { text-align: center; color: #2b6777; } """ ) as demo: gr.Markdown("""

RAG Bot with LlamaIndex (PDF + TXT)

""") with gr.Tabs(): with gr.Tab("Paul Graham"): # ✅ Logo moved above heading if os.path.exists("data/logo.png"): gr.Image("data/logo.png", show_label=False, container=False, height=120) gr.Markdown("""

Paul Graham: Writing and Thinking

Select a question or ask your own based on the essay.

""") dropdown_pg = gr.Dropdown(label="Pick a Question", choices=[""] + paul_questions, interactive=True) textbox_pg = gr.Textbox(label="Ask Anything", placeholder="Type your question...", lines=2) output_pg = gr.Textbox(label="Response", lines=10) submit_pg = gr.Button("Submit") clear_pg = gr.Button("Clear") def handle_pg_submit(drop_value, text_value): final_query = drop_value if drop_value else text_value if not final_query.strip(): return "❌ Please select or enter a question." return query_pg(final_query) dropdown_pg.change(fn=query_pg, inputs=dropdown_pg, outputs=output_pg) submit_pg.click(handle_pg_submit, inputs=[dropdown_pg, textbox_pg], outputs=output_pg) clear_pg.click(lambda: ("", "", ""), outputs=[dropdown_pg, textbox_pg, output_pg]) with gr.Tab("Insurance"): gr.Markdown("""

Understanding Insurance

Explore key insurance concepts or ask your own questions.

""") dropdown_ins = gr.Dropdown(label="Pick a Question", choices=[""] + insurance_questions, interactive=True) textbox_ins = gr.Textbox(label="Ask Anything", placeholder="Type your question...", lines=2) output_ins = gr.Textbox(label="Response", lines=10) submit_ins = gr.Button("Submit") clear_ins = gr.Button("Clear") def handle_ins_submit(drop_value, text_value): final_query = drop_value if drop_value else text_value if not final_query.strip(): return "❌ Please select or enter a question." return query_ins(final_query) dropdown_ins.change(fn=query_ins, inputs=dropdown_ins, outputs=output_ins) submit_ins.click(handle_ins_submit, inputs=[dropdown_ins, textbox_ins], outputs=output_ins) clear_ins.click(lambda: ("", "", ""), outputs=[dropdown_ins, textbox_ins, output_ins]) demo.launch()