vikigitonga11's picture
Update app.py
721f130 verified
raw
history blame
2.35 kB
import gradio as gr
from transformers import pipeline
# Load the paraphrase model
model_name = "AventIQ-AI/t5-paraphrase-generation"
paraphrase_pipeline = pipeline("text2text-generation", model=model_name)
def generate_paraphrase(text, temperature):
"""Generate a paraphrased version of the input text."""
if not text.strip():
return "⚠️ Please enter some text to paraphrase."
# Limit input to 700 words
words = text.split()
if len(words) > 700:
return "⚠️ Input too long! Please enter a maximum of 700 words."
try:
result = paraphrase_pipeline(
text,
temperature=temperature,
max_length=2048, # πŸš€ Supports long outputs
max_new_tokens=1024, # πŸ”₯ Ensures full-length output
top_k=50,
top_p=0.9, # 🎯 More variation in responses
do_sample=True,
repetition_penalty=1.5, # πŸ›‘ Stops repetitive loops
no_repeat_ngram_size=4, # β›” Prevents repetitive phrases
num_return_sequences=1, # βœ… Outputs only one high-quality paraphrase
num_beams=7, # πŸš€ Higher number of beams for better sentence flow
early_stopping=True
)
# Extract and format output properly
paraphrased_text = result[0].get("generated_text", "⚠️ Paraphrasing failed. Please try again.").strip()
return paraphrased_text
except Exception as e:
return f"⚠️ An error occurred: {str(e)}"
# Define Gradio Interface
description = """
## ✨ AI Paraphrasing Tool
Enter text and let AI generate a paraphrased version!
- **Creativity (Temperature)** controls how varied the output is.
- **Input is limited to 700 words.**
- **Now supports much longer paraphrased outputs!**
"""
demo = gr.Interface(
fn=generate_paraphrase,
inputs=[
gr.Textbox(label="Enter text", placeholder="Type your text to paraphrase...", lines=10), # Bigger input box
gr.Slider(0.5, 1.5, value=1.0, step=0.1, label="Creativity (Temperature)"),
],
outputs=gr.Textbox(label="Paraphrased Text", lines=30), # πŸ”₯ More space for longer output
title="πŸ“ AI Paraphraser",
description=description,
theme="soft", # βœ… Fix theme issue
live=True,
)
if __name__ == "__main__":
demo.launch()