abaliyan commited on
Commit
0fd1cb5
β€’
1 Parent(s): 13d8e3b

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +59 -31
app.py CHANGED
@@ -1,48 +1,76 @@
1
  import streamlit as st
2
  import os
3
- from dotenv import load_dotenv
4
  from utils import *
5
  import uuid
6
 
7
- load_dotenv()
8
 
9
- st.title("Custom Chatbot")
10
 
11
- if 'OPENAI_API_KEY' not in st.session_state:
12
- st.session_state["OPENAI_API_KEY"]=''
13
 
14
- os.environ['HUGGINGFACEHUB_API_TOKEN']=os.environ.get("HUGGINGFACE_TOKEN")
 
 
 
 
 
15
 
16
- st.sidebar.title("πŸ˜ŽπŸ—οΈ")
17
- st.session_state["OPENAI_API_KEY"]=st.sidebar.text_input("Enter your API key?", type="password")
18
- # st.session_state["OPENAI_API_KEY"] = "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"
19
- os.environ["OPENAI_API_KEY"] = st.session_state["OPENAI_API_KEY"]
20
- file = st.sidebar.file_uploader("Upload your file", type="pdf")
21
 
 
22
 
23
- if "unique_id" not in st.session_state:
24
- st.session_state["unique_id"]=''
 
25
 
26
- st.session_state["unique_id"] = uuid.uuid4().hex
27
- id = st.session_state["unique_id"]
28
 
29
- st.subheader("Search Document..")
30
 
31
- query = st.text_area("Enter query here..", key='question')
32
 
33
- submit = st.button("Get Answer")
 
 
 
 
 
 
34
 
35
- if submit:
36
- if file and query:
37
- st.write("lookign for:",query)
38
- directory = f"pdf_files/{id}"
39
- content = save_pdf_to_directory(file,directory)
40
- st.write(content)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
41
 
42
- elif file:
43
- st.error("Enter the query first")
44
- elif query:
45
- st.error("Enter the document first")
46
- else:
47
- st.error("You gotta be kidding me.. I really wish I could read your mind")
48
-
 
 
 
1
  import streamlit as st
2
  import os
 
3
  from utils import *
4
  import uuid
5
 
 
6
 
 
7
 
8
+ def main():
9
+ st.title("Custom Chatbot")
10
 
11
+ if 'OPENAI_API_KEY' not in st.session_state:
12
+ st.session_state["OPENAI_API_KEY"]=''
13
+ if "unique_id" not in st.session_state:
14
+ st.session_state["unique_id"]=''
15
+ if "bot_ready_flag" not in st.session_state:
16
+ st.session_state["bot_ready_flag"]=''
17
 
 
 
 
 
 
18
 
19
+ st.sidebar.title("πŸ˜ŽπŸ—οΈ")
20
 
21
+ st.session_state["OPENAI_API_KEY"]=st.sidebar.text_input("Enter your API key?", type="password")
22
+ os.environ["OPENAI_API_KEY"] = st.session_state["OPENAI_API_KEY"]
23
+
24
 
25
+ st.session_state["unique_id"] = uuid.uuid4().hex
26
+ unique_id = st.session_state["unique_id"]
27
 
28
+ files = st.sidebar.file_uploader("Upload your file", type="pdf",accept_multiple_files=True)
29
 
 
30
 
31
+ push_doc = st.sidebar.button("Push for bot to learn")
32
+ if push_doc:
33
+ st.session_state["bot_ready_flag"] = False
34
+ # create doc out of provided pdf
35
+ docs = create_docs(files,unique_id)
36
+ global tiny_docs
37
+ tiny_docs = split_docs(docs, chunk_size=500, chunk_overlap=40)
38
 
39
+ # creating embeddings
40
+ embedding = get_embeddings()
41
+
42
+ with st.spinner("Wait! ChatBot is Learning βœ‹πŸ»"):
43
+ push_to_pinecone(tiny_docs, embedding)
44
+ st.session_state["bot_ready_flag"] = True
45
+
46
+
47
+
48
+ st.subheader("Search Document..πŸ€–")
49
+
50
+ global query
51
+ query = st.text_area("Enter query here.. πŸ‘‡πŸ»", key='question')
52
+
53
+ submit = st.button("Get Answer")
54
+
55
+ if submit and st.session_state["bot_ready_flag"]==True:
56
+ if query:
57
+ # text embedding
58
+ embedding = get_embeddings()
59
+
60
+ # get similar docs
61
+ with st.spinner("Generating Response"):
62
+ response = get_answer(query, embedding, k=2)
63
+
64
+ st.write(response)
65
+ st.success("How was that?")
66
+
67
 
68
+ else:
69
+ st.error("You gotta be kidding me.. I really wish I could read your mind")
70
+ elif submit:
71
+ st.error("Provide the document first")
72
+
73
+
74
+
75
+ if __name__ == "__main__":
76
+ main()