import gradio as gr from transformers import pipeline, set_seed from random import randint generator = pipeline('text-generation', model='gpt2') def generate_text(text, max_length, amount): """ Generates text using the GPT-2 model. :param text: Input text to generate from. :param max_length: Maximum length of generated text. :param amount: Number of texts to generate. :return: List of generated texts. """ # Set the seed for reproducibility set_seed(randint(randint(1000,10000),randint(50000,300000))) # Generate the text generated_texts = [d['generated_text'] for d in generator(text, max_length=max_length, num_return_sequences=amount)] # Return the generated text return '\nend of text\n'.join(generated_texts) # Define the inputs text_input = gr.inputs.Textbox(lines=5, label='Input Text') max_length_slider = gr.inputs.Slider(minimum=10, maximum=500, step=1, default=100, label='max_length') amount_slider = gr.inputs.Slider(minimum=1, maximum=5, step=1, default=1, label='num_return_equences (Amount)') # Define the output output_textbox = gr.outputs.Textbox(label='Output Text') # Create the interface interface = gr.Interface(fn=generate_text, inputs=[text_input, max_length_slider, amount_slider], outputs=output_textbox, title='Minimal GPT-2 Demo', description='Generate text using GPT-2') # Set the page layout interface.layout = 'vertical' # Run the interface interface.launch()