File size: 1,443 Bytes
150c844
 
 
f658876
 
 
 
 
 
9e9434e
f658876
 
 
 
150c844
 
f658876
 
 
 
 
 
150c844
 
982131a
150c844
 
 
 
 
9e9434e
150c844
f658876
 
150c844
 
 
9e9434e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import gradio as gr
from transformers import AutoTokenizer, AutoModelForSeq2SeqLM

# Define the models and their corresponding names
models = {
    "Model 1 (facebook/bart-large-cnn)": {
        "model_name": "facebook/bart-large-cnn",
        "description": "Model 1",
    },
    "Model 2 (google/pegasus-multi_news)": {
        "model_name": "google/pegasus-multi_news",
        "description": "Model 2",
    },
}

# Define the Gradio interface
def summarize_text(input_text, selected_model):
    # Get the selected model and its tokenizer
    model_info = models[selected_model]
    tokenizer = AutoTokenizer.from_pretrained(model_info["model_name"])
    model = AutoModelForSeq2SeqLM.from_pretrained(model_info["model_name"])
    
    # Tokenize and generate summary
    input_ids = tokenizer.encode(input_text, return_tensors="pt", max_length=1024, truncation=True)
    summary_ids = model.generate(input_ids, max_length=10, min_length=1, length_penalty=1.0, num_beams=4, early_stopping=True)
    summary = tokenizer.decode(summary_ids[0], skip_special_tokens=True)
    return summary

iface = gr.Interface(
    fn=summarize_text,
    inputs=[gr.inputs.Textbox(label="Input Text"), gr.inputs.Radio(list(models.keys()), label="Select Model")],
    outputs="text",
    title="Text Summarization App",
    description="Choose a model for text summarization and enter the text to summarize.",
)

if __name__ == "__main__":
    iface.launch()