Huzaifa367 commited on
Commit
141bf43
·
verified ·
1 Parent(s): bc68b42

Upload 4 files

Browse files
Pages/pages_File-chat.py ADDED
@@ -0,0 +1,74 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ import requests
3
+ import utils
4
+
5
+ # Custom CSS
6
+ with open('styles.css') as f:
7
+ css = f.read()
8
+
9
+ st.markdown(f'<style>{css}</style>', unsafe_allow_html=True)
10
+
11
+ ## LOGO and TITLE
12
+ ## -------------------------------------------------------------------------------------------
13
+ # Show the logo and title side by side
14
+ col1, col2 = st.columns([1, 4])
15
+ with col1:
16
+ st.image("brainbot.png", width=100)
17
+ with col2:
18
+ st.title("File-Chat")
19
+
20
+ question = None
21
+ llm = st.session_state["llm"]
22
+
23
+ if "current_file" in st.session_state:
24
+ current_file = st.session_state['current_file']
25
+ if st.sidebar.button("Upload New File"):
26
+ st.switch_page("BrainBot.py")
27
+ st.subheader("Your file has been uploaded successfully. You can now chat with it.")
28
+ st.success(current_file)
29
+ question = st.chat_input("Type your question here...")
30
+
31
+ else:
32
+ st.warning("Upload a file to begin chat with it.")
33
+ if st.button("Upload File"):
34
+ st.switch_page("BrainBot.py")
35
+
36
+ ## CHAT
37
+ # Clear the file chat history if user has uploaded a new file
38
+ if st.session_state['uploaded_file'] == True:
39
+ st.session_state['file_chat_history'] = []
40
+
41
+ # Display the file chat history
42
+ for message in st.session_state['file_chat_history']:
43
+ with st.chat_message("user"):
44
+ st.write(message["Human"])
45
+ with st.chat_message("ai"):
46
+ st.markdown(utils.format_response(message["AI"]))
47
+
48
+ ## QUESTION - WITH CHAT HISTORY
49
+ ## -------------------------------------------------------------------------------------------
50
+ # Retrieve the answer to the question asked by the user
51
+ if question is not None:
52
+ # Display the question entered by the user in chat
53
+ with st.chat_message("user"):
54
+ st.write(question)
55
+
56
+ resource = "file"
57
+
58
+ try:
59
+ # Send POST request to a FastAPI endpoint to retrieve an answer for the question
60
+ data = {"question": question, "resource": resource}
61
+ FASTAPI_URL = f"http://localhost:8000/answer_with_chat_history/{llm}"
62
+
63
+ with st.spinner("Generating response..."):
64
+ response = requests.post(FASTAPI_URL, json=data)
65
+ # Append the response to the chat history
66
+ st.session_state['file_chat_history'].append({"Human": question, "AI": response.text})
67
+ st.session_state['uploaded_file'] = False
68
+ # Display the AI's response to the question in chat
69
+ with st.chat_message("ai"):
70
+ # Format the response
71
+ formatted_response = utils.format_response(response.text)
72
+ st.markdown(formatted_response)
73
+ except Exception as e:
74
+ st.switch_page("error.py")
Pages/pages_Image-scan.py ADDED
@@ -0,0 +1,67 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ import requests
3
+ import utils
4
+
5
+ # Custom CSS
6
+ with open('styles.css') as f:
7
+ css = f.read()
8
+
9
+ st.markdown(f'<style>{css}</style>', unsafe_allow_html=True)
10
+
11
+ ## LOGO and TITLE
12
+ ## -------------------------------------------------------------------------------------------
13
+ # Show the logo and title side by side
14
+ col1, col2 = st.columns([1, 4])
15
+ with col1:
16
+ st.image("brainbot.png", width=100)
17
+ with col2:
18
+ st.title("Image-Scan")
19
+
20
+ llm = st.session_state["llm"]
21
+
22
+ if "current_image" in st.session_state:
23
+ current_image = st.session_state['current_image']
24
+ if st.sidebar.button("Upload New Image"):
25
+ st.switch_page("BrainBot.py")
26
+ st.subheader("Your image has been uploaded successfully.")
27
+ st.success(current_image)
28
+ else:
29
+ st.warning("Upload an image to interpret it.")
30
+ if st.button("Upload Image"):
31
+ st.switch_page("BrainBot.py")
32
+
33
+ ## CHAT
34
+ # Clear the image chat history if user has uploaded a new image
35
+ if st.session_state['uploaded_image'] == True:
36
+ st.session_state['image_chat_history'] = []
37
+
38
+ # Display the image chat history
39
+ for image in st.session_state['image_chat_history']:
40
+ with st.chat_message("user"):
41
+ st.image(image["path"], caption=current_image)
42
+ with st.chat_message("ai"):
43
+ st.markdown(utils.format_response(image["Description"]))
44
+
45
+ ## IMAGE
46
+ # Display the image uploaded by the user
47
+ if "temp_img_path" in st.session_state and st.session_state['uploaded_image'] == True:
48
+ temp_img_path = st.session_state['temp_img_path']
49
+ with st.chat_message("human"):
50
+ st.image(temp_img_path, width=300, caption=current_image)
51
+
52
+ try:
53
+ # Send POST request to a FastAPI endpoint with temporary image path
54
+ FASTAPI_URL = f"http://localhost:8000/image/{llm}"
55
+ with st.spinner("Interpreting image..."):
56
+ response = requests.post(FASTAPI_URL, json={"image_path": temp_img_path})
57
+ # Append the image and response to the chat history
58
+ st.session_state['image_chat_history'].append({"path": temp_img_path, "Description": response.text})
59
+ st.session_state['uploaded_image'] = False
60
+
61
+ # Display the AI's interpretation of the image in chat
62
+ with st.chat_message("assistant"):
63
+ # Format the response
64
+ formatted_response = utils.format_response(response.text)
65
+ st.markdown(formatted_response)
66
+ except Exception as e:
67
+ st.switch_page("error.py")
Pages/pages_Web-chat.py ADDED
@@ -0,0 +1,72 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ import requests
3
+ import utils
4
+
5
+ # Custom CSS
6
+ with open('styles.css') as f:
7
+ css = f.read()
8
+
9
+ st.markdown(f'<style>{css}</style>', unsafe_allow_html=True)
10
+
11
+ ## LOGO and TITLE
12
+ ## -------------------------------------------------------------------------------------------
13
+ # Show the logo and title side by side
14
+ col1, col2 = st.columns([1, 4])
15
+ with col1:
16
+ st.image("brainbot.png", width=100)
17
+ with col2:
18
+ st.title("Web-Chat")
19
+
20
+ question = None
21
+ llm = st.session_state["llm"]
22
+
23
+ if "current_website" in st.session_state:
24
+ current_website = st.session_state['current_website']
25
+ if st.sidebar.button("Upload New Webpage Link"):
26
+ st.switch_page("BrainBot.py")
27
+ st.subheader("Your website content has been uploaded successfully. You can now chat with it.")
28
+ st.success(current_website)
29
+ question = st.chat_input("Type your question here...")
30
+ else:
31
+ st.warning("Upload a webpage link to begin chat with it.")
32
+ if st.button("Upload Webpage Link"):
33
+ st.switch_page("BrainBot.py")
34
+
35
+ ## CHAT
36
+ # Clear the web chat history if user has uploaded a new webpage link
37
+ if st.session_state['uploaded_link'] == True:
38
+ st.session_state['web_chat_history'] = []
39
+
40
+ # Display the web chat history
41
+ for message in st.session_state['web_chat_history']:
42
+ with st.chat_message("user"):
43
+ st.write(message["Human"])
44
+ with st.chat_message("ai"):
45
+ st.markdown(utils.format_response(message["AI"]))
46
+
47
+ ## QUESTION - WITH CHAT HISTORY
48
+ ## -------------------------------------------------------------------------------------------
49
+ # Retrieve the answer to the question asked by the user
50
+ if question is not None:
51
+ # Display the question entered by the user in chat
52
+ with st.chat_message("user"):
53
+ st.write(question)
54
+
55
+ resource = "web"
56
+
57
+ try:
58
+ # Send POST request to a FastAPI endpoint to retrieve an answer for the question
59
+ data = {"question": question, "resource": resource}
60
+ FASTAPI_URL = f"http://localhost:8000/answer_with_chat_history/{llm}"
61
+ with st.spinner("Generating response..."):
62
+ response = requests.post(FASTAPI_URL, json=data)
63
+ # Append the response to the chat history
64
+ st.session_state['web_chat_history'].append({"Human": question, "AI": response.text})
65
+ st.session_state['uploaded_link'] = False
66
+ # Display the AI's response to the question in chat
67
+ with st.chat_message("ai"):
68
+ # Format the response
69
+ formatted_response = utils.format_response(response.text)
70
+ st.markdown(formatted_response)
71
+ except Exception as e:
72
+ st.switch_page("error.py")
Pages/pages_error.py ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+
3
+ # Custom CSS
4
+ with open('styles.css') as f:
5
+ css = f.read()
6
+
7
+ st.markdown(f'<style>{css}</style>', unsafe_allow_html=True)
8
+
9
+ ## LOGO and TITLE
10
+ ## -------------------------------------------------------------------------------------------
11
+ # Show the logo and title side by side
12
+ col1, col2 = st.columns([1, 4])
13
+ with col1:
14
+ st.image("brainbot.png", width=100)
15
+ with col2:
16
+ st.title("Error")
17
+
18
+ st.error("Oops - Something went wrong! Please try again.")