zenith04's picture
Upload 75 files
6bc88c9 verified
# --------------------------------------- CHATBOT------------------------------------------------
import streamlit as st
def cache_clear(x):
if st.sidebar.button("Reset Chat History",use_container_width=True):
x.clear()
#from recommendationSystem.chatbot.client_module.api import ask_question
from recommendationSystem.chatbot.server_modules.llm import get_llm_chain
from recommendationSystem.chatbot.server_modules.load_vector_store import use_vectorstore
from recommendationSystem.chatbot.server_modules.query_handler import query_chain
def chatbot():
vectorstore = use_vectorstore()
chain = get_llm_chain(vectorstore)
url = "https://raw.githubusercontent.com/Zenith40/Recommendation-system/refs/heads/main/data/anime_data_7490.txt"
if "messages" not in st.session_state:
st.session_state.messages = []
with st.sidebar:
st.title("πŸ₯ RARE AT YOUR SERVICE ")
st.write("RAG-based Anime Recommendation Engine")
# Input and response
user_input = st.chat_input(placeholder="Ask Anything")
cache_clear(st.session_state.messages)
if user_input:
#response = ask_question(user_input)
#if response.status_code == 200:
response=query_chain(chain,user_input=user_input)
#data = response.json()
answer = response["response"]
#sources = response.get("sources",[])
#st.chat_message("assistant").markdown(answer)
st.session_state.messages.insert(0,{"role": "assistant", "content": answer})
st.session_state.messages.insert(0,{"role": "user", "content": user_input})
st.markdown(f"πŸ“„ Source : [Anime_Data.txt](%s)" %url)
#else:
#st.error(f"Error: {response.text}")
# Render existing chat history
for msg in st.session_state.messages:
st.chat_message(msg["role"]).markdown(msg["content"])
# History Downloader
def render_history_download():
if st.session_state.get("message"):
chat_text="\n\n".join([f"{m['role'].upper()}: {m['content']}" for m in st.session_state.messages])
st.download_button("Download Chat History",chat_text,file_name="chat_history.txt",mime="text/plain")