Brunohdez commited on
Commit
c6c924d
verified
1 Parent(s): 758f1a2

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +31 -19
app.py CHANGED
@@ -10,7 +10,6 @@ GEMINI_API_KEY = "AIzaSyCZwFUTPjCIx5reXELxu8Tby2wwu-s_K9o"
10
  def generate_response(user_input):
11
  try:
12
  client = genai.Client(api_key=GEMINI_API_KEY)
13
-
14
  model = "gemini-2.0-flash-thinking-exp-01-21"
15
  contents = [
16
  types.Content(
@@ -50,30 +49,43 @@ 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":
61
- # Entrada del usuario para el chat
62
  user_input = st.text_area("Introduce tu solicitud:", placeholder="Escribe algo aqu铆...")
63
-
64
- # Bot贸n para enviar la solicitud
65
- if st.button("Obtener Respuesta"):
66
  if user_input.strip():
67
  with st.spinner("Generando respuesta..."):
68
  response = generate_response(user_input)
 
 
 
 
 
69
  st.success("隆Respuesta generada!")
70
- st.write(response)
71
  else:
72
  st.error("Por favor, introduce una solicitud para continuar.")
73
 
 
 
 
 
 
 
 
74
  # Opci贸n 2: Subir y preguntar sobre un PDF
75
- elif option == "Subir y preguntar sobre un PDF":
76
- # Subir archivo PDF
77
  uploaded_file = st.file_uploader("Sube un archivo PDF", type="pdf")
78
 
79
  if uploaded_file is not None:
@@ -81,19 +93,19 @@ elif option == "Subir y preguntar sobre un PDF":
81
  pdf_text = extract_text_from_pdf(uploaded_file)
82
 
83
  if pdf_text:
84
- st.success("Texto extra铆do del PDF correctamente.")
85
-
86
  # Mostrar una parte del contenido extra铆do
87
  st.text_area("Contenido del PDF:", pdf_text[:1000], height=200)
88
-
89
  # Entrada de pregunta del usuario sobre el PDF
90
  user_question = st.text_area("Haz una pregunta sobre el contenido del PDF:", placeholder="Escribe tu pregunta aqu铆...")
91
-
92
- # Bot贸n para enviar la pregunta
93
  if st.button("Obtener Respuesta"):
94
  if user_question.strip():
95
  with st.spinner("Generando respuesta..."):
96
- response = generate_response(pdf_text, user_question)
 
 
97
  st.success("隆Respuesta generada!")
98
  st.write(response)
99
  else:
 
10
  def generate_response(user_input):
11
  try:
12
  client = genai.Client(api_key=GEMINI_API_KEY)
 
13
  model = "gemini-2.0-flash-thinking-exp-01-21"
14
  contents = [
15
  types.Content(
 
49
  except Exception as e:
50
  return f"Se produjo un error al leer el PDF: {e}"
51
 
52
+ # Inicializar historial de conversaciones en la sesi贸n
53
+ if "chat_history" not in st.session_state:
54
+ st.session_state.chat_history = []
55
+
56
  st.title("Gemini LLM App")
57
 
58
+ # Men煤 lateral para elegir la opci贸n (chat o PDF)
59
+ option = st.sidebar.radio("Elige una opci贸n:", ("Chat", "PDF"))
60
 
61
+ # Opci贸n 1: Chat con historial
62
+ if option == "Chat":
63
+ st.header("Chat con Gemini")
64
  user_input = st.text_area("Introduce tu solicitud:", placeholder="Escribe algo aqu铆...")
65
+
66
+ if st.button("Enviar"):
 
67
  if user_input.strip():
68
  with st.spinner("Generando respuesta..."):
69
  response = generate_response(user_input)
70
+ # Agregar al historial
71
+ st.session_state.chat_history.append({
72
+ "usuario": user_input,
73
+ "respuesta": response
74
+ })
75
  st.success("隆Respuesta generada!")
 
76
  else:
77
  st.error("Por favor, introduce una solicitud para continuar.")
78
 
79
+ # Mostrar historial de conversaciones
80
+ st.subheader("Historial de Conversaciones")
81
+ for idx, msg in enumerate(st.session_state.chat_history):
82
+ st.markdown(f"**Usuario {idx+1}:** {msg['usuario']}")
83
+ st.markdown(f"**Gemini:** {msg['respuesta']}")
84
+ st.markdown("---")
85
+
86
  # Opci贸n 2: Subir y preguntar sobre un PDF
87
+ elif option == "PDF":
88
+ st.header("Preguntar sobre un PDF")
89
  uploaded_file = st.file_uploader("Sube un archivo PDF", type="pdf")
90
 
91
  if uploaded_file is not None:
 
93
  pdf_text = extract_text_from_pdf(uploaded_file)
94
 
95
  if pdf_text:
96
+ st.success("Texto extra铆do correctamente.")
 
97
  # Mostrar una parte del contenido extra铆do
98
  st.text_area("Contenido del PDF:", pdf_text[:1000], height=200)
99
+
100
  # Entrada de pregunta del usuario sobre el PDF
101
  user_question = st.text_area("Haz una pregunta sobre el contenido del PDF:", placeholder="Escribe tu pregunta aqu铆...")
102
+
 
103
  if st.button("Obtener Respuesta"):
104
  if user_question.strip():
105
  with st.spinner("Generando respuesta..."):
106
+ # Combinar el texto del PDF y la pregunta del usuario
107
+ combined_input = pdf_text + "\nPregunta: " + user_question
108
+ response = generate_response(combined_input)
109
  st.success("隆Respuesta generada!")
110
  st.write(response)
111
  else: