import streamlit as st from langchain_core.messages import AIMessage, HumanMessage from src import get_vectorstore_from_url,get_response # app config st.set_page_config(page_title="Chat with websites", page_icon="asset/alien_008.jpg") st.title("Chat with websites") website_url = st.text_input("Website URL", placeholder='https://en.wikipedia.org/wiki/Artificial_intelligence') if website_url is None or website_url == "": st.info("Please provide a website URL and hit enter") else: # session state if "chat_history" not in st.session_state: st.session_state.chat_history = [ AIMessage(content="Hello. How can I help you?"), ] if "vector_store" not in st.session_state: st.session_state.vector_store = get_vectorstore_from_url(website_url) user_query = st.chat_input("Type your message here...") if user_query is not None and user_query != "": response = get_response(user_query) # input chat st.session_state.chat_history.append(HumanMessage(content=user_query)) # output chat st.session_state.chat_history.append(AIMessage(content=response)) # conversation for message in st.session_state.chat_history: if isinstance(message, AIMessage): with st.chat_message("AI",avatar='asset/alien_008.jpg'): st.write(message.content) elif isinstance(message, HumanMessage): with st.chat_message("Human",avatar='asset/human.jpg'): st.write(message.content)