import gradio as gr from src.logic import generate_answer, rebuild def create_ui(): with gr.Blocks(theme=gr.themes.Soft(primary_hue="blue"), title="MindMesh") as demo: # --- Header --- gr.Markdown( """

🧠 MindMesh — Cross-Domain Reasoning Assistant

Ask a question and get synthesized insights from science, philosophy, business, and beyond.

""" ) # --- Main Input Section --- with gr.Row(equal_height=False): # Left column - Question + Buttons with gr.Column(scale=2.5): # slightly reduced width q = gr.Textbox( label="Your Question", placeholder="Write your prompt here...", lines=1, show_label=True, ) with gr.Row(): generate_btn = gr.Button("⚙️ Generate Insight", variant="primary") clear_btn = gr.Button("🧹 Clear", variant="secondary") status = gr.Markdown(value="", visible=True) # Right column - Answer Mode (expanded slightly) with gr.Column(scale=1.2, min_width=360): mode = gr.Radio( ["Quick Summary (Offline)", "LLM Precision (Groq Llama-3.1 70B)"], value="Quick Summary (Offline)", label="Answer Mode", show_label=True, elem_id="answer-mode", ) # --- Output section --- gr.Markdown("
") gr.Markdown("### 🧭 Synthesized Insight") out = gr.Markdown(elem_id="output-box") # --- Example prompts --- examples = gr.Examples( examples=[ ["What can startups learn from the Industrial Revolution?"], ["How do Stoic principles guide modern leadership?"], ["What parallels exist between habit loops and innovation?"], ["How does color psychology affect business branding?"] ], inputs=q ) # --- Button logic --- generate_btn.click(fn=lambda x, m: generate_answer(x, m), inputs=[q, mode], outputs=out) clear_btn.click(lambda: ("", "", ""), outputs=[q, out, status]) q.submit(fn=lambda x, m: generate_answer(x, m), inputs=[q, mode], outputs=out) # --- Custom Styling --- gr.HTML(""" """) return demo