Spaces:
Build error
Build error
| 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""" | |
| <script> | |
| var text = `{output_text}`; | |
| navigator.clipboard.writeText(text).then(function() {{ | |
| alert('Copied to clipboard!'); | |
| }}, function(err) {{ | |
| alert('Failed to copy text'); | |
| }}); | |
| </script> | |
| """ | |
| # 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(""" | |
| <div style="display: flex; align-items: center; justify-content: center; margin-bottom: 30px;"> | |
| <img src="https://raw.githubusercontent.com/juicjaane/blueai/main/logo_2.jpg" style="width: 80px;margin: 0 auto;"> | |
| </div> | |
| """) | |
| 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()''' | |