jeysshon commited on
Commit
69221ba
·
verified ·
1 Parent(s): cd2e259

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +36 -20
app.py CHANGED
@@ -1,38 +1,54 @@
1
- import io
2
  from PIL import Image
3
  import google.generativeai as genai
4
- import streamlit as st
 
 
 
 
 
5
 
6
  # Configuración de la API key para Google Generative AI
7
  api_key = "AIzaSyDJZ3r6VRhRivR0pb96cBRg_VvGg_fXq5k" # API key proporcionada
8
 
 
 
 
 
 
 
9
  def procesar_imagen(imagen):
10
  genai.configure(api_key=api_key)
11
  modelo = genai.GenerativeModel('gemini-1.5-pro-latest')
12
-
13
- # Convertir la imagen a formato compatible
 
 
 
 
 
 
 
 
 
 
 
 
14
  try:
15
- # Asegúrate de que la imagen está en formato PIL.Image
16
- if isinstance(imagen, bytes):
17
- imagen = Image.open(io.BytesIO(imagen))
18
-
19
- # Convertir la imagen a un formato adecuado para la API
20
- imagen_bytes = io.BytesIO()
21
- imagen.save(imagen_bytes, format='PNG')
22
- imagen_bytes.seek(0)
23
-
24
- # Procesar la imagen con la API
25
- respuesta = modelo.generate_content(imagen_bytes)
26
- return respuesta.text
27
  except Exception as e:
28
- st.error(f"Error al procesar la imagen: {e}")
29
- return "Hubo un error al procesar la imagen."
30
 
31
- # Ejemplo de uso en Streamlit
32
  st.title("🤖 ¡Bienvenido a ChatBot!")
33
 
34
  espacio_contenido_generado = st.empty()
35
 
 
 
 
 
36
  # Contenido principal
37
  st.write("¡Hola! Soy tu asistente virtual. ¿Cómo puedo ayudarte hoy? 😊")
38
 
@@ -57,7 +73,7 @@ with col2:
57
  imagen = Image.open(entrada_imagen)
58
  st.image(imagen, caption='Imagen subida.', use_column_width=True)
59
  with st.spinner("Procesando imagen..."):
60
- respuesta = procesar_imagen(entrada_imagen.read())
61
  espacio_contenido_generado.write(f"**Respuesta de la imagen:** {respuesta}")
62
 
63
  st.write("¡Gracias por usar el ChatBot! 😊")
 
1
+ import streamlit as st
2
  from PIL import Image
3
  import google.generativeai as genai
4
+ from gtts import gTTS
5
+ import os
6
+ import io
7
+
8
+ # Configuración de la página de Streamlit
9
+ st.set_page_config(page_title="🤖 ChatBot", layout="wide")
10
 
11
  # Configuración de la API key para Google Generative AI
12
  api_key = "AIzaSyDJZ3r6VRhRivR0pb96cBRg_VvGg_fXq5k" # API key proporcionada
13
 
14
+ def procesar_texto(texto):
15
+ genai.configure(api_key=api_key)
16
+ modelo = genai.GenerativeModel('gemini-1.5-pro-latest')
17
+ respuesta = modelo.generate_content(texto)
18
+ return respuesta.text
19
+
20
  def procesar_imagen(imagen):
21
  genai.configure(api_key=api_key)
22
  modelo = genai.GenerativeModel('gemini-1.5-pro-latest')
23
+
24
+ # Asegúrate de que la imagen sea un objeto PIL.Image
25
+ if isinstance(imagen, Image.Image):
26
+ # Convertir la imagen a un formato compatible si es necesario
27
+ try:
28
+ # Aquí puedes convertir la imagen a un formato aceptable si la API requiere un formato específico
29
+ respuesta = modelo.generate_content(imagen)
30
+ return respuesta.text
31
+ except Exception as e:
32
+ return f"Error al procesar la imagen: {e}"
33
+ else:
34
+ return "La imagen no es del tipo esperado."
35
+
36
+ def hablar_texto(texto):
37
  try:
38
+ tts = gTTS(text=texto, lang='es')
39
+ tts.save("respuesta.mp3")
40
+ os.system("mpg321 respuesta.mp3") # Usa mpg321 para reproducir el archivo
 
 
 
 
 
 
 
 
 
41
  except Exception as e:
42
+ st.error(f"Error al generar el audio: {e}")
 
43
 
 
44
  st.title("🤖 ¡Bienvenido a ChatBot!")
45
 
46
  espacio_contenido_generado = st.empty()
47
 
48
+ # Cargar y aplicar CSS personalizado
49
+ with open("./style.css") as f:
50
+ st.markdown(f"<style>{f.read()}</style>", unsafe_allow_html=True)
51
+
52
  # Contenido principal
53
  st.write("¡Hola! Soy tu asistente virtual. ¿Cómo puedo ayudarte hoy? 😊")
54
 
 
73
  imagen = Image.open(entrada_imagen)
74
  st.image(imagen, caption='Imagen subida.', use_column_width=True)
75
  with st.spinner("Procesando imagen..."):
76
+ respuesta = procesar_imagen(imagen)
77
  espacio_contenido_generado.write(f"**Respuesta de la imagen:** {respuesta}")
78
 
79
  st.write("¡Gracias por usar el ChatBot! 😊")