if selected == "System Prompt": st.title("Configuración del System Prompt") new_system_prompt = st.text_area( "Ingresa las instrucciones para el AI (System Prompt)", value=st.session_state.system_prompt, height=300, help="Escribe aquí las instrucciones que definirán el comportamiento del AI" ) # Campo para ingresar URLs urls_input = st.text_area( "Ingresa URLs de información y documentos (separadas por comas)", value=st.session_state.get('cookie_urls', ""), height=100, help="Escribe aquí las URLs que el AI puede usar como referencia, separadas por comas." ) if st.button("Guardar System Prompt y URLs"): st.session_state.system_prompt = new_system_prompt st.session_state.cookie_system_prompt = new_system_prompt st.session_state.cookie_urls = urls_input.split(",") # Guardar las URLs en una lista if "chat_session" in st.session_state: del st.session_state.chat_session st.success("System Prompt y URLs actualizados con éxito!") if st.session_state.system_prompt: st.markdown("### System Prompt Actual:") st.info(st.session_state.system_prompt) if st.session_state.get('cookie_urls'): st.markdown("### URLs Guardadas:") st.info(", ".join(st.session_state.cookie_urls)) elif selected == "Chatbot": model = load_gemini_pro() # Inicializar o cargar sesión de chat if "chat_session" not in st.session_state: loaded_chat = load_chat_history() if loaded_chat: st.session_state.chat_session = loaded_chat else: st.session_state.chat_session = model.start_chat(history=[]) if st.session_state.system_prompt: st.session_state.chat_session.send_message(st.session_state.system_prompt) st.title("Gnosticdev Chatbot") if st.session_state.system_prompt: with st.expander("Ver System Prompt actual"): st.info(st.session_state.system_prompt) # Mostrar historial for message in st.session_state.chat_session.history: with st.chat_message(translate_role_to_streamlit(message.role)): st.markdown(message.parts[0].text) # Campo de entrada user_prompt = st.chat_input("Preguntame algo...") if user_prompt: st.chat_message("user").markdown(user_prompt) # Aquí es donde puedes modificar la lógica para que el bot consulte las URLs urls = st.session_state.get('cookie_urls', []) if urls: # Lógica para consultar las URLs y obtener información # Esto es un ejemplo, necesitarás implementar la lógica real para hacer las solicitudes HTTP for url in urls: # Aquí podrías hacer una solicitud HTTP a cada URL y procesar la respuesta # Por ejemplo, usando requests.get(url) y luego analizando el contenido pass gemini_response = st.session_state.chat_session.send_message(user_prompt) with st.chat_message("assistant"): st.markdown(gemini_response.text) # Guardar historial actualizado save_chat_history(st.session_state.chat_session.history) # Opción para descargar el historial del chat if st.button("Descargar Historial del Chat"): chat_history = download_chat_history(st.session_state.chat_session.history) st.download_button( label="Descargar", data=chat_history, file_name="historial_chat.txt", mime="text/plain" ) elif selected == "Image Captioning": st.title("Image Caption Generation📸") upload_image = st.file_uploader("Upload an image...", type=["jpg", "jpeg", "png"]) if upload_image and st.button("Generate"): image = Image.open(upload_image) col1, col2 = st.columns(2) with col1: st.image(image, caption="Uploaded Image", use_column_width=True) default_prompt = "Write a caption for this image" caption = gemini_pro_vision_responce(default_prompt, image) with col2: st.info(caption) # Fin del script