gavinzli's picture
Remove obsolete router and controller files; update application structure and dependencies
af08824
raw
history blame
1.43 kB
"""Streamlit app example."""
import logging
import uuid
import streamlit as st
from chain import RAGChain
from retriever import DocRetriever
from controllers import mail
logging.basicConfig(
format='%(asctime)s - %(levelname)s - %(funcName)s - %(message)s')
logging.getLogger().setLevel(logging.ERROR)
with st.sidebar:
st.header("Controls")
if st.button("Collect Data"):
result = mail.collect()
with st.chat_message("assistant"):
response_content = st.markdown(result)
if 'chat_id' not in st.session_state:
st.session_state.chat_id = str(uuid.uuid4())
st.session_state.user_id = str(uuid.uuid4())
if "messages" not in st.session_state:
st.session_state.messages = []
for message in st.session_state.messages:
with st.chat_message(message["role"]):
st.markdown(message["content"])
if prompt := st.chat_input("What is up?"):
st.session_state.messages.append({"role": "user", "content": prompt})
with st.chat_message("user"):
st.markdown(prompt)
req = {"query": prompt}
chain = RAGChain(DocRetriever(req=req))
result = chain.invoke({"input": req['query']},
config={"configurable": {"session_id": st.session_state.chat_id}})
with st.chat_message("assistant"):
response_content = st.markdown(result['answer'])
st.session_state.messages.append({"role": "assistant", "content": result['answer']})