| import gradio as gr | |
| from transformers import GPT2LMHeadModel, GPT2Tokenizer | |
| import torch | |
| model_name = "mrm8488/gpt2-finetuned-jhegarty-texts" | |
| tokenizer = GPT2Tokenizer.from_pretrained(model_name) | |
| model = GPT2LMHeadModel.from_pretrained(model_name) | |
| tokenizer.pad_token = tokenizer.eos_token | |
| model.config.pad_token_id = model.config.eos_token_id | |
| def chat_with_gpt2(user_input): | |
| prompt = f"You are a helpful travel assistant. Answer concisely and informatively. Question: {user_input}\nAnswer:" | |
| inputs = tokenizer.encode(prompt, return_tensors="pt", truncation=True, max_length=512) | |
| outputs = model.generate( | |
| inputs, | |
| max_length=250, | |
| num_return_sequences=1, | |
| do_sample=True, | |
| temperature=0.7, | |
| top_k=50, | |
| top_p=0.95, | |
| pad_token_id=tokenizer.eos_token_id | |
| ) | |
| response = tokenizer.decode(outputs[0], skip_special_tokens=True) | |
| return response[len(prompt):].strip() | |
| interface = gr.Interface( | |
| fn=chat_with_gpt2, | |
| inputs=gr.Textbox(lines=3, placeholder="Ask about your trip..."), | |
| outputs="text", | |
| title="Trip Planner Chatbot", | |
| description="Ask anything related to your travel plans!" | |
| ) | |
| interface.launch() | |