AlbertDuvan commited on
Commit
dd93648
·
verified ·
1 Parent(s): 40cce88

Upload 2 files

Browse files
Files changed (1) hide show
  1. app.py +8 -5
app.py CHANGED
@@ -9,10 +9,10 @@ import logging
9
  # Configurar logging
10
  logging.basicConfig(level=logging.INFO)
11
 
12
- # Cargar un modelo de lenguaje médico optimizado (usando quantización)
13
  model_name = "microsoft/BioGPT"
14
  tokenizer = AutoTokenizer.from_pretrained(model_name)
15
- model = AutoModelForCausalLM.from_pretrained(model_name, load_in_8bit=True, device_map="auto")
16
 
17
  # Configurar PubMed
18
  Entrez.email = "[email protected]" # Proporciona un correo válido
@@ -54,16 +54,19 @@ def buscar_en_internet(pregunta):
54
  logging.error(f"Error al buscar en Internet: {e}")
55
  return f"Error al buscar en Internet: {e}"
56
 
57
- # Función para generar respuestas del modelo
58
  def generar_respuesta(pregunta):
59
  inputs = tokenizer(
60
  f"Eres un profesor médico con vasto conocimiento en fisiología, bioquímica, farmacología y otras áreas médicas. "
61
  f"Explica de manera clara, sencilla y didáctica. Utiliza términos médicos y explícalos dentro de tus respuestas. "
62
  f"Si no estás seguro de algo, di 'No tengo suficiente información para responder a eso'. Pregunta: {pregunta}",
63
  return_tensors="pt"
64
- ).to("cuda")
 
 
 
 
65
 
66
- outputs = model.generate(**inputs, max_length=150) # Reducir max_length para mayor velocidad
67
  return tokenizer.decode(outputs[0], skip_special_tokens=True)
68
 
69
  # Función principal para hacer preguntas al bot
 
9
  # Configurar logging
10
  logging.basicConfig(level=logging.INFO)
11
 
12
+ # Cargar un modelo de lenguaje médico más pequeño (optimizado para CPU)
13
  model_name = "microsoft/BioGPT"
14
  tokenizer = AutoTokenizer.from_pretrained(model_name)
15
+ model = AutoModelForCausalLM.from_pretrained(model_name).to("cpu") # Usar CPU
16
 
17
  # Configurar PubMed
18
  Entrez.email = "[email protected]" # Proporciona un correo válido
 
54
  logging.error(f"Error al buscar en Internet: {e}")
55
  return f"Error al buscar en Internet: {e}"
56
 
57
+ # Función para generar respuestas del modelo (optimizada para CPU)
58
  def generar_respuesta(pregunta):
59
  inputs = tokenizer(
60
  f"Eres un profesor médico con vasto conocimiento en fisiología, bioquímica, farmacología y otras áreas médicas. "
61
  f"Explica de manera clara, sencilla y didáctica. Utiliza términos médicos y explícalos dentro de tus respuestas. "
62
  f"Si no estás seguro de algo, di 'No tengo suficiente información para responder a eso'. Pregunta: {pregunta}",
63
  return_tensors="pt"
64
+ ).to("cpu")
65
+
66
+ # Desactivar el cálculo de gradientes para ahorrar memoria
67
+ with torch.no_grad():
68
+ outputs = model.generate(**inputs, max_length=100) # Reducir max_length para mayor velocidad
69
 
 
70
  return tokenizer.decode(outputs[0], skip_special_tokens=True)
71
 
72
  # Función principal para hacer preguntas al bot