dquisi commited on
Commit
ffedf23
1 Parent(s): 1e5b454

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +13 -10
app.py CHANGED
@@ -1,22 +1,25 @@
1
  from transformers import *
2
  import gradio as gr
3
  import torch
4
- from googletrans import Translator
5
  model_category = AutoModelForCausalLM.from_pretrained("dquisi/story_spanish_gpt2_by_category")
6
  tokenizer_category = AutoTokenizer.from_pretrained("dquisi/story_spanish_gpt2_by_category")
7
  story_gen = pipeline("text-generation", "pranavpsv/gpt2-genre-story-generator")
8
- translator = Translator()
9
  tokenizer = AutoTokenizer.from_pretrained("dquisi/story_spanish_gpt2_v2")
10
  model = AutoModelForCausalLM.from_pretrained("dquisi/story_spanish_gpt2_v2")
 
 
 
 
 
 
11
  def generate_story_translate(texto,longitud=250,categoria='superheroe'):
12
- input_translate = translator.translate(texto, src='es', dest='en')
13
- input_translate_category = translator.translate(categoria, src='es', dest='en')
14
- query = "<BOS> <{0}> {1}".format(input_translate_category.text, input_translate.text)
15
  generated_text = story_gen(query, max_length=longitud,do_sample=True,repetition_penalty=1.1, temperature=1.2, top_p=0.95, top_k=50)
16
  generated_text = generated_text[0]['generated_text']
17
  generated_text = generated_text.split('> ')[2]
18
- generate_translate = translator.translate(generated_text, src='en', dest='es')
19
- return generate_translate.text
20
  def generate_story_custom(texto,longitud=250):
21
  query = "<BOS> <{0}>".format(texto)
22
  input_ids = tokenizer(query, return_tensors="pt")["input_ids"]
@@ -28,10 +31,10 @@ def generate_story_custom_category(texto,longitud=250,categoria='superheroe'):
28
  output = model_category.generate(input_ids, max_length=longitud,do_sample=True,repetition_penalty=1.1, temperature=1.2, top_p=0.95, top_k=50)
29
  return tokenizer_category.decode(output[0])
30
 
31
- contexto = gr.inputs.Textbox(lines=10, placeholder="Ingresar palabras claves para generar un cuento")
32
  categoria = gr.inputs.Textbox(lines=1, placeholder="Ingresar Categoria")
33
  longitud = gr.inputs.Slider(50, 500)
34
- opciones = gr.inputs.CheckboxGroup(["Generar", "Generar por Categoria", "Generar 2"])
35
  resultado = gr.outputs.HTML(label="Resultado")
36
  def generate_storie(contexto,opciones,categoria,longitud):
37
  resultado=""
@@ -40,7 +43,7 @@ def generate_storie(contexto,opciones,categoria,longitud):
40
  cuentos.append(generate_story_custom(contexto,longitud))
41
  if "Generar por Categoria" in opciones:
42
  cuentos.append(generate_story_custom_category(contexto,longitud,categoria))
43
- if "Generar 2" in opciones:
44
  cuentos.append(generate_story_translate(contexto,longitud,categoria))
45
  resultado += "<p><b>Generados:</b> "+'<b>Cuento: <b/>'.join(cuentos)+"</p>"
46
  return resultado
 
1
  from transformers import *
2
  import gradio as gr
3
  import torch
 
4
  model_category = AutoModelForCausalLM.from_pretrained("dquisi/story_spanish_gpt2_by_category")
5
  tokenizer_category = AutoTokenizer.from_pretrained("dquisi/story_spanish_gpt2_by_category")
6
  story_gen = pipeline("text-generation", "pranavpsv/gpt2-genre-story-generator")
 
7
  tokenizer = AutoTokenizer.from_pretrained("dquisi/story_spanish_gpt2_v2")
8
  model = AutoModelForCausalLM.from_pretrained("dquisi/story_spanish_gpt2_v2")
9
+ task_name_en_es = f"translation_en_to_es"
10
+ model_name_en_es = f"Helsinki-NLP/opus-mt-en-es"
11
+ task_name_es_en = f"translation_es_to_en"
12
+ model_name_es_en = f"Helsinki-NLP/opus-mt-es-en"
13
+ translator_es_en = pipeline(task_name_en_es, model=model_name_en_es, tokenizer=model_name_en_es)
14
+ translator_en_es = pipeline(task_name_es_en, model=model_name_es_en, tokenizer=model_name_es_en)
15
  def generate_story_translate(texto,longitud=250,categoria='superheroe'):
16
+ translate_en = translator_es_en(texto)[0]["translation_text"]
17
+ translate_cat_en = translator_es_en(texto)[0]["translation_text"]
18
+ query = "<BOS> <{0}> {1}".format(translate_cat_en, translate_en)
19
  generated_text = story_gen(query, max_length=longitud,do_sample=True,repetition_penalty=1.1, temperature=1.2, top_p=0.95, top_k=50)
20
  generated_text = generated_text[0]['generated_text']
21
  generated_text = generated_text.split('> ')[2]
22
+ return translator_en_es(generated_text)[0]["translation_text"]
 
23
  def generate_story_custom(texto,longitud=250):
24
  query = "<BOS> <{0}>".format(texto)
25
  input_ids = tokenizer(query, return_tensors="pt")["input_ids"]
 
31
  output = model_category.generate(input_ids, max_length=longitud,do_sample=True,repetition_penalty=1.1, temperature=1.2, top_p=0.95, top_k=50)
32
  return tokenizer_category.decode(output[0])
33
 
34
+ contexto = gr.inputs.Textbox(lines=5, placeholder="Ingresar palabras claves para generar un cuento")
35
  categoria = gr.inputs.Textbox(lines=1, placeholder="Ingresar Categoria")
36
  longitud = gr.inputs.Slider(50, 500)
37
+ opciones = gr.inputs.CheckboxGroup(["Generar", "Generar por Categoria", "Generar V 2.0"])
38
  resultado = gr.outputs.HTML(label="Resultado")
39
  def generate_storie(contexto,opciones,categoria,longitud):
40
  resultado=""
 
43
  cuentos.append(generate_story_custom(contexto,longitud))
44
  if "Generar por Categoria" in opciones:
45
  cuentos.append(generate_story_custom_category(contexto,longitud,categoria))
46
+ if "Generar V 2.0" in opciones:
47
  cuentos.append(generate_story_translate(contexto,longitud,categoria))
48
  resultado += "<p><b>Generados:</b> "+'<b>Cuento: <b/>'.join(cuentos)+"</p>"
49
  return resultado