import gradio as gr from transformers import GPT2LMHeadModel, GPT2Tokenizer import torch # Load model and tokenizer model = GPT2LMHeadModel.from_pretrained("burman-ai/gpt2-chatbot") tokenizer = GPT2Tokenizer.from_pretrained("burman-ai/gpt2-chatbot") tokenizer.pad_token = tokenizer.eos_token # Chat history list chat_history = [] # Generate response def chatbot(user_input): global chat_history chat_history.append(f"User: {user_input}") prompt = "\n".join(chat_history) + "\nBot:" inputs = tokenizer.encode(prompt, return_tensors="pt", truncation=True, max_length=512) outputs = model.generate(inputs, max_length=512, pad_token_id=tokenizer.eos_token_id, do_sample=True, top_k=50, top_p=0.95) response = tokenizer.decode(outputs[0], skip_special_tokens=True) response = response.split("Bot:")[-1].strip().split("\n")[0] chat_history.append(f"Bot: {response}") return response def clear_chat(): global chat_history chat_history = [] return "Chat cleared." # UI demo = gr.Interface( fn=chatbot, inputs=gr.Textbox(lines=2, placeholder="Type your message here..."), outputs="text", title="GPT-2 Chatbot", description="Chat with a fine-tuned GPT-2 model.", live=True ).queue() demo.launch()