test_2 / app.py
astro21's picture
Update app.py
fb47e39
raw
history blame
1.36 kB
import gradio as gr
from transformers import pipeline
import os
# Load the text summarization pipeline
summarizer = pipeline("summarization", model="astro21/bart-cls")
chunk_counter = 0
def summarize_text(input_text):
global chunk_counter # Use a global variable to keep track of the chunk number
chunk_counter = 0 # Initialize the chunk counter
# Split the input text into chunks with a maximum size of 512
max_chunk_size = 512
chunks = [input_text[i:i+max_chunk_size] for i in range(0, len(input_text), max_chunk_size)]
summarized_chunks = []
for chunk in chunks:
chunk_counter += 1
# Summarize each chunk
summarized_chunk = summarizer(chunk, max_length=128, min_length=64, do_sample=False)[0]['summary_text']
summarized_chunks.append(f"Chunk {chunk_counter}:\n{summarized_chunk}")
# Concatenate the summaries
summarized_text = "\n".join(summarized_chunks)
return summarized_text
def read_file(file_path):
with open(file_path, 'r') as file:
content = file.read()
return content
def summarize_text_file(file):
if file is not None:
content = read_file(file.name)
return summarize_text(content)
input_type = gr.inputs.File("text")
demo = gr.Interface(fn=summarize_text_file, inputs=input_type, outputs="text", live=True)
demo.launch()