GhostNetworkUser commited on
Commit
49441eb
·
verified ·
1 Parent(s): d136349

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +60 -9
app.py CHANGED
@@ -1,14 +1,65 @@
1
  import gradio as gr
2
- from transformers import AutoModelForCausalLM, AutoTokenizer
 
 
3
 
4
- model_name = "EleutherAI/gpt-neo-125M"
5
- model = AutoModelForCausalLM.from_pretrained(model_name)
6
- tokenizer = AutoTokenizer.from_pretrained(model_name)
 
 
7
 
8
- def generate_text(prompt):
9
- inputs = tokenizer(prompt, return_tensors="pt")
10
- outputs = model.generate(**inputs, max_length=50)
11
- return tokenizer.decode(outputs[0], skip_special_tokens=True)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12
 
13
- demo = gr.Interface(fn=generate_text, inputs="text", outputs="text", title="GhostAI Text Generation")
14
  demo.launch()
 
 
1
  import gradio as gr
2
+ from transformers import pipeline, AutoTokenizer, AutoModelForCausalLM
3
+ from datasets import load_dataset
4
+ from translate import Translator
5
 
6
+ # Modelo base
7
+ MODEL_KEY = "EleutherAI/gpt-neo-125M"
8
+ tokenizer = AutoTokenizer.from_pretrained(MODEL_KEY)
9
+ model = AutoModelForCausalLM.from_pretrained(MODEL_KEY)
10
+ generator = pipeline("text-generation", model=model, tokenizer=tokenizer)
11
 
12
+ # Mapa de dominios y estilos por dataset
13
+ context_map = {
14
+ "imdb": "Dom: Cine | Estilo: Opinión",
15
+ "daily_dialog": "Dom: Conversación | Estilo: Diálogo diario",
16
+ "go_emotions": "Dom: Emociones | Estilo: Clasificación emocional",
17
+ "wikitext": "Dom: Enciclopedia | Estilo: Conocimiento general",
18
+ }
19
+
20
+ # Dataset de prueba
21
+ available_datasets = list(context_map.keys())
22
+
23
+ # Función para generar texto
24
+ def generate_text(dataset_name, sample_index, max_length):
25
+ dataset = load_dataset(dataset_name, split="train[:1%]") # Ligero
26
+ if sample_index >= len(dataset):
27
+ return "Índice fuera de rango."
28
+
29
+ example = dataset[sample_index]
30
+ text = example.get("text") or example.get("utterance") or example.get("content") or str(example)
31
+
32
+ context = context_map.get(dataset_name, "Dom: Desconocido | Estilo: Desconocido")
33
+ prompt = f"{context} | Entrada: {text}"
34
+ output = generator(prompt, max_length=int(max_length), num_return_sequences=1)[0]["generated_text"]
35
+ return output
36
+
37
+ # Traducción
38
+ def translate_text(text, lang):
39
+ translator = Translator(to_lang=lang)
40
+ try:
41
+ return translator.translate(text)
42
+ except Exception as e:
43
+ return f"Error: {str(e)}"
44
+
45
+ # Interfaz con Gradio
46
+ with gr.Blocks() as demo:
47
+ gr.Markdown("# 🧠 MultiDomain Text Generator + Translator")
48
+
49
+ with gr.Tab("Generar desde dataset"):
50
+ dataset_name = gr.Dropdown(choices=available_datasets, value="imdb", label="Elige dataset")
51
+ sample_index = gr.Slider(minimum=30, maximum=200, step=1, label="Índice del ejemplo", value=0)
52
+ max_len = gr.Slider(label="Longitud máxima", minimum=50, maximum=1024, step=4, value=104)
53
+ output_text = gr.Textbox(label="Texto generado")
54
+ btn_generate = gr.Button("Generar texto")
55
+ btn_generate.click(generate_text, inputs=[dataset_name, sample_index, max_len], outputs=output_text)
56
+
57
+ with gr.Tab("Traducir texto"):
58
+ input_text = gr.Textbox(label="Texto a traducir")
59
+ lang = gr.Textbox(label="Código de idioma destino", value="en")
60
+ output_translation = gr.Textbox(label="Texto traducido")
61
+ btn_translate = gr.Button("Traducir")
62
+ btn_translate.click(translate_text, inputs=[input_text, lang], outputs=output_translation)
63
 
 
64
  demo.launch()
65
+