Spaces:
Sleeping
Sleeping
import torch | |
from transformers import GPT2LMHeadModel, GPT2Tokenizer | |
import gradio as gr | |
# Load the fine-tuned model and tokenizer from Hugging Face | |
model_name = "Rehman1603/Travel_fine_tuned_gpt2_model_final" # Replace with your Hugging Face model path | |
model = GPT2LMHeadModel.from_pretrained(model_name) | |
tokenizer = GPT2Tokenizer.from_pretrained(model_name) | |
# Move model to the appropriate device | |
device = torch.device("cuda" if torch.cuda.is_available() else "cpu") | |
model.to(device) | |
# Function to generate responses | |
def generate_response(question, max_length=1024, temperature=0.5, top_k=50, top_p=0.95): | |
input_text = f"Question: {question} Answer:" | |
input_ids = tokenizer.encode(input_text, return_tensors="pt").to(device) | |
# Generate response | |
output = model.generate( | |
input_ids, | |
max_length=max_length, | |
temperature=temperature, | |
#num_return_sequences=1, | |
#no_repeat_ngram_size=2, | |
top_k=top_k, | |
top_p=top_p, | |
do_sample=True, | |
pad_token_id=tokenizer.eos_token_id | |
) | |
# Decode and return the response | |
response = tokenizer.decode(output[0], skip_special_tokens=True) | |
return response.split("Answer:")[-1].strip() | |
# Gradio Interface | |
def chat_interface(question, history): | |
response = generate_response(question) | |
history = history or [] | |
history.append((question, response)) | |
return history, history | |
# Test questions | |
test_questions = [ | |
"Hi", | |
"What is the duration of the Economy Umrah Package?", | |
"Good morning", | |
"What is the distance of hotels from Haram in Package 4?", | |
"What is the price of a 14-night Umrah package with air tickets in Package 1", | |
"What is the price of a 20-night Umrah package without air tickets?" | |
] | |
# Create Gradio interface | |
with gr.Blocks() as demo: | |
chatbot = gr.Chatbot() | |
state = gr.State() | |
with gr.Row(): | |
txt = gr.Textbox(show_label=False, placeholder="Enter your question here") | |
with gr.Row(): | |
submit_btn = gr.Button("Submit") | |
clear_btn = gr.Button("Clear") | |
# Example questions | |
examples = gr.Examples(examples=test_questions, inputs=txt) | |
# Event handling | |
submit_btn.click(chat_interface, [txt, state], [chatbot, state]) | |
clear_btn.click(lambda: None, None, chatbot, queue=False) | |
# Launch the interface | |
demo.launch(debug=True) |