MAkmalC/AI_Power_distribution_risk_analysis_App_v2
0
1import streamlit as st2from rag.document_loader import load_pdf_documents3from rag.vector_store import build_vector_store4from rag.query_engine import build_rag_chain5 6st.set_page_config(page_title="PRIS – IEEE Risk Intelligence", layout="wide")7 8st.title("⚡ PRIS – Power Risk Intelligence System")9 10@st.cache_resource11def initialize_rag():12 docs = load_pdf_documents("knowledge_base/standards/C57.91-1995.pdf")13 vector_store = build_vector_store(docs)14 rag_chain = build_rag_chain(vector_store)15 return rag_chain16 17rag = initialize_rag()18 19user_query = st.text_input("Ask a question based on IEEE standards:")20 21if user_query:22 response = rag(user_query)23 st.subheader("🤖 AI Assistant (IEEE-aware)")24 25 if not st.session_state.get("kb_loaded", False):26 st.warning("Upload IEEE PDFs and build the knowledge base first.")27 else:28 # Persistent input29 user_query = st.text_input(30 "Enter your question",31 key="user_query",32 placeholder="e.g. What is the IEEE C57.91 hot-spot temperature limit?",33 )34 35 # Output placeholder (ALWAYS visible)36 response_container = st.empty()37 38 if user_query:39 with st.spinner("Thinking..."):40 try:41 answer = st.session_state.rag_engine.ask(user_query)42 response_container.markdown("### ✅ Answer")43 response_container.write(answer)44 except Exception as e:45 response_container.error(f"Error: {e}")