CoolFace
Apppublic

MoiMoi-01/DeepSeek-R1-Chatbot

sourceHugging Faceupdated 2y agoView on Hugging Face
0likes
old2.py127 linesDownload Raw Back to root
1# app.py2import streamlit as st3from huggingface_hub import InferenceClient4from datetime import datetime5 6# Configure page7st.set_page_config(8    page_title="DeepSeek Chatbot - ruslanmv.com",9    page_icon="๐Ÿค–",10    layout="centered",11    initial_sidebar_state="expanded"12)13 14# Initialize session state15if "messages" not in st.session_state:16    st.session_state.messages = []17 18# Sidebar controls19with st.sidebar:20    st.title("๐Ÿค– Chatbot Settings")21    st.markdown("Created by [ruslanmv.com](https://ruslanmv.com/)")22    23    # Model selection24    selected_model = st.selectbox(25        "Choose Model",26        options=[27            "deepseek-ai/DeepSeek-R1-Distill-Qwen-32B",28            "deepseek-ai/DeepSeek-R1",29            "deepseek-ai/DeepSeek-R1-Zero"30        ],31        index=032    )33    34    # System message35    system_message = st.text_area(36        "System Message",37        value="You are a friendly Chatbot created by ruslanmv.com",38        height=10039    )40    41    # Generation parameters42    max_new_tokens = st.slider(43        "Max new tokens",44        min_value=1,45        max_value=4000,46        value=512,47        step=5048    )49    50    temperature = st.slider(51        "Temperature",52        min_value=0.1,53        max_value=4.0,54        value=1.0,55        step=0.156    )57    58    top_p = st.slider(59        "Top-p (nucleus sampling)",60        min_value=0.1,61        max_value=1.0,62        value=0.9,63        step=0.164    )65    66    # Optional HF Token67    hf_token = st.text_input(68        "HuggingFace Token (optional)",69        type="password",70        help="Enter your HuggingFace token if required for model access"71    )72 73# Main chat interface74st.title("๐Ÿ’ฌ DeepSeek Chatbot")75st.caption("๐Ÿš€ A conversational AI powered by DeepSeek models")76 77# Display chat messages78for message in st.session_state.messages:79    with st.chat_message(message["role"]):80        st.markdown(message["content"])81        if "timestamp" in message:82            st.caption(f"_{message['timestamp']}_")83 84# Chat input and processing85if prompt := st.chat_input("Type your message..."):86    # Add user message to history87    st.session_state.messages.append({88        "role": "user",89        "content": prompt,90        "timestamp": datetime.now().strftime("%H:%M:%S")91    })92    93    # Display user message94    with st.chat_message("user"):95        st.markdown(prompt)96        st.caption(f"_{st.session_state.messages[-1]['timestamp']}_")97 98    # Create full prompt with system message99    full_prompt = f"{system_message}\n\nUser: {prompt}\nAssistant:"100    101    # Create client and generate response102    client = InferenceClient(model=selected_model, token=hf_token)103    104    # Display assistant response105    with st.chat_message("assistant"):106        response = st.write_stream(107            client.text_generation(108                full_prompt,109                max_new_tokens=max_new_tokens,110                temperature=temperature,111                top_p=top_p,112                stream=True113            )114        )115        timestamp = datetime.now().strftime("%H:%M:%S")116        st.caption(f"_{timestamp}_")117 118    # Add assistant response to history119    st.session_state.messages.append({120        "role": "assistant",121        "content": response,122        "timestamp": timestamp123    })124 125# Optional debug information126# st.sidebar.markdown("---")127# st.sidebar.json(st.session_state.messages)