Spaces:
Sleeping
Sleeping
File size: 2,183 Bytes
56f6374 5b568c0 8fcc99d 5b568c0 24ba3c2 1e2e8cd 24ba3c2 5b568c0 24ba3c2 5b568c0 24ba3c2 8fcc99d 24ba3c2 8fcc99d 24ba3c2 8fcc99d 24ba3c2 8fcc99d 24ba3c2 8fcc99d 24ba3c2 8ed9429 24ba3c2 5b568c0 |
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 |
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() |