import os import warnings import random import torch import gradio as gr from parrot import Parrot from concurrent.futures import ThreadPoolExecutor, as_completed warnings.filterwarnings("ignore") os.environ['TRANSFORMERS_NO_ADVISORY_WARNINGS'] = '1' def random_state(seed): torch.manual_seed(seed) if torch.cuda.is_available(): torch.cuda.manual_seed_all(seed) random_state(1234) parrot = Parrot(model_tag="prithivida/parrot_paraphraser_on_T5") def paraphrase_sentence(sentence): paraphrases = parrot.augment(input_phrase=sentence, max_return_phrases=10, max_length=100, adequacy_threshold=0.75, fluency_threshold=0.75) return random.choice(paraphrases)[0] if paraphrases else sentence def split_text_by_fullstop(text): return [sentence.strip() for sentence in text.split('.') if sentence] def process_text_by_fullstop(text): sentences = split_text_by_fullstop(text) with ThreadPoolExecutor() as executor: future_to_sentence = {executor.submit(paraphrase_sentence, sentence + '.'): sentence for sentence in sentences} paraphrased_sentences = [] for future in as_completed(future_to_sentence): paraphrased_sentences.append(future.result()) return ' '.join(paraphrased_sentences) def gradio_interface(input_text): paraphrased_text = process_text_by_fullstop(input_text) return paraphrased_text interface = gr.Interface(fn=gradio_interface, inputs="text", outputs="text", title="Text Paraphraser", description="Enter text to get paraphrased output.") interface.launch() '''import warnings import random import torch import os import gradio as gr from parrot import Parrot # Suppress warnings warnings.filterwarnings("ignore") os.environ['TRANSFORMERS_NO_ADVISORY_WARNINGS'] = '1' # Set random state for reproducibility def random_state(seed): torch.manual_seed(seed) if torch.cuda.is_available(): torch.cuda.manual_seed_all(1234) # Initialize Parrot model parrot = Parrot(model_tag="prithivida/parrot_paraphraser_on_T5") # Function to paraphrase a single sentence def paraphrase_sentence(sentence): paraphrases = parrot.augment(input_phrase=sentence, max_return_phrases=10, max_length=100, adequacy_threshold=0.75, fluency_threshold=0.75) if paraphrases: return random.choice(paraphrases)[0] # Select a random paraphrase return sentence # Return the original sentence if no paraphrase is available # Function to split text by periods (full stops) def split_text_by_fullstop(text): sentences = [sentence.strip() for sentence in text.split('.') if sentence] # Split and remove empty strings return sentences # Main function to process and paraphrase text by splitting at periods def process_text_by_fullstop(text): sentences = split_text_by_fullstop(text) # Split text into sentences by full stops paraphrased_sentences = [paraphrase_sentence(sentence + '.') for sentence in sentences] # Paraphrase each sentence return ' '.join(paraphrased_sentences) # Join paraphrased sentences back into a single text # Function to copy output text to the clipboard def copy_to_clipboard(output_text): # JavaScript code to copy the output text to the clipboard return f""" """ # Gradio interface function def generate_content(input_text): paraphrased_text = process_text_by_fullstop(input_text) return paraphrased_text # Gradio Interface with new layout with gr.Blocks() as demo: # Adding a logo and title gr.HTML("""
""") with gr.Row(): # Input column with Submit and Clear buttons below the text area with gr.Column(): input_text = gr.Textbox(placeholder="Enter sop to get paraphrased output...", label="User", lines=5) with gr.Row(): submit_button = gr.Button("Submit") clear_button = gr.Button("Clear") # Output column with Copy button below the output text area with gr.Column(): output_text = gr.Textbox(label="output", lines=5) copy_button = gr.Button("Copy") # Define button actions submit_button.click(generate_content, inputs=input_text, outputs=output_text) clear_button.click(lambda: "", None, input_text) # Clear input clear_button.click(lambda: "", None, output_text) # Clear output copy_button.click(copy_to_clipboard, inputs=output_text, outputs=None) # Copy the output to clipboard # Launch the app demo.launch()'''