Spaces:
Sleeping
Sleeping
import streamlit as st | |
from PIL import Image | |
import textwrap | |
import google.generativeai as genai | |
# Función para mostrar texto formateado en Markdown | |
def to_markdown(texto): | |
texto = texto.replace('•', ' *') | |
return textwrap.indent(texto, '> ', predicate=lambda _: True) | |
# Función para generar contenido usando la API Gemini | |
def generar_contenido_gemini(prompt, model_name='gemini-pro-vision', imagen=None): | |
api_key = "AIzaSyCv30EVBXynJjSNZiYkKqc5xx1DovQEaQY" # Inserta tu API key aquí | |
genai.configure(api_key=api_key) | |
modelo = genai.GenerativeModel(model_name) | |
if not imagen: | |
st.warning("Por favor, agrega una imagen para usar el modelo gemini-pro-vision.") | |
return None | |
respuesta = modelo.generate_content([prompt, imagen]) | |
return respuesta | |
# App de Streamlit | |
def main(): | |
st.title("Demo de la API Gemini con Streamlit") | |
# Obtener entrada de texto del usuario | |
prompt = st.text_area("Ingresa tu indicación:") | |
# Obtener entrada opcional de imagen | |
imagen_archivo = st.file_uploader("Subir una imagen (si aplica):", type=["jpg", "jpeg", "png"]) | |
# Mostrar imagen si se proporciona | |
if imagen_archivo: | |
st.image(imagen_archivo, caption="Imagen Subida", use_column_width=True) | |
# Generar contenido al hacer clic en el botón | |
if st.button("Generar Contenido"): | |
st.markdown("### Contenido Generado:") | |
if not imagen_archivo: | |
st.warning("Por favor, proporciona una imagen para el modelo gemini-pro-vision.") | |
else: | |
imagen = Image.open(imagen_archivo) | |
respuesta = generar_contenido_gemini(prompt, imagen=imagen) | |
# Mostrar el contenido generado en formato Markdown si hay respuesta disponible | |
if respuesta: | |
if respuesta.candidates: | |
partes = respuesta.candidates[0].content.parts | |
texto_generado = partes[0].text if partes else "No se generó contenido." | |
st.markdown(to_markdown(texto_generado)) | |
else: | |
st.warning("No se encontraron candidatos en la respuesta.") | |
if __name__ == "__main__": | |
main() |