| | import gradio as gr |
| | from summarizer import TextSummarizer |
| |
|
| | |
| | print("Initializing Summarizer...") |
| | global_summarizer = TextSummarizer() |
| |
|
| | def summarize_text(text, target_words): |
| | try: |
| | |
| | if global_summarizer.llm is None: |
| | return "Error: Model not loaded.", "" |
| | |
| | summary, stats = global_summarizer.summarize(text, int(target_words)) |
| | return summary, stats |
| | except Exception as e: |
| | return f"An error occurred: {str(e)}", "" |
| |
|
| | |
| | with gr.Blocks() as iface: |
| | gr.Markdown("# AI Text Summarizer (Local Mistral-7B)") |
| | gr.Markdown("Enter a long text to get a concise summary using the **Mistral-7B** model (running locally).") |
| | gr.Markdown("> **Note:** The first run might take a moment to load the model. Subsequent runs will be faster.") |
| | |
| | with gr.Row(): |
| | with gr.Column(): |
| | text_input = gr.Textbox(lines=10, label="Input Text", placeholder="Enter text to summarize here...") |
| | |
| | length_slider = gr.Slider(minimum=10, maximum=500, value=100, step=10, label="Target Summary Length (Words)") |
| | submit_btn = gr.Button("Summarize", variant="primary") |
| | |
| | with gr.Column(): |
| | output_text = gr.Textbox(label="Summary", lines=10) |
| | stats_output = gr.Textbox(label="Statistics", lines=2) |
| |
|
| | submit_btn.click( |
| | fn=summarize_text, |
| | inputs=[text_input, length_slider], |
| | outputs=[output_text, stats_output] |
| | ) |
| |
|
| | if __name__ == "__main__": |
| | iface.launch() |
| |
|