import streamlit as st from streamlit_chat import message from transformers import AutoModelForCausalLM, AutoTokenizer import random # Title and UI Customization st.set_page_config(page_title="AI Chatbot", page_icon="🤖", layout="wide") st.markdown( """ """, unsafe_allow_html=True, ) # Load Hugging Face Model def load_model(): model_name = "gpt2" # Replace with your preferred Hugging Face model tokenizer = AutoTokenizer.from_pretrained(model_name) model = AutoModelForCausalLM.from_pretrained(model_name) return tokenizer, model tokenizer, model = load_model() # Store Chat History if "chat_history" not in st.session_state: st.session_state.chat_history = [] # User Interface def chatbot_ui(): st.markdown( """

🚀 AI Chatbot

Ask me anything, and I'll do my best to help you!

""", unsafe_allow_html=True, ) user_input = st.text_input("Type your question:", "") if st.button("Send") and user_input: generate_response(user_input) # Display Chat History for i, chat in enumerate(st.session_state.chat_history): if chat['role'] == 'user': message(chat['content'], is_user=True, key=f'user_{i}') else: message(chat['content'], key=f'bot_{i}') # Generate Response def generate_response(user_input): inputs = tokenizer.encode(user_input + tokenizer.eos_token, return_tensors="pt") outputs = model.generate(inputs, max_length=200, num_return_sequences=1, do_sample=True, temperature=0.7) bot_reply = tokenizer.decode(outputs[0], skip_special_tokens=True) # Update Chat History st.session_state.chat_history.append({"role": "user", "content": user_input}) st.session_state.chat_history.append({"role": "bot", "content": bot_reply}) chatbot_ui()