File size: 2,426 Bytes
e5d4be3 cb2beda f2522be e5d4be3 cb2beda e5d4be3 f2522be 6c817c3 f2522be cb2beda d603dc2 cb2beda d603dc2 cb2beda d603dc2 ef4ad31 cb2beda |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
import os
import gradio as gr
from transformers import AutoModelForCausalLM, AutoTokenizer, pipeline
from huggingface_hub import login
# Get Hugging Face token securely from environment variables
HF_TOKEN = os.getenv("HF_TOKEN")
# Authenticate with Hugging Face
if HF_TOKEN:
login(HF_TOKEN)
else:
raise ValueError("π¨ Hugging Face token not found! Please add it to Secrets in your Hugging Face Space.")
# Load AI model (Optimized for T4 GPU)
model_name = "TheBloke/Mistral-7B-Instruct-v0.1-AWQ"
tokenizer = AutoTokenizer.from_pretrained(model_name, token=HF_TOKEN)
model = AutoModelForCausalLM.from_pretrained(
model_name, token=HF_TOKEN, device_map="auto", trust_remote_code=True
)
chatbot = pipeline("text-generation", model=model, tokenizer=tokenizer, device=0)
def generate_itinerary(destination, start_date, end_date, traveler_type, companion):
"""Generates an AI-powered travel itinerary based on user preferences"""
prompt = f"""
You are a professional travel assistant. Create a **day-by-day itinerary** for a trip to {destination}.
- π
**Dates**: {start_date} to {end_date}
- π **Traveler Type**: {traveler_type}
- π§³ **Companion**: {companion}
- Provide **3 activities per day**: π
Morning, βοΈ Afternoon, π Night.
- Include **real attractions, famous landmarks, hidden gems, and local experiences**.
- Keep responses **structured, short, and engaging**.
π **Example Format**:
**Day 1**:
- π
**Morning**: Visit [Famous Landmark] in {destination}
- βοΈ **Afternoon**: Try [Local Food] at [Best Restaurant]
- π **Night**: Experience [Cultural/Nightlife Activity]
"""
response = chatbot(prompt, max_length=250, do_sample=True, temperature=0.6, top_p=0.85)
return response[0]['generated_text']
# Creating a simple user interface
interface = gr.Interface(
fn=generate_itinerary,
inputs=[
gr.Textbox(label="Destination"),
gr.Textbox(label="Start Date (YYYY-MM-DD)"),
gr.Textbox(label="End Date (YYYY-MM-DD)"),
gr.Dropdown(["Art", "Food", "Nature", "Culture", "Nightlife"], label="Traveler Type"),
gr.Dropdown(["Alone", "With Family", "With Friends", "With Partner"], label="Companion Type"),
],
outputs="text",
title="βοΈ AI Travel Assistant",
description="Enter your details, and let AI plan your perfect trip!"
)
interface.launch()
|