Spaces:
Running
Running
File size: 3,037 Bytes
6943317 b624537 6943317 1c7b251 d1c9a82 6943317 1c7b251 b624537 1c7b251 c4a75a2 1c7b251 6943317 c4a75a2 6943317 b624537 6943317 1c7b251 6943317 0c2b606 6943317 1c7b251 6943317 cb9f607 6943317 b624537 6943317 b624537 6943317 1c7b251 b624537 1c7b251 6943317 1c7b251 b624537 6943317 b624537 6943317 b624537 6943317 1c7b251 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 |
import streamlit as st
import os
from langchain_huggingface import HuggingFaceEndpoint, ChatHuggingFace
from langchain_core.messages import HumanMessage, SystemMessage
# Set Hugging Face tokens
hf = os.getenv('Data_science')
os.environ['HUGGINGFACEHUB_API_TOKEN'] = hf
os.environ['HF_TOKEN'] = hf
# --- Page Configuration ---
st.set_page_config(page_title="ML Mentor Chat", layout="centered")
# --- Inject Home Page CSS Styling ---
st.markdown("""
<style>
.main {
background: linear-gradient(135deg, #430089 0%, #82ffa1 100%);
padding: 2rem;
font-family: 'Segoe UI', sans-serif;
}
.stButton>button {
background: #ffffff10;
border: 2px solid #ffffff50;
color: white;
font-size: 18px;
font-weight: 600;
padding: 0.8em 1.2em;
border-radius: 12px;
width: 100%;
transition: 0.3s ease;
box-shadow: 0 4px 10px rgba(0, 0, 0, 0.15);
}
.stButton>button:hover {
background: #ffffff30;
border-color: #fff;
color: #ffffff;
}
h1, h3, p, label {
color: #ffffff;
text-align: center;
}
hr {
border: 1px solid #ffffff50;
margin: 2em 0;
}
.css-1aumxhk {
color: white; /* Streamlit input text color */
}
</style>
""", unsafe_allow_html=True)
# --- Page Title ---
st.title("🤖 Machine Learning Mentor Chat")
# --- Sidebar: Experience Level with same style ---
st.sidebar.title("Mentor Preferences")
experience_label = st.sidebar.selectbox(
"Select your experience level:", ["Beginner", "Intermediate", "Experienced"]
)
# --- Initialize Chat Model ---
ml_model_skeleton = HuggingFaceEndpoint(
repo_id='Qwen/Qwen3-14B',
provider='nebius',
temperature=0.7,
max_new_tokens=50,
task='conversational'
)
ml_mentor = ChatHuggingFace(
llm=ml_model_skeleton,
repo_id='Qwen/Qwen3-14B',
provider='nebius',
temperature=0.7,
max_new_tokens=50,
task='conversational'
)
PAGE_KEY = "ml_chat_history"
# --- Session State Initialization ---
if PAGE_KEY not in st.session_state:
st.session_state[PAGE_KEY] = []
# --- Chat Input Form ---
with st.form(key="chat_form"):
user_input = st.text_input("Ask your question:")
submit = st.form_submit_button("Send")
# --- Chat Logic ---
if submit and user_input:
system_prompt = (
f"You are a machine learning mentor with {experience_label.lower()} experience. "
f"Answer only machine learning questions in a friendly tone and within 150 words. "
f"Politely inform if the question is out of scope."
)
messages = [SystemMessage(content=system_prompt), HumanMessage(content=user_input)]
result = ml_mentor.invoke(messages)
st.session_state[PAGE_KEY].append((user_input, result.content))
# --- Chat History Display ---
st.subheader("🗨️ Chat History")
for user, bot in st.session_state[PAGE_KEY]:
st.markdown(f"**You:** {user}")
st.markdown(f"**Mentor:** {bot}")
st.markdown("---")
|