|
import streamlit as st |
|
import utils.user_utils as uu |
|
|
|
if 'HR_tickets' not in st.session_state: |
|
st.session_state['HR_tickets'] =[] |
|
if 'IT_tickets' not in st.session_state: |
|
st.session_state['IT_tickets'] =[] |
|
if 'Transport_tickets' not in st.session_state: |
|
st.session_state['Transport_tickets'] =[] |
|
if 'PINECONE_API_KEY' not in st.session_state: |
|
st.session_state['PINECONE_API_KEY'] = '' |
|
|
|
def main(): |
|
st.header("Automatic Ticket Classification Tool") |
|
st.write("We are here to help you. Please ask a question") |
|
user_input = st.text_input("π") |
|
|
|
st.sidebar.title("πποΈ") |
|
st.session_state['PINECONE_API_KEY' ]= st.sidebar.text_input("What's your Pinecone API key?",type="password") |
|
|
|
if user_input: |
|
embedder = uu.initiate_embedder() |
|
|
|
index = uu.pull_from_pinecone(st.session_state['PINECONE_API_KEY'], 'tickets', embedder) |
|
|
|
similar_docs = uu.get_similar_docs(index, user_input) |
|
|
|
response = uu.get_answer(similar_docs, user_input) |
|
st.write(response) |
|
|
|
button = st.button("Submit Ticket?") |
|
|
|
if button: |
|
embedded_query = embedder.embed_query(user_input) |
|
department = uu.predict(embedded_query) |
|
st.write("your ticket has been sumbitted to : " + department) |
|
|
|
if department == 'HR': |
|
st.session_state['HR_tickets'].append(user_input) |
|
elif department == 'IT': |
|
st.session_state['IT_tickets'].append(user_input) |
|
else: |
|
st.session_state['Transport_tickets'].append(user_input) |
|
|
|
|
|
if __name__ == '__main__': |
|
main() |