Files changed (1) hide show
  1. app.py +20 -27
app.py CHANGED
@@ -1,5 +1,5 @@
1
- import pandas as pd
2
  import streamlit as st
 
3
  from dotenv import load_dotenv
4
  import openai
5
  import os
@@ -9,13 +9,11 @@ import tempfile
9
  from google.cloud import texttospeech
10
  from google.cloud.speech import SpeechClient, RecognitionAudio, RecognitionConfig
11
  from streamlit_webrtc import webrtc_streamer, WebRtcMode, AudioProcessorBase
12
- import requests
13
 
14
  # Configuración de la clave API
15
  load_dotenv()
16
  openai.api_key = os.getenv("OPENAI_API_KEY")
17
- os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = "path/to/your/google-cloud-credentials.json"
18
- PEXELS_API_KEY = os.getenv("PEXELS_API_KEY")
19
 
20
  # Configuración de Streamlit
21
  st.set_page_config(page_title="Asistente Teológico", page_icon="📖")
@@ -76,6 +74,13 @@ st.markdown("Bienvenido al Asistente Teológico, donde puedes preguntar sobre in
76
  st.sidebar.title("Navegación")
77
  page = st.sidebar.selectbox("Selecciona una página", ["Chat Asistente", "Gestión de Pedidos", "Generador de Frases Bíblicas"])
78
 
 
 
 
 
 
 
 
79
  if page == "Chat Asistente":
80
  # Chat con el asistente
81
  st.subheader("🗣️ Chat con el Asistente")
@@ -144,31 +149,19 @@ elif page == "Gestión de Pedidos":
144
  calculo_pedido_agent.calcular_total(st.session_state)
145
 
146
  elif page == "Generador de Frases Bíblicas":
147
- # Función para generar una imagen alusiva usando Pexels
148
  def generar_imagen(frase):
149
- headers = {
150
- "Authorization": f"Bearer {PEXELS_API_KEY}"
151
- }
152
- params = {
153
- "query": frase,
154
- "per_page": 1
155
- }
156
- response = requests.get("https://api.pexels.com/v1/search", headers=headers, params=params)
157
- if response.status_code == 200:
158
- data = response.json()
159
- st.write(data) # Mostrar la respuesta de la API para depuración
160
- if data["photos"]:
161
- return data["photos"][0]["src"]["large"]
162
- else:
163
- st.error("No se encontraron imágenes")
164
- return None
165
- else:
166
- st.error(f"Error al buscar la imagen: {response.status_code} - {response.text}")
167
  return None
168
 
169
  # Encabezado
170
  st.subheader("📜 Generador de Frases Bíblicas")
171
- st.markdown("Escribe un versículo o una palabra y obtén una imagen alusiva usando Pexels.")
172
 
173
  # Entrada de texto para el versículo o palabra
174
  versiculo_usuario = st.text_input("Escribe un versículo o una palabra:")
@@ -176,10 +169,10 @@ elif page == "Generador de Frases Bíblicas":
176
  if st.button("Generar"):
177
  if versiculo_usuario:
178
  with st.spinner("Generando imagen..."):
179
- imagen_url = generar_imagen(versiculo_usuario)
180
- if imagen_url:
181
  st.subheader("Imagen alusiva:")
182
- st.image(imagen_url)
183
  else:
184
  st.warning("Por favor, ingresa un versículo o una palabra antes de generar.")
185
 
 
 
1
  import streamlit as st
2
+ from transformers import pipeline
3
  from dotenv import load_dotenv
4
  import openai
5
  import os
 
9
  from google.cloud import texttospeech
10
  from google.cloud.speech import SpeechClient, RecognitionAudio, RecognitionConfig
11
  from streamlit_webrtc import webrtc_streamer, WebRtcMode, AudioProcessorBase
 
12
 
13
  # Configuración de la clave API
14
  load_dotenv()
15
  openai.api_key = os.getenv("OPENAI_API_KEY")
16
+ os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = "botidinamix-g.json"
 
17
 
18
  # Configuración de Streamlit
19
  st.set_page_config(page_title="Asistente Teológico", page_icon="📖")
 
74
  st.sidebar.title("Navegación")
75
  page = st.sidebar.selectbox("Selecciona una página", ["Chat Asistente", "Gestión de Pedidos", "Generador de Frases Bíblicas"])
76
 
77
+ # Cargar el modelo de Hugging Face
78
+ @st.cache(allow_output_mutation=True)
79
+ def cargar_modelo():
80
+ return pipeline('text-to-image', model='CompVis/stable-diffusion-v1-4')
81
+
82
+ modelo_generacion_imagenes = cargar_modelo()
83
+
84
  if page == "Chat Asistente":
85
  # Chat con el asistente
86
  st.subheader("🗣️ Chat con el Asistente")
 
149
  calculo_pedido_agent.calcular_total(st.session_state)
150
 
151
  elif page == "Generador de Frases Bíblicas":
152
+ # Función para generar una imagen alusiva usando Hugging Face
153
  def generar_imagen(frase):
154
+ try:
155
+ images = modelo_generacion_imagenes(frase, num_return_sequences=1)
156
+ image = images[0]["generated_image"]
157
+ return image
158
+ except Exception as e:
159
+ st.error(f"Error al generar la imagen: {e}")
 
 
 
 
 
 
 
 
 
 
 
 
160
  return None
161
 
162
  # Encabezado
163
  st.subheader("📜 Generador de Frases Bíblicas")
164
+ st.markdown("Escribe un versículo o una palabra y obtén una imagen alusiva usando Hugging Face.")
165
 
166
  # Entrada de texto para el versículo o palabra
167
  versiculo_usuario = st.text_input("Escribe un versículo o una palabra:")
 
169
  if st.button("Generar"):
170
  if versiculo_usuario:
171
  with st.spinner("Generando imagen..."):
172
+ imagen_generada = generar_imagen(versiculo_usuario)
173
+ if imagen_generada:
174
  st.subheader("Imagen alusiva:")
175
+ st.image(imagen_generada)
176
  else:
177
  st.warning("Por favor, ingresa un versículo o una palabra antes de generar.")
178