| import streamlit as st |
| from models import demo |
|
|
| |
| st.set_page_config( |
| page_title="DeepSeek Chatbot", |
| page_icon="🤖", |
| layout="wide" |
| ) |
|
|
| |
| st.title("DeepSeek Chatbot") |
| st.markdown(""" |
| Created by [ruslanmv.com](https://ruslanmv.com/) |
| This is a demo of different DeepSeek models. Select a model, type your message, and click "Submit". |
| You can also adjust optional parameters like system message, max new tokens, temperature, and top-p. |
| """) |
|
|
| |
| with st.sidebar: |
| st.header("Options") |
| model_choice = st.radio( |
| "Choose a Model", |
| options=["DeepSeek-R1-Distill-Qwen-32B", "DeepSeek-R1", "DeepSeek-R1-Zero"], |
| index=1 |
| ) |
| |
| with st.expander("Optional Parameters", expanded=False): |
| system_message = st.text_area( |
| "System Message", |
| value="You are a friendly Chatbot created by ruslanmv.com", |
| height=100 |
| ) |
| max_new_tokens = st.slider( |
| "Max New Tokens", |
| min_value=1, |
| max_value=4000, |
| value=200 |
| ) |
| temperature = st.slider( |
| "Temperature", |
| min_value=0.10, |
| max_value=4.00, |
| value=0.70 |
| ) |
| top_p = st.slider( |
| "Top-p (nucleus sampling)", |
| min_value=0.10, |
| max_value=1.00, |
| value=0.90 |
| ) |
|
|
| |
| def chatbot(input_text, history, model_choice, system_message, max_new_tokens, temperature, top_p): |
| |
| payload = { |
| "messages": [{"role": "user", "content": input_text}], |
| "system": system_message, |
| "max_tokens": max_new_tokens, |
| "temperature": temperature, |
| "top_p": top_p |
| } |
| |
| |
| try: |
| response = demo(payload) |
| if isinstance(response, dict) and "choices" in response: |
| assistant_response = response["choices"][0]["message"]["content"] |
| else: |
| assistant_response = "Unexpected model response format." |
| except Exception as e: |
| assistant_response = f"Error: {str(e)}" |
| |
| |
| history.append((input_text, assistant_response)) |
| return history |
|
|
| |
| if "chat_history" not in st.session_state: |
| st.session_state.chat_history = [] |
|
|
| |
| st.header("Chat with DeepSeek") |
|
|
| |
| for user_msg, assistant_msg in st.session_state.chat_history: |
| with st.chat_message("user"): |
| st.write(user_msg) |
| with st.chat_message("assistant"): |
| st.write(assistant_msg) |
|
|
| |
| input_text = st.chat_input("Type your message here...") |
|
|
| |
| if input_text: |
| |
| st.session_state.chat_history = chatbot( |
| input_text, |
| st.session_state.chat_history, |
| model_choice, |
| system_message, |
| max_new_tokens, |
| temperature, |
| top_p |
| ) |
| |
| |
| st.rerun() |