| import streamlit as st |
| from transformers import AutoModelForCausalLM, AutoTokenizer |
| import torch |
|
|
| |
| @st.cache_resource |
| def load_model(): |
| model_name = "deepseek-ai/DeepSeek-R1" |
| tokenizer = AutoTokenizer.from_pretrained(model_name) |
| model = AutoModelForCausalLM.from_pretrained(model_name, torch_dtype=torch.float32, trust_remote_code=True) |
| return model, tokenizer |
|
|
| model, tokenizer = load_model() |
|
|
| def generate_response(prompt): |
| inputs = tokenizer(prompt, return_tensors="pt") |
| output = model.generate(**inputs, max_length=100) |
| return tokenizer.decode(output[0], skip_special_tokens=True) |
|
|
| |
| st.title("Chat with DeepSeek-R1-Distill-Qwen-1.5B") |
|
|
| |
| if "messages" not in st.session_state: |
| st.session_state.messages = [] |
|
|
| |
| for message in st.session_state.messages: |
| with st.chat_message(message["role"]): |
| st.markdown(message["content"]) |
|
|
| |
| if prompt := st.chat_input("You:"): |
| |
| st.chat_message("user").markdown(prompt) |
| |
| st.session_state.messages.append({"role": "user", "content": prompt}) |
|
|
| |
| response = generate_response(prompt) |
|
|
| |
| st.chat_message("assistant").markdown(response) |
| |
| st.session_state.messages.append({"role": "assistant", "content": response}) |
|
|