|
import streamlit as st
|
|
from app import rag_query, process_feedback
|
|
|
|
|
|
st.title("RAG Chatbot")
|
|
|
|
|
|
if "messages" not in st.session_state:
|
|
st.session_state.messages = []
|
|
|
|
|
|
for i, message in enumerate(st.session_state.messages):
|
|
with st.chat_message(message["role"]):
|
|
st.markdown(message["content"])
|
|
if message["role"] == "assistant":
|
|
col1, col2 = st.columns([1,15])
|
|
with col1:
|
|
if st.button("π", key=f"thumbs_up_{i}"):
|
|
process_feedback(st.session_state.messages[i-1]["content"], message["content"], True)
|
|
with col2:
|
|
if st.button("π", key=f"thumbs_down_{i}"):
|
|
process_feedback(st.session_state.messages[i-1]["content"], message["content"], False)
|
|
|
|
|
|
|
|
|
|
if prompt := st.chat_input("What is your question?"):
|
|
|
|
st.chat_message("user").markdown(prompt)
|
|
|
|
st.session_state.messages.append({"role": "user", "content": prompt})
|
|
|
|
response = rag_query(prompt)
|
|
|
|
|
|
with st.chat_message("assistant"):
|
|
st.markdown(response)
|
|
|
|
st.session_state.messages.append({"role": "assistant", "content": response})
|
|
|
|
|
|
st.experimental_rerun()
|
|
|
|
|
|
with st.sidebar:
|
|
st.header("Options")
|
|
if st.button("Clear Chat History"):
|
|
st.session_state.messages = []
|
|
st.experimental_rerun() |