|
import gradio as gr |
|
from transformers import pipeline, GenerationConfig |
|
|
|
|
|
generator = pipeline("text-generation", model="gpt2") |
|
config = GenerationConfig.from_pretrained("gpt2") |
|
|
|
def greet(prompt, temperature, max_lenth, top_p, samples): |
|
|
|
config.do_sample = True if temperature != 0 else False |
|
|
|
|
|
config.temperature = temperature |
|
config.top_p = top_p |
|
|
|
|
|
sample_input = {'Sample 1': 'Hi, this is a demo prompt for you', |
|
'Sample 2': 'Alber Einstein is a famous physicist graduated from', |
|
'Sample 3': 'University of Zurich located in'} |
|
|
|
|
|
if samples and prompt == '': |
|
prompt = sample_input[samples] |
|
|
|
|
|
for i in range(max_lenth): |
|
a = generator(prompt, max_new_tokens=1, generation_config=config) |
|
prompt=a[0]['generated_text'] |
|
yield a[0]['generated_text'] |
|
|
|
demo = gr.Interface( |
|
fn=greet, |
|
inputs=[gr.Textbox(placeholder = "Write a tagline for an ice cream shop.", label="prompt", lines=5), |
|
gr.Slider(value=1, minimum=0, maximum=2, label='temperature', |
|
info='''Temperature controls the randomness of the text generation. |
|
1.0 makes the model more likely to generate diverse and sometimes more unexpected outputs. |
|
0.0 makes the model's responses more deterministic and predictable.'''), |
|
gr.Slider(value=16, minimum=1, maximum=256, step=1, label='max_lenth', |
|
info='''Maximum number of tokens that the model will generate in the output.'''), |
|
gr.Slider(value=1, minimum=0, maximum=1, label='top_p', |
|
info='''Top-p controls the model's focus during text generation. |
|
It allows only the most probable tokens to be considered for generation, where the cumulative probability of these tokens must exceed this value.'''), |
|
gr.Dropdown(['Sample 1', 'Sample 2', 'Sample 3'], label="Sample Prompts", |
|
info='''Some sample Prompts for you!''')], |
|
outputs=[gr.Textbox(label='Output texts')], |
|
) |
|
|
|
demo.launch() |