C2MV commited on
Commit
c3a5bd0
verified
1 Parent(s): 954a443

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +41 -27
app.py CHANGED
@@ -3,6 +3,7 @@ import torch
3
  from transformers import AutoModelForCausalLM, AutoTokenizer
4
  import time
5
  from functools import wraps
 
6
 
7
  # Decorador para medir el tiempo de ejecuci贸n
8
  def medir_tiempo(func):
@@ -23,37 +24,50 @@ if device == "cpu":
23
 
24
  # Cargar el tokenizador y el modelo desde HuggingFace
25
  model_name = "dmis-lab/selfbiorag_7b"
26
- print("Cargando el tokenizador y el modelo desde HuggingFace...")
27
- tokenizer = AutoTokenizer.from_pretrained(model_name)
28
- model = AutoModelForCausalLM.from_pretrained(
29
- model_name,
30
- torch_dtype=torch.float16 if device == "cuda" else torch.float32
31
- ).to(device)
 
 
 
 
 
 
 
 
 
 
32
 
33
  @medir_tiempo
34
  def generar_respuesta(consulta):
35
  """
36
  Funci贸n que genera una respuesta a partir de una consulta dada.
37
  """
38
- # Tokenizar la consulta
39
- inputs = tokenizer.encode(consulta, return_tensors="pt").to(device)
40
-
41
- # Configurar los par谩metros de generaci贸n
42
- generation_kwargs = {
43
- "max_new_tokens": 100, # Ajustado a 100
44
- "temperature": 0.0,
45
- "top_p": 1.0,
46
- "do_sample": False,
47
- "skip_special_tokens": True
48
- }
49
-
50
- # Generar la respuesta
51
- with torch.no_grad():
52
- outputs = model.generate(**inputs, **generation_kwargs)
53
-
54
- # Decodificar la respuesta
55
- respuesta = tokenizer.decode(outputs[0], skip_special_tokens=True)
56
- return respuesta
 
 
 
57
 
58
  # Definir la interfaz de Gradio
59
  titulo = "Generador de Respuestas con SelfBioRAG 7B"
@@ -61,8 +75,8 @@ descripcion = "Ingresa una consulta y el modelo generar谩 una respuesta basada e
61
 
62
  iface = gr.Interface(
63
  fn=generar_respuesta,
64
- inputs=gr.inputs.Textbox(lines=5, placeholder="Escribe tu consulta aqu铆..."),
65
- outputs=gr.outputs.Textbox(),
66
  title=titulo,
67
  description=descripcion,
68
  examples=[
 
3
  from transformers import AutoModelForCausalLM, AutoTokenizer
4
  import time
5
  from functools import wraps
6
+ import sys
7
 
8
  # Decorador para medir el tiempo de ejecuci贸n
9
  def medir_tiempo(func):
 
24
 
25
  # Cargar el tokenizador y el modelo desde HuggingFace
26
  model_name = "dmis-lab/selfbiorag_7b"
27
+
28
+ try:
29
+ print("Cargando el tokenizador y el modelo desde HuggingFace...")
30
+ tokenizer = AutoTokenizer.from_pretrained(model_name)
31
+ except ValueError as e:
32
+ print(f"Error al cargar el tokenizador: {e}")
33
+ sys.exit(1)
34
+
35
+ try:
36
+ model = AutoModelForCausalLM.from_pretrained(
37
+ model_name,
38
+ torch_dtype=torch.float16 if device == "cuda" else torch.float32
39
+ ).to(device)
40
+ except Exception as e:
41
+ print(f"Error al cargar el modelo: {e}")
42
+ sys.exit(1)
43
 
44
  @medir_tiempo
45
  def generar_respuesta(consulta):
46
  """
47
  Funci贸n que genera una respuesta a partir de una consulta dada.
48
  """
49
+ try:
50
+ # Tokenizar la consulta
51
+ inputs = tokenizer.encode(consulta, return_tensors="pt").to(device)
52
+
53
+ # Configurar los par谩metros de generaci贸n
54
+ generation_kwargs = {
55
+ "max_new_tokens": 100, # Ajustado a 100
56
+ "temperature": 0.0,
57
+ "top_p": 1.0,
58
+ "do_sample": False,
59
+ "skip_special_tokens": True
60
+ }
61
+
62
+ # Generar la respuesta
63
+ with torch.no_grad():
64
+ outputs = model.generate(**inputs, **generation_kwargs)
65
+
66
+ # Decodificar la respuesta
67
+ respuesta = tokenizer.decode(outputs[0], skip_special_tokens=True)
68
+ return respuesta
69
+ except Exception as e:
70
+ return f"Error al generar la respuesta: {e}"
71
 
72
  # Definir la interfaz de Gradio
73
  titulo = "Generador de Respuestas con SelfBioRAG 7B"
 
75
 
76
  iface = gr.Interface(
77
  fn=generar_respuesta,
78
+ inputs=gr.Textbox(lines=5, placeholder="Escribe tu consulta aqu铆..."),
79
+ outputs=gr.Textbox(),
80
  title=titulo,
81
  description=descripcion,
82
  examples=[