Spaces:
Running
Running
File size: 2,844 Bytes
cfb8f08 1ae40b2 cfb8f08 79d5f48 cfb8f08 48b92af 1ae40b2 48b92af 1ae40b2 48b92af cfb8f08 1ae40b2 cfb8f08 1ae40b2 cfb8f08 1ae40b2 b0969a5 cfb8f08 9bce7b2 cfb8f08 1ae40b2 b0969a5 cfb8f08 1ae40b2 cfb8f08 1ae40b2 cfb8f08 1ae40b2 cfb8f08 1ae40b2 cfb8f08 48b92af 1ae40b2 48b92af cfb8f08 1ae40b2 cfb8f08 1ae40b2 cfb8f08 1ae40b2 cfb8f08 48b92af |
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 |
import streamlit as st
import os
from langchain_huggingface import HuggingFaceEndpoint, ChatHuggingFace
from langchain_core.messages import HumanMessage, SystemMessage
hf = os.getenv('Data_science')
os.environ['HUGGINGFACEHUB_API_TOKEN'] = hf
os.environ['HF_TOKEN'] = hf
# Page config
st.set_page_config(page_title="Python Mentor Chat", layout="centered")
# Inject home page CSS style
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;
}
</style>
""", unsafe_allow_html=True)
# Title
st.title("π Python Mentor Chat")
# Sidebar
st.sidebar.title("Mentor Preferences")
experience_label = st.sidebar.selectbox(
"Select your experience level:", ["Beginner", "Intermediate", "Experienced"]
)
# Initialize model
deep_seek_skeleton = HuggingFaceEndpoint(
repo_id='mistralai/Mistral-7B-Instruct-v0.3',
provider='novita',
temperature=0.7,
max_new_tokens=50,
task='conversational'
)
deep_seek = ChatHuggingFace(
llm=deep_seek_skeleton,
repo_id='mistralai/Mistral-7B-Instruct-v0.3',
provider='novita',
temperature=0.7,
max_new_tokens=50,
task='conversational'
)
PAGE_KEY = "python_chat_history"
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"Act as a python mentor with {experience_label.lower()} experience. "
f"Teach in a friendly manner and keep answers within 150 words. "
f"If a question is not about python, politely mention it's out of scope."
)
messages = [SystemMessage(content=system_prompt), HumanMessage(content=user_input)]
result = deep_seek.invoke(messages)
st.session_state[PAGE_KEY].append((user_input, result.content))
# 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("---")
|