File size: 2,252 Bytes
cb6994c
 
 
 
 
 
 
 
 
 
 
 
ec324a4
cb6994c
 
 
 
 
ec324a4
cb6994c
f0c7f36
cb6994c
 
 
 
 
 
 
0cd019f
 
 
 
 
 
 
 
 
 
 
 
 
a6596ee
 
 
0cd019f
 
 
 
fe212fe
 
 
 
 
0fb8bbb
0cd019f
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
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-pro-latest')
    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-pro-latest')
    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)