Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -8,7 +8,8 @@ from google.cloud import texttospeech
|
|
| 8 |
import PyPDF2
|
| 9 |
from fpdf import FPDF
|
| 10 |
import tempfile
|
| 11 |
-
import requests
|
|
|
|
| 12 |
|
| 13 |
# Cargar variables de entorno desde el archivo .env
|
| 14 |
load_dotenv()
|
|
@@ -128,29 +129,39 @@ st.markdown("Bienvenido al Asistente Teol贸gico, donde puedes preguntar sobre in
|
|
| 128 |
st.sidebar.title("Navegaci贸n")
|
| 129 |
page = st.sidebar.selectbox("Selecciona una p谩gina", ["P谩gina Principal", "Chat Asistente", "Generador de Frases B铆blicas", "Recibir Reflexi贸n", "La conexi贸n", "Diario Reflexivo"])
|
| 130 |
|
| 131 |
-
# Funci贸n para
|
| 132 |
-
def
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 133 |
try:
|
| 134 |
-
|
| 135 |
-
|
| 136 |
-
|
| 137 |
-
|
| 138 |
-
|
| 139 |
-
|
| 140 |
-
|
| 141 |
-
|
| 142 |
-
|
| 143 |
-
|
| 144 |
-
|
| 145 |
-
|
| 146 |
-
|
| 147 |
-
|
| 148 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 149 |
|
| 150 |
# Funci贸n para generar reflexi贸n usando Groq
|
| 151 |
def generar_reflexion(keyword):
|
| 152 |
prompt = f"Genera una reflexi贸n inspiradora sobre {keyword} en el contexto de la espiritualidad y la Biblia."
|
| 153 |
-
respuesta =
|
| 154 |
return respuesta
|
| 155 |
|
| 156 |
# Funci贸n para convertir texto a voz
|
|
@@ -205,7 +216,7 @@ def generar_oracion_desde_pdf():
|
|
| 205 |
pdf_path = "diario-de-oraciones.pdf" # Ruta al PDF
|
| 206 |
texto_pdf = extraer_texto_pdf(pdf_path)
|
| 207 |
prompt = f"Genera una oraci贸n inspiradora basada en el siguiente texto: {texto_pdf[:2000]}" # Limitar a los primeros 2000 caracteres
|
| 208 |
-
respuesta =
|
| 209 |
return respuesta
|
| 210 |
|
| 211 |
# Funci贸n para generar y descargar un PDF con la entrada del diario
|
|
|
|
| 8 |
import PyPDF2
|
| 9 |
from fpdf import FPDF
|
| 10 |
import tempfile
|
| 11 |
+
import requests
|
| 12 |
+
from groq import Groq # Aseg煤rate de tener instalada la librer铆a groq
|
| 13 |
|
| 14 |
# Cargar variables de entorno desde el archivo .env
|
| 15 |
load_dotenv()
|
|
|
|
| 129 |
st.sidebar.title("Navegaci贸n")
|
| 130 |
page = st.sidebar.selectbox("Selecciona una p谩gina", ["P谩gina Principal", "Chat Asistente", "Generador de Frases B铆blicas", "Recibir Reflexi贸n", "La conexi贸n", "Diario Reflexivo"])
|
| 131 |
|
| 132 |
+
# Funci贸n para obtener respuesta de Groq
|
| 133 |
+
def obtener_respuesta(pregunta, contexto="", modelo="llama3-8b-8192", temperatura=0.5):
|
| 134 |
+
"""Obtiene una respuesta de Groq basada en el contexto y la pregunta proporcionados."""
|
| 135 |
+
if not pregunta:
|
| 136 |
+
st.error("La pregunta no puede estar vac铆a.")
|
| 137 |
+
return "Lo siento, la pregunta no puede estar vac铆a."
|
| 138 |
+
|
| 139 |
try:
|
| 140 |
+
client = Groq(api_key=groq_api_key)
|
| 141 |
+
with st.spinner('Evaluando su respuesta...'):
|
| 142 |
+
response = client.chat.completions.create(
|
| 143 |
+
messages=[
|
| 144 |
+
{"role": "system", "content": contexto},
|
| 145 |
+
{"role": "user", "content": pregunta}
|
| 146 |
+
],
|
| 147 |
+
model=modelo,
|
| 148 |
+
temperature=temperatura,
|
| 149 |
+
max_tokens=1024,
|
| 150 |
+
top_p=1,
|
| 151 |
+
stop=None,
|
| 152 |
+
stream=False,
|
| 153 |
+
)
|
| 154 |
+
respuesta = response.choices[0].message.content.strip()
|
| 155 |
+
return respuesta
|
| 156 |
+
|
| 157 |
+
except Exception as e:
|
| 158 |
+
st.error(f"Error al comunicarse con Groq: {e}")
|
| 159 |
+
return "Lo siento, no puedo procesar tu solicitud en este momento."
|
| 160 |
|
| 161 |
# Funci贸n para generar reflexi贸n usando Groq
|
| 162 |
def generar_reflexion(keyword):
|
| 163 |
prompt = f"Genera una reflexi贸n inspiradora sobre {keyword} en el contexto de la espiritualidad y la Biblia."
|
| 164 |
+
respuesta = obtener_respuesta(prompt)
|
| 165 |
return respuesta
|
| 166 |
|
| 167 |
# Funci贸n para convertir texto a voz
|
|
|
|
| 216 |
pdf_path = "diario-de-oraciones.pdf" # Ruta al PDF
|
| 217 |
texto_pdf = extraer_texto_pdf(pdf_path)
|
| 218 |
prompt = f"Genera una oraci贸n inspiradora basada en el siguiente texto: {texto_pdf[:2000]}" # Limitar a los primeros 2000 caracteres
|
| 219 |
+
respuesta = obtener_respuesta(prompt)
|
| 220 |
return respuesta
|
| 221 |
|
| 222 |
# Funci贸n para generar y descargar un PDF con la entrada del diario
|