|
from transformers import AutoTokenizer, AutoModelForCausalLM |
|
import torch |
|
import gradio as gr |
|
import random |
|
|
|
tokenizer = AutoTokenizer.from_pretrained('TrLOX/gpt2-tdk') |
|
model = AutoModelForCausalLM.from_pretrained('TrLOX/gpt2-tdk') |
|
|
|
def text_generation(keywords, domain): |
|
input_ids = tokenizer('keyword ' + keywords + ' domain ' + domain + ' title', return_tensors="pt").input_ids |
|
torch.manual_seed(random.randint(0,18446744073709551615)) |
|
outputs = model.generate(input_ids, do_sample=True, min_length=50, max_length=250) |
|
generated_text = tokenizer.batch_decode(outputs, skip_special_tokens=True) |
|
title_description_arr = generated_text[0].split(' title ')[1].split('description') |
|
title = title_description_arr[0].strip() |
|
description = title_description_arr[1].strip() |
|
return title + "\r\n\r\n" + description |
|
|
|
title = "TDK GPT2" |
|
description = "Title and description generation by keywords" |
|
|
|
|
|
gr.Interface( |
|
text_generation, |
|
[gr.inputs.Textbox(default='test 1,test 2',lines=2, label="Enter keywords"), gr.inputs.Textbox(lines=2, default='test.com',label="Enter domain")], |
|
[gr.outputs.Textbox(type="auto", label="Text Generated")], |
|
title=title, |
|
description=description, |
|
theme="huggingface" |
|
).launch() |