import streamlit as st from dotenv import load_dotenv from transformers import pipeline from user_utils import * # Load environment variables 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'] =[] # Initialize the question-answering pipeline with a pre-trained model def main(): load_dotenv() st.header("Automatic Ticket Classification Tool") #Capture user input st.write("We are here to help you, please ask your question:") user_input = st.text_input("🔍") if user_input: #creating embeddings instance... embeddings=create_embeddings() #Function to pull index data from Pinecone import os #We are fetching the previously stored Pinecome environment variable key in "Load_Data_Store.py" file index=pull_from_pinecone("pcsk_4etRhj_Lc37c2KWzUgdTSPaShQKgxeZvC331qJcVWjK9LfpDARwkG23kXZoN5ZCHVLyYWZ","us-east-1","ticket",embeddings) #This function will help us in fetching the top relevent documents from our vector store - Pinecone Index relavant_docs=get_similar_docs(index,user_input) #This will return the fine tuned response by LLM response=get_answer(relavant_docs,user_input) st.write(response) button=st.button("submit ticket?") if button: embeddings = create_embeddings() query_result = embeddings.embed_query(user_input) #loading the ML model, so that we can use it to predit the class to which this compliant belongs to... department_value = predict(query_result) st.write("your ticket has been sumbitted to : "+department_value) #Appending the tickets to below list, so that we can view/use them later on... if department_value=="HR": st.session_state['HR_tickets'].append(user_input) elif department_value=="IT": st.session_state['IT_tickets'].append(user_input) else: st.session_state['Transport_tickets'].append(user_input) # Ensure proper script execution entry point if __name__ == "__main__": main()