Spaces:
Sleeping
Sleeping
File size: 1,943 Bytes
7dec80a | 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 40 41 42 43 44 45 46 47 48 | import gradio as gr
from transformers import pipeline
# Load Hugging Face model pipeline for text generation/paraphrasing
# Using a general-purpose LLM like flan-t5 or bart for paraphrasing
paraphraser = pipeline("text2text-generation", model="Vamsi/T5_Paraphrase_Paws")
# Grammar correction can be handled with a seq2seq grammar model
# or by reprompting paraphraser with grammar-specific instructions
grammar_corrector = pipeline("text2text-generation", model="prithivida/grammar_error_correcter_v1")
def humanize_text(input_text, tone):
if not input_text.strip():
return ""
# Map tone to style instructions
tone_map = {
"Natural": "Paraphrase this text in a natural human-like style.",
"Formal": "Paraphrase this text in a formal professional tone.",
"Casual": "Paraphrase this text in a casual conversational tone."
}
instruction = tone_map.get(tone, tone_map["Natural"])
# Step 1: Paraphrase with tone
paraphrased = paraphraser(f"{instruction} Preserve meaning and paragraph breaks. Input: {input_text}",
max_length=512, num_return_sequences=1, do_sample=False)[0]['generated_text']
# Step 2: Grammar correction
corrected = grammar_corrector(f"Correct grammar and spelling, keep structure: {paraphrased}",
max_length=512, num_return_sequences=1, do_sample=False)[0]['generated_text']
return corrected
# Gradio UI
demo = gr.Interface(
fn=humanize_text,
inputs=[
gr.Textbox(label="Input Text", lines=10, placeholder="Paste your text here..."),
gr.Radio(["Natural", "Formal", "Casual"], label="Tone", value="Natural")
],
outputs=gr.Textbox(label="Humanized Output", lines=10),
title="AI Humanizer",
description="Humanize AI text into natural, formal, or casual tones while preserving meaning and structure."
)
if __name__ == "__main__":
demo.launch()
|