Spaces:
Sleeping
Sleeping
import torch | |
import gradio as gr | |
from transformers import pipeline | |
# Initialize the summarization pipeline | |
pipe = pipeline("summarization", model="Falconsai/text_summarization") | |
# Store chat history as a list of tuples [(user_input, summary), ...] | |
chat_history = [] | |
# Define the summarize function | |
def summarize(input_text, clear_history=False): | |
global chat_history | |
# Clear history if requested | |
if clear_history: | |
chat_history = [] | |
return chat_history | |
# Generate the summary | |
output = pipe(input_text) | |
summary = output[0]['summary_text'] | |
# Append the user's input and the summary to chat history | |
chat_history.append(("User: " + input_text, "Summarizer: " + summary)) | |
# Return the updated chat history | |
return chat_history | |
# Define the Gradio interface | |
with gr.Blocks() as interface: | |
# Title and description | |
gr.Markdown("# ChatGPT-like Text Summarizer") | |
gr.Markdown("Enter a long piece of text, and the summarizer will provide a concise summary. History will appear like a chat interface.") | |
# Input section | |
with gr.Row(): | |
input_text = gr.Textbox(lines=10, placeholder="Enter text to summarize here...", label="Input Text") | |
clear_history_btn = gr.Button("Clear History") | |
# Chatbot-style output | |
chatbot = gr.Chatbot(label="History") | |
# Submit button for summarization | |
submit_button = gr.Button("Summarize") | |
# Functionality for buttons | |
submit_button.click(summarize, inputs=[input_text, gr.State(False)], outputs=chatbot) | |
clear_history_btn.click(summarize, inputs=["", gr.State(True)], outputs=chatbot) | |
# Launch the interface | |
if __name__ == "__main__": | |
interface.launch() | |