Ai_text / app.py
Ars135's picture
Upload 2 files
3bdcf00 verified
import gradio as gr
from summarizer import TextSummarizer
# Initialize the summarizer globally to load the model once
print("Initializing Summarizer...")
global_summarizer = TextSummarizer()
def summarize_text(text, target_words):
try:
# Ensure summarizer is initialized
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)}", ""
# Create the Gradio interface
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...")
# Changed from Max Tokens to Target Words
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()