Spaces:
Runtime error
Runtime error
| import streamlit as st | |
| from transformers import AutoTokenizer, AutoModelForCausalLM | |
| # Load tokenizer and model | |
| tokenizer = AutoTokenizer.from_pretrained("distilbert/distilgpt2") | |
| model = AutoModelForCausalLM.from_pretrained("distilbert/distilgpt2") | |
| # Set the pad_token_id if not already set | |
| if tokenizer.pad_token_id is None: | |
| tokenizer.pad_token_id = tokenizer.eos_token_id | |
| # Streamlit app setup | |
| st.title("Friendly Bot") | |
| st.write("Type a message and press Enter to chat with the bot.") | |
| # Initialize conversation history in session state | |
| if "history" not in st.session_state: | |
| st.session_state["history"] = [] | |
| # Function to get the bot response | |
| def get_bot_response(user_input): | |
| # Tokenize input and create an attention mask | |
| inputs = tokenizer(user_input, return_tensors="pt", padding=True, truncation=True) | |
| attention_mask = inputs['attention_mask'] | |
| # Generate response using the attention mask and pad_token_id | |
| outputs = model.generate( | |
| inputs['input_ids'], | |
| attention_mask=attention_mask, | |
| max_new_tokens=150, | |
| pad_token_id=tokenizer.pad_token_id | |
| ) | |
| response = tokenizer.decode(outputs[0], skip_special_tokens=True).strip() | |
| return response | |
| # User input | |
| user_input = st.text_input("You:", "", key="user_input") | |
| # Chat interface | |
| if st.button("Send"): | |
| if user_input: | |
| # Add user message to history | |
| st.session_state.history.append(("User", user_input)) | |
| # Get bot response and add it to history | |
| bot_response = get_bot_response(user_input) | |
| st.session_state.history.append(("Bot", bot_response)) | |
| # Display conversation history | |
| for speaker, message in st.session_state.history: | |
| if speaker == "User": | |
| st.write(f"You: {message}") | |
| else: | |
| st.write(f"Bot: {message}") | |