Spaces:
Sleeping
Sleeping
File size: 5,042 Bytes
30396cd 6d30494 788ba6c 6d30494 788ba6c 1a04e30 788ba6c 6d30494 788ba6c 1a04e30 788ba6c 6d30494 1a04e30 6d30494 1a04e30 6d30494 788ba6c 1a04e30 6d30494 788ba6c 1a04e30 6d30494 1a04e30 6d30494 1a04e30 6d30494 1a04e30 6d30494 788ba6c 6d30494 |
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 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 |
'''
This is the main file of the app. This file contains the code for the streamlit app.
'''
import streamlit as st
from streamlit_chat import message
from job_description_generator import predict_job_description, get_job_description_conversation
from job_description_fixer import fix_job_description, get_job_description_fixer_conversation
conversation = get_job_description_conversation()
if 'generator_conversation' not in st.session_state:
st.session_state['generator_conversation'] = conversation
fixer_conversation = get_job_description_fixer_conversation()
if 'fixer_conversation' not in st.session_state:
st.session_state['fixer_conversation'] = fixer_conversation
def message_writer(input_text, response):
'''
Writes the messages to the chat window.
'''
messages = []
current_message = ""
current_is_user = True
for historical_message in response['history']:
if "human" in historical_message.lower():
messages.append([current_message, current_is_user])
current_message = historical_message.replace("Human:", "")
current_is_user = True
elif "JobGPT" in historical_message:
messages.append([current_message, current_is_user])
current_message = historical_message.replace("JobGPT:", "")
current_is_user = False
else:
current_message = current_message + "\n" + historical_message
messages.append([current_message, current_is_user])
for message_to_send, is_user in messages:
if message_to_send.strip() != "":
message(message_to_send, is_user=is_user)
message(input_text, is_user=True)
message(response['prediction'], is_user=False)
return 0
def setup():
"""
Streamlit related setup. This has to be run for each page.
"""
hide_streamlit_style = """
<style>
#MainMenu {visibility: hidden;}
footer {visibility: hidden;}
</style>
"""
st.markdown(hide_streamlit_style, unsafe_allow_html=True)
def main():
'''
Main function of the app.
'''
setup()
#create a sidebar where you can select your page
st.sidebar.title("JobGPT")
st.sidebar.markdown("---")
#selector
page = st.sidebar.selectbox(
"Select a page", ["Home", "Job Description Generator", "Job Description Fixer"])
if page == "Home":
st.title("JobGPT")
st.write("Select a page in the sidebar to get started.")
st.write("### Available options:")
st.write("1. Job Description Generator")
st.write("2. Job Description Fixer")
st.markdown("---")
elif page == "Job Description Generator":
container_one = st.container()
container_one.title("A Job Description Generating Chatbot")
container_one.markdown(
"JobGPT is a chatbot that generates job descriptions. \
This is built just for demo purpose."
)
input_text = container_one.text_input(
"Prompt",
"Hi, can you please help me generate an unbiased job description?")
button = container_one.button("Send")
st.sidebar.markdown("---")
st.sidebar.markdown("Click on `new chat` to start a new chat. \
History will be cleared and you'll lose access to current chat."
)
clear_session = st.sidebar.button("New Chat")
if clear_session:
st.session_state['generator_conversation'] = conversation
container_one.markdown("---")
initial_message = "Hello, how can I help you?"
message(initial_message)
if button:
response = predict_job_description(input_text,
st.session_state['generator_conversation'])
message_writer(input_text, response)
elif page == "Job Description Fixer":
container_two = st.container()
container_two.title("JobGPT: A Job Description Fixing Chatbot")
container_two.markdown(
"JobGPT is a chatbot that fixes job descriptions. This is built just for demo purpose."
)
input_text = container_two.text_area(
"Prompt",
"Hi, can you please help me fix my job description? It's biased.")
button = container_two.button("Send")
st.sidebar.markdown("---")
st.sidebar.markdown("Click on `new chat` to start a new chat. \
History will be cleared and you'll lose access to current chat."
)
clear_session = st.sidebar.button("New Chat")
if clear_session:
st.session_state['fixer_conversation'] = fixer_conversation
container_two.markdown("---")
initial_message = "Hello, how can I help you?"
message(initial_message)
if button:
response = fix_job_description(
input_text, st.session_state['fixer_conversation'])
message_writer(input_text, response)
main()
|