import streamlit as st import os from langchain_huggingface import HuggingFaceEndpoint, ChatHuggingFace from langchain_core.messages import HumanMessage, SystemMessage # Set environment variables for Hugging Face token hf = os.getenv('HF_TOKEN') os.environ['HUGGINGFACEHUB_API_TOKEN'] = hf os.environ['HF_TOKEN'] = hf # Page config st.set_page_config(page_title="Deep Learning Mentor Chat", layout="centered") st.markdown(""" """, unsafe_allow_html=True) st.markdown("

🤖 Deep Learning Mentor Chat

", unsafe_allow_html=True) st.markdown("

Learn Deep Learning with personalized AI mentorship

", unsafe_allow_html=True) # Sidebar for experience level st.sidebar.title("🎓 Select Your Level") exp = st.sidebar.selectbox("Experience Level", ["Beginner", "Intermediate", "Expert"]) # Load Deep Learning model mentor_llm = HuggingFaceEndpoint( repo_id='Qwen/Qwen3-32B', provider='sambanova', temperature=0.7, max_new_tokens=150, task='conversational' ) deep_mentor = ChatHuggingFace(llm=mentor_llm) # Session key for conversation PAGE_KEY = "deep_learning_chat_history" if PAGE_KEY not in st.session_state: st.session_state[PAGE_KEY] = [] # Chat input form st.markdown("
", unsafe_allow_html=True) with st.form(key="chat_form"): user_input = st.text_input("💬 Ask your deep learning question:") submit = st.form_submit_button("Send") # Handle chat submission if submit and user_input: system_prompt = f"""You are a knowledgeable Deep Learning mentor with {exp} years of practical experience. Your communication style is friendly, supportive, and focused. Please adhere to the following strict instructions: 1. Only respond to queries that are specifically about deep learning programming — this includes related libraries, tools, and frameworks. 2. If a question is outside the scope of deep learning, respond exactly with: "I specialize only in deep learning programming. This appears to be a non-deep learning topic." 3. Do not offer help or advice on non-deep learning subjects. 4. Aim for clarity and practical relevance in your explanations, keeping them beginner-friendly when needed. 5. Reinforce learning through relevant code snippets and applied examples. 6. For more advanced discussions, assume the learner has a working knowledge of deep learning fundamentals.""" messages = [SystemMessage(content=system_prompt), HumanMessage(content=user_input)] result = deep_mentor.invoke(messages) st.session_state[PAGE_KEY].append((user_input, result.content)) # Chat history display with bubble styling if st.session_state[PAGE_KEY]: st.markdown('
', unsafe_allow_html=True) for user, bot in st.session_state[PAGE_KEY]: st.markdown(f'
👤 You: {user}
', unsafe_allow_html=True) st.markdown(f'
🧑‍🏫 Mentor: {bot}
', unsafe_allow_html=True) st.markdown('
', unsafe_allow_html=True)