Brunohdez commited on
Commit
1bbc050
verified
1 Parent(s): f76dde8

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +53 -2
app.py CHANGED
@@ -50,11 +50,44 @@ def extract_text_from_pdf(pdf_file):
50
  except Exception as e:
51
  return f"Se produjo un error al leer el PDF: {e}"
52
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
53
  # Aplicaci贸n Streamlit
54
  st.title("Gemini LLM App")
55
 
56
- # Selecci贸n entre Chat o PDF
57
- option = st.radio("Elige una opci贸n:", ("Hablar con el chat", "Subir y preguntar sobre un PDF"))
58
 
59
  # Opci贸n 1: Hablar con el chat
60
  if option == "Hablar con el chat":
@@ -102,3 +135,21 @@ elif option == "Subir y preguntar sobre un PDF":
102
  st.error("No se pudo extraer texto del archivo PDF. Por favor, intenta con otro archivo.")
103
  else:
104
  st.info("Por favor, sube un archivo PDF para empezar.")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
50
  except Exception as e:
51
  return f"Se produjo un error al leer el PDF: {e}"
52
 
53
+ # Funci贸n para generar una imagen a partir de una descripci贸n
54
+ def generate_image(description):
55
+ try:
56
+ client = genai.Client(api_key=GEMINI_API_KEY)
57
+
58
+ # Se asume que la API de Gemini tiene un endpoint para generar im谩genes (aj煤stalo seg煤n lo que soporte Gemini)
59
+ model = "gemini-2.0-flash-thinking-exp-01-21" # Cambiar seg煤n el modelo de imagen
60
+ contents = [
61
+ types.Content(
62
+ role="user",
63
+ parts=[types.Part.from_text(text=description)],
64
+ ),
65
+ ]
66
+ generate_content_config = types.GenerateContentConfig(
67
+ temperature=0.7,
68
+ top_p=0.95,
69
+ top_k=64,
70
+ max_output_tokens=65536,
71
+ response_mime_type="image/png", # Suponiendo que la respuesta es en formato de imagen
72
+ )
73
+
74
+ response_image_url = ""
75
+ for chunk in client.models.generate_content_stream(
76
+ model=model,
77
+ contents=contents,
78
+ config=generate_content_config,
79
+ ):
80
+ response_image_url += chunk.text # Suponiendo que la API devuelve una URL de la imagen generada
81
+
82
+ return response_image_url
83
+ except Exception as e:
84
+ return f"Se produjo un error al generar la imagen: {e}"
85
+
86
  # Aplicaci贸n Streamlit
87
  st.title("Gemini LLM App")
88
 
89
+ # Selecci贸n entre Chat, PDF o Generaci贸n de Imagen
90
+ option = st.radio("Elige una opci贸n:", ("Hablar con el chat", "Subir y preguntar sobre un PDF", "Generar una imagen"))
91
 
92
  # Opci贸n 1: Hablar con el chat
93
  if option == "Hablar con el chat":
 
135
  st.error("No se pudo extraer texto del archivo PDF. Por favor, intenta con otro archivo.")
136
  else:
137
  st.info("Por favor, sube un archivo PDF para empezar.")
138
+
139
+ # Opci贸n 3: Generar una imagen
140
+ elif option == "Generar una imagen":
141
+ # Entrada para la descripci贸n de la imagen
142
+ image_description = st.text_area("Introduce una descripci贸n para generar la imagen:", placeholder="Escribe aqu铆 lo que quieres ver en la imagen...")
143
+
144
+ if st.button("Generar Imagen"):
145
+ if image_description.strip():
146
+ with st.spinner("Generando imagen..."):
147
+ image_url = generate_image(image_description)
148
+
149
+ if image_url.startswith("http"): # Verifica si se obtuvo una URL v谩lida de la imagen
150
+ st.success("隆Imagen generada!")
151
+ st.image(image_url, caption="Imagen generada por Gemini", use_column_width=True)
152
+ else:
153
+ st.error(f"No se pudo generar la imagen. Error: {image_url}")
154
+ else:
155
+ st.error("Por favor, introduce una descripci贸n para generar la imagen.")