Spaces:
Sleeping
Sleeping
File size: 1,903 Bytes
d7b460a |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
import gradio as gr
num_sequences=4
demo_mode = False
if not demo_mode:
from transformers import AutoModelForCausalLM, AutoTokenizer, pipeline
model = AutoModelForCausalLM.from_pretrained("d2weber/german-gpt2-finetuned-coldmirror-hpodcast1")
tokenizer = AutoTokenizer.from_pretrained("dbmdz/german-gpt2", use_fast=True)
lm = pipeline("text-generation", model=model, tokenizer=tokenizer)
def generate(*args, **kwargs):
return [o["generated_text"] for o in lm(*args, **kwargs, pad_token_id=tokenizer.eos_token_id)]
with gr.Blocks() as app:
prompt = gr.TextArea(value="Hallo und herzlich willkommen", label="Input")
sequences = []
for _ in range(num_sequences):
seq = gr.Textbox("", visible=False)
box = gr.CheckboxGroup(choices=[], label="", interactive=True)
sequences.append(seq)
@seq.change(inputs=seq, outputs=box)
def split(seq):
return gr.CheckboxGroup(seq.split(), value=[])
@box.select(inputs=[prompt, seq], outputs=prompt)
def handle(prompt, sequence, selected: gr.SelectData):
to_append = " ".join(sequence.split()[:selected.index+1])
delimiter = " " if to_append[:1].isalnum() else ""
return prompt.rstrip() + delimiter + to_append
max_new_tokens = gr.Slider(1, 100, value=18, step=1, label="How long should the generated sequences be:")
gr.Examples([
["Hallo und herzlich willkommen"],
], prompt)
@prompt.change(inputs=[prompt, max_new_tokens], outputs=sequences)
def handle(prompt, max_new_tokens):
prompt = prompt.rstrip()
texts = ["some new words"]*num_sequences if demo_mode else generate(
prompt,
return_full_text=False,
num_return_sequences=num_sequences,
max_new_tokens=int(max_new_tokens),
)
return texts
app.launch()
|