Spaces:
Sleeping
Sleeping
Upload 2 files
Browse files
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
|
13 |
model_name = "microsoft/BioGPT"
|
14 |
tokenizer = AutoTokenizer.from_pretrained(model_name)
|
15 |
-
model = AutoModelForCausalLM.from_pretrained(model_name
|
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("
|
|
|
|
|
|
|
|
|
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
|