sui-1-24b
Grounded summaries with verifiable source citations
""")
with gr.Row(equal_height=False):
# Left column: Inputs
with gr.Column(scale=2):
gr.Markdown("### Document", elem_classes=["section-title"])
pdf_input = gr.File(
label="Upload PDF",
file_types=[".pdf"],
type="filepath",
)
gr.Markdown("### Options", elem_classes=["section-title"])
language = gr.Dropdown(
choices=list(LANGUAGES.keys()),
value="German",
label="Language",
)
words = gr.Slider(
minimum=100,
maximum=600,
value=150,
step=50,
label="Summary Length",
info="Word count target",
)
custom_instruction = gr.Textbox(
label="Instructions (Optional)",
placeholder="Focus on key findings...",
lines=2,
)
generate_btn = gr.Button(
"Generate Summary",
variant="primary",
elem_classes=["generate-btn"],
)
# Right column: Output
with gr.Column(scale=3):
gr.Markdown("### Summary", elem_classes=["section-title"])
summary_output = gr.Markdown(
value="*Upload a PDF to begin.*",
)
with gr.Accordion(
"View Source Citations",
open=False,
visible=False,
) as sources_accordion:
sources_output = gr.Markdown(elem_classes=["sources-panel"])
# Event handlers
generate_btn.click(
fn=summarize,
inputs=[pdf_input, language, words, custom_instruction],
outputs=[summary_output, sources_output, sources_accordion],
)
# Footer
gr.HTML("""
""")
return app
# ============================================================================
# Entry Point
# ============================================================================
if __name__ == "__main__":
app = create_app()
app.launch()