Spaces:
Running
Running
File size: 2,919 Bytes
d1cbe41 89df51d d1cbe41 609eb18 19da248 d1cbe41 91c4568 609eb18 91c4568 609eb18 8c2ca40 609eb18 8c2ca40 609eb18 8c2ca40 609eb18 8c2ca40 609eb18 8c2ca40 609eb18 8c2ca40 609eb18 8c2ca40 609eb18 91c4568 d1cbe41 609eb18 d1cbe41 609eb18 d1cbe41 609eb18 91c4568 d1cbe41 004eb6e d1cbe41 91c4568 d1cbe41 004eb6e d1cbe41 89df51d d1cbe41 609eb18 d1cbe41 91c4568 609eb18 91c4568 d1cbe41 91c4568 89df51d d1cbe41 609eb18 d1cbe41 89df51d d1cbe41 91c4568 |
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 |
import streamlit as st
import os
from langchain_huggingface import HuggingFaceEndpoint, ChatHuggingFace
from langchain_core.messages import HumanMessage, SystemMessage
# Load Hugging Face token from environment
hf = os.getenv('Data_science')
os.environ['HUGGINGFACEHUB_API_TOKEN'] = hf
os.environ['HF_TOKEN'] = hf
# --- Page Config ---
st.set_page_config(page_title="GenAI Mentor Chat", layout="centered")
# --- Custom CSS Styling ---
st.markdown("""
<style>
.main {
background: linear-gradient(135deg, #3e32a8 0%, #80ffe0 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;
}
</style>
""", unsafe_allow_html=True)
# --- Title ---
st.title("🤖 GenAI Mentor Chat")
# --- Sidebar for Experience ---
st.sidebar.title("Mentor Preferences")
experience_label = st.sidebar.selectbox("Select your experience level:", ["Beginner", "Intermediate", "Expert"])
# --- Model Initialization ---
genai_skeleton = HuggingFaceEndpoint(
repo_id='google/gemma-2-9b-it',
provider='nebius',
temperature=0.7,
max_new_tokens=50,
task='conversational'
)
genai_chat = ChatHuggingFace(
llm=genai_skeleton,
repo_id='google/gemma-2-9b-it',
provider='nebius',
temperature=0.7,
max_new_tokens=50,
task='conversational'
)
PAGE_KEY = "genai_chat_history"
# --- Session State Initialization ---
if PAGE_KEY not in st.session_state:
st.session_state[PAGE_KEY] = []
# --- Chat Input ---
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"Act as a Generative AI mentor with {experience_label.lower()} expertise. "
f"Explain concepts in a friendly tone, within 150 words. "
f"If the question is not related to Generative AI, politely say it's out of scope."
)
messages = [SystemMessage(content=system_prompt), HumanMessage(content=user_input)]
result = genai_chat.invoke(messages)
st.session_state[PAGE_KEY].append((user_input, result.content))
# --- Display Chat History ---
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("---")
|