File size: 1,576 Bytes
24fc72a
 
 
 
 
 
 
 
 
 
3029fc2
24fc72a
 
 
3029fc2
24fc72a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
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)