Spaces:
Running
Running
import streamlit as st | |
from langchain_core.messages import AIMessage, HumanMessage | |
from langchain_community.document_loaders import WebBaseLoader | |
def get_response(user_input): | |
return "I dont know" | |
def get_vector_store_from_url(url): | |
loader = WebBaseLoader(url) | |
documents = loader.load() | |
return documents | |
# app config | |
st.set_page_config(page_title= "Chat with Websites", page_icon="🤖") | |
st.title("Chat with Websites") | |
if "chat_history" not in st.session_state: | |
st.session_state.chat_history = [ | |
AIMessage(content = "Hello, I am a bot. How can I help you"), | |
] | |
#sidebar | |
with st.sidebar: | |
st.header("Settings") | |
website_url = st.text_input("Website URL") | |
openai_apikey = st.text_input("Enter your OpenAI API key") | |
if (website_url is None or website_url == "") or (openai_apikey is None or openai_apikey == ""): | |
st.info("Please ensure if website URL and Open AI api key are entered") | |
else: | |
documents = get_vector_store_from_url(website_url) | |
with st.sidebar: | |
st.write(documents) | |
#user_input | |
user_query = st.chat_input("Type your message here...") | |
if user_query is not None and user_query !="": | |
response = get_response(user_query) | |
st.session_state.chat_history.append(HumanMessage(content=user_query)) | |
st.session_state.chat_history.append(AIMessage(content=response)) | |
#conversation | |
for message in st.session_state.chat_history: | |
if isinstance(message, AIMessage): # checking if the messsage is the instance of an AI message | |
with st.chat_message("AI"): | |
st.write(message.content) | |
elif isinstance(message, HumanMessage): # checking if the messsage is the instance of a Human | |
with st.chat_message("Human"): | |
st.write(message.content) | |