import streamlit as st from transformers import AutoModelForCausalLM, AutoTokenizer import torch import os # Imposta la directory di cache locale os.environ["TRANSFORMERS_CACHE"] = "./hf_cache" # Titolo dell'app st.title("🤖 Chatbot DeepSeek con Transformers + Streamlit") # Carica modello e tokenizer @st.cache_resource def load_model(): model_name = "deepseek-ai/DeepSeek-Coder-V2-Lite-Instruct" tokenizer = AutoTokenizer.from_pretrained(model_name) model = AutoModelForCausalLM.from_pretrained(model_name, torch_dtype=torch.float16, device_map="auto") return tokenizer, model tokenizer, model = load_model() # Inizializza la sessione if "chat_history" not in st.session_state: st.session_state.chat_history = [] # Input utente user_input = st.text_input("Scrivi il tuo messaggio:") # Generazione risposta if user_input: st.session_state.chat_history.append(("🧑", user_input)) inputs = tokenizer(user_input, return_tensors="pt").to(model.device) outputs = model.generate(**inputs, max_new_tokens=256, do_sample=True, temperature=0.7) response = tokenizer.decode(outputs[0], skip_special_tokens=True) st.session_state.chat_history.append(("🤖", response)) # Mostra la conversazione for speaker, msg in st.session_state.chat_history: st.markdown(f"**{speaker}**: {msg}")