Spaces:
Build error
Build error
File size: 4,053 Bytes
8705444 909f926 8705444 909f926 8705444 909f926 8705444 909f926 8705444 909f926 8705444 909f926 8705444 909f926 8705444 909f926 8705444 909f926 8705444 909f926 8705444 909f926 8705444 909f926 8705444 909f926 8705444 909f926 8705444 909f926 8705444 909f926 8705444 909f926 8705444 909f926 8705444 |
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 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 |
import sys
sys.path.append("/home/ece/hdd/divyanshu/Bihar")
from model import get_llm, CustomLLM
from langchain import PromptTemplate
from langchain.chains.conversation.prompt import ENTITY_MEMORY_CONVERSATION_TEMPLATE, DEFAULT_TEMPLATE
from langchain.chains.conversation.memory import ConversationEntityMemory
from langchain.chains import ConversationChain
import streamlit as st
st.set_page_config(page_title='Bihar Now & Then', layout='wide')
if "generated" not in st.session_state:
st.session_state["generated"] = []
if "past" not in st.session_state:
st.session_state["past"] = []
if "input" not in st.session_state:
st.session_state["input"] = ""
if "stored_session" not in st.session_state:
st.session_state["stored_session"] = []
def get_text():
input_text = st.text_input("You: ", st.session_state["input"], key="input",
placeholder="Ask me anything related to Bihar ...",
label_visibility='hidden')
return input_text
def new_chat():
"""
Clears session state and starts a new chat.
"""
save = []
for i in range(len(st.session_state['generated'])-1, -1, -1):
save.append("User:" + st.session_state["past"][i])
save.append("Bot:" + st.session_state["generated"][i])
st.session_state["stored_session"].append(save)
st.session_state["generated"] = []
st.session_state["past"] = []
st.session_state["input"] = ""
st.session_state.entity_memory.entity_store = {}
st.session_state.entity_memory.buffer.clear()
# Set up sidebar with various options
with st.sidebar.expander("🛠️ ", expanded=False):
if st.checkbox("Preview memory store"):
with st.expander("Memory-Store", expanded=False):
st.session_state.entity_memory.store
if st.checkbox("Preview memory buffer"):
with st.expander("Bufffer-Store", expanded=False):
st.session_state.entity_memory.buffer
MODEL = st.selectbox(label='Model', options=["databricks/dolly-v2-3b"])
K = st.number_input(' (#)Summary of prompts to consider',
min_value=3, max_value=1000)
st.subheader("Bihar Now Then")
model_name = "t5-large"
pinecone_index = "bert-large-uncased"
llm = "databricks/dolly-v2-3b"
llm_chain, docsearch= get_llm(model_name, pinecone_index, llm)
llm = CustomLLM()
# Create a ConversationEntityMemory object if not already created
if 'entity_memory' not in st.session_state:
st.session_state.entity_memory = ConversationEntityMemory(llm=llm, k=K)
Conversation = ConversationChain(
llm=llm,
prompt=ENTITY_MEMORY_CONVERSATION_TEMPLATE,
memory=st.session_state.entity_memory
)
st.sidebar.button("New Chat", on_click=new_chat, type='primary')
user_input = get_text()
if user_input:
context = docsearch.similarity_search(user_input, k=3, metadata=False)
content = ""
for i in context:
content = content + f"{i.__dict__['page_content']}"
output = Conversation.run(entities=content, input=user_input)
st.session_state.past.append(user_input)
st.session_state.generated.append(output)
# Allow to download as well
download_str = []
with st.expander("Conversation", expanded=True):
for i in range(len(st.session_state['generated'])-1, -1, -1):
st.info(st.session_state["past"][i])
st.success(st.session_state["generated"][i])
download_str.append(st.session_state["past"][i])
download_str.append(st.session_state["generated"][i])
# Can throw error - requires fix
download_str = '\n'.join(download_str)
if download_str:
st.download_button('Download', download_str)
# Display stored conversation sessions in the sidebar
for i, sublist in enumerate(st.session_state.stored_session):
with st.sidebar.expander(label=f"Conversation-Session:{i}"):
st.write(sublist)
# Allow the user to clear all stored conversation sessions
if st.session_state.stored_session:
if st.sidebar.checkbox("Clear-all"):
del st.session_state.stored_session
|