import streamlit as st import json # Page config st.set_page_config(page_title="Chatbot Test", layout="wide") # Initialize chat history if "messages" not in st.session_state: st.session_state.messages = [] # Load knowledge base def load_knowledge_base(): try: with open("knowledge_base.json", "r", encoding="utf-8") as f: return json.load(f) except Exception as e: st.error(f"Error loading knowledge base: {str(e)}") return {} kb = load_knowledge_base() # Main UI st.title("Portfolio Chat Test") # Chat interface for message in st.session_state.messages: with st.chat_message(message["role"]): st.write(message["content"]) # Chat input if prompt := st.chat_input("Ask me anything..."): # Add user message st.session_state.messages.append({"role": "user", "content": prompt}) # Generate simple response from knowledge base if "projects" in kb and "project" in prompt.lower(): response = "Here are my projects: " + ", ".join(kb["projects"].keys()) elif "skills" in prompt.lower(): response = "I have experience in Python, ML, and Data Analysis." else: response = "I understand you're asking about: " + prompt # Add assistant response with st.chat_message("assistant"): st.write(response) st.session_state.messages.append({"role": "assistant", "content": response}) # Clear chat button if st.sidebar.button("Clear Chat"): st.session_state.messages = [] st.rerun()