import streamlit as st from transformers import AutoModelForCausalLM, AutoTokenizer import torch # Initialize the text generation pipeline @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) # Set the title of the app st.title("Chat with DeepSeek-R1-Distill-Qwen-1.5B") # Initialize session state to store chat history if "messages" not in st.session_state: st.session_state.messages = [] # Display chat messages from history for message in st.session_state.messages: with st.chat_message(message["role"]): st.markdown(message["content"]) # User input if prompt := st.chat_input("You:"): # Display user message in chat message container st.chat_message("user").markdown(prompt) # Append user message to chat history st.session_state.messages.append({"role": "user", "content": prompt}) # Generate response response = generate_response(prompt) # Display assistant response in chat message container st.chat_message("assistant").markdown(response) # Append assistant response to chat history st.session_state.messages.append({"role": "assistant", "content": response})