Spaces:
Sleeping
Sleeping
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(share=True) |