Spaces:
Sleeping
Sleeping
import os | |
import streamlit as st | |
import google.generativeai as genai | |
from PIL import Image | |
import io | |
# Configurar la API de Gemini | |
api_key = os.getenv('GEMINI_API_KEY') | |
genai.configure(api_key=api_key) | |
# Funci贸n para generar contenido a partir de texto | |
def generate_text(prompt): | |
model = genai.GenerativeModel('gemini-1.5-flash') | |
response = model.generate_content(prompt) | |
return response.text | |
# Funci贸n para generar contenido a partir de texto e imagen | |
def generate_text_from_image(image, prompt): | |
model = genai.GenerativeModel('gemini-1.5-flash') | |
response = model.generate_content([prompt, image], stream=True) | |
response.resolve() # Asegurarse de que la respuesta se resuelva antes de acceder a sus atributos | |
return response.text | |
# Configuraci贸n de la aplicaci贸n Streamlit | |
st.title('Aplicaci贸n con Gemini Vision') | |
st.write('Esta es una aplicaci贸n de demostraci贸n utilizando la API de Gemini Vision.') | |
# Cargar imagen | |
uploaded_file = st.file_uploader("Elige una imagen", type=["jpg", "jpeg", "png"]) | |
if uploaded_file is not None: | |
# Mostrar la imagen cargada | |
image = Image.open(uploaded_file) | |
st.image(image, caption='Imagen Cargada', use_column_width=True) | |
# Texto de entrada del usuario | |
prompt = st.text_input("Introduce el texto para generar la respuesta:") | |
if st.button("Generar Respuesta"): | |
# Convertir la imagen a bytes | |
img_bytes = io.BytesIO() | |
# Convertir la imagen a modo RGB si tiene transparencia | |
if image.mode == 'RGBA': | |
image = image.convert('RGB') | |
image.save(img_bytes, format='JPEG') | |
img_bytes = img_bytes.getvalue() | |
# Generar respuesta a partir de la imagen y el texto | |
try: | |
response = generate_text_from_image(image, prompt) # Usar la imagen directamente | |
st.markdown(response) | |
except Exception as e: | |
st.error(f"Error al generar respuesta: {e}") | |
else: | |
# Texto de entrada del usuario | |
prompt = st.text_input("Introduce el texto para generar la respuesta:") | |
if st.button("Generar Respuesta"): | |
# Generar respuesta a partir del texto | |
response = generate_text(prompt) | |
st.markdown(response) |