Update app.py
Browse files
app.py
CHANGED
@@ -1,38 +1,54 @@
|
|
1 |
-
import
|
2 |
from PIL import Image
|
3 |
import google.generativeai as genai
|
4 |
-
|
|
|
|
|
|
|
|
|
|
|
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 |
-
#
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
try:
|
15 |
-
|
16 |
-
|
17 |
-
|
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
|
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(
|
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! 😊")
|