File size: 1,573 Bytes
7f8ded9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
858592d
 
7f8ded9
 
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
44
45
import streamlit as st
import logging
from utils import MEMORY, DocumentLoader, check_password
from chat import config_noretrieval_chain
from streamlit.external.langchain import StreamlitCallbackHandler

logging.basicConfig(encoding="utf-8", level=logging.INFO)
LOGGER = logging.getLogger()

def main_chat_ui():
    use_temperature = st.sidebar.slider(
        'Temperature 🦄',
        0.0, 1.0, (0.1))
    use_ddg_search = st.checkbox("Search on DuckDuckGO🦆", value=False)
    
    CONV_CHAIN = config_noretrieval_chain(
        use_temperature=use_temperature,
        use_zeroshoot=use_ddg_search
    )
    if st.sidebar.button("Clear History🦭"):
        MEMORY.chat_memory.clear()
    if len(MEMORY.chat_memory.messages) == 0:
        st.chat_message("assistant").markdown("Ask me something🤖")
    
    avatars = {"human": "user", "ai": "assistant"}
    if user_query := st.chat_input(placeholder="Say something🐻"):
        st.chat_message("user").write(user_query)
        container = st.empty()
        stream_handler = StreamlitCallbackHandler(container)
        with st.chat_message("assistant"):
            if use_ddg_search:
                response = CONV_CHAIN.invoke(
                    {"input": user_query}, {"callbacks": [stream_handler]}
                )
                st.write(response["output"])
            else:
                response = CONV_CHAIN.run(user_query)
                if response:
                    container.markdown(response)


#if not check_password():
#    st.stop()
st.title("👻START CHAT👻")
main_chat_ui()