askbyte commited on
Commit
9ba91ec
·
verified ·
1 Parent(s): 3fb5e57

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +40 -24
app.py CHANGED
@@ -1,34 +1,50 @@
1
  import gradio as gr
2
- from transformers import T5Tokenizer, T5ForConditionalGeneration
3
  import torch
4
 
5
- # Cargar modelo y tokenizer
6
- model_name = "google/flan-t5-base"
7
- tokenizer = T5Tokenizer.from_pretrained(model_name)
8
- model = T5ForConditionalGeneration.from_pretrained(model_name)
9
 
10
- def get_system_prompt():
11
- with open("prompt.txt", "r", encoding="utf-8") as f:
12
- return f.read().strip()
 
 
 
 
 
13
 
14
- def generate_response(user_input):
15
- system_prompt = get_system_prompt()
16
- full_prompt = f"{system_prompt}\n\nUsuario: {user_input}\nBITER:"
 
17
 
18
- inputs = tokenizer(full_prompt, return_tensors="pt")
19
- output = model.generate(**inputs, max_new_tokens=200)
 
 
 
 
 
 
20
 
21
- decoded_output = tokenizer.decode(output[0], skip_special_tokens=True)
22
- return decoded_output.strip()
23
 
24
- # Interfaz Gradio para probar el modelo directamente en Hugging Face
25
- demo = gr.Interface(
26
- fn=generate_response,
27
- inputs=gr.Textbox(lines=2, placeholder="Escribe tu pregunta..."),
28
- outputs=gr.Textbox(),
29
- title="BITER - Mentor IA para Emprendedores",
30
- description="Respuestas rápidas, estratégicas y en español. Como un CEO que te asesora al instante.",
 
 
 
 
 
31
  )
32
 
33
- if __name__ == "__main__":
34
- demo.launch()
 
1
  import gradio as gr
2
+ from transformers import AutoTokenizer, AutoModelForSeq2SeqLM
3
  import torch
4
 
5
+ # Carga del modelo ligero en español
6
+ model_name = "mrm8488/t5-base-finetuned-spanish-summarization"
7
+ tokenizer = AutoTokenizer.from_pretrained(model_name)
8
+ model = AutoModelForSeq2SeqLM.from_pretrained(model_name)
9
 
10
+ # Prompt base para BITER
11
+ base_prompt = (
12
+ "Eres BITER, un mentor experto en negocios. Responde SIEMPRE en español, "
13
+ "con consejos breves, claros y con visión estratégica. Ayudas a emprendedores "
14
+ "a tomar buenas decisiones. Sé directo, profesional y humano.\n"
15
+ "Usuario: {pregunta}\n"
16
+ "BITER:"
17
+ )
18
 
19
+ # Función de respuesta
20
+ def responder(pregunta):
21
+ prompt = base_prompt.format(pregunta=pregunta)
22
+ input_ids = tokenizer.encode(prompt, return_tensors="pt", truncation=True)
23
 
24
+ # Generar respuesta
25
+ with torch.no_grad():
26
+ output_ids = model.generate(
27
+ input_ids,
28
+ max_new_tokens=100,
29
+ num_beams=4,
30
+ early_stopping=True
31
+ )
32
 
33
+ respuesta = tokenizer.decode(output_ids[0], skip_special_tokens=True)
34
+ return respuesta.strip()
35
 
36
+ # Interfaz Gradio
37
+ iface = gr.Interface(
38
+ fn=responder,
39
+ inputs=gr.Textbox(lines=3, placeholder="¿Cuál es tu duda sobre tu negocio?", label="Tu pregunta"),
40
+ outputs=gr.Textbox(label="Respuesta de BITER"),
41
+ title="BITER - Tu Mentor IA para Decisiones de Negocio",
42
+ description="BITER responde dudas de emprendedores como si fuera un CEO experimentado. Modelo: T5 ligero afinado en español.",
43
+ examples=[
44
+ ["¿Cómo puedo validar mi idea de negocio con poco presupuesto?"],
45
+ ["¿Cuál es la mejor estrategia para conseguir mis primeros clientes?"],
46
+ ["¿Debería invertir en publicidad o en SEO?"]
47
+ ],
48
  )
49
 
50
+ iface.launch()