File size: 1,838 Bytes
e5d4be3
cb2beda
 
e5d4be3
cb2beda
e5d4be3
 
 
 
 
 
 
 
 
2c6d8f6
1f32c4c
cb2beda
 
 
 
 
 
 
 
 
 
 
 
 
1f32c4c
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
import os
import gradio as gr
from transformers import 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 a smaller AI model that fits within 16GB memory
chatbot = pipeline("text-generation", model="mistralai/Mistral-7B-8Bit", token=HF_TOKEN)

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 travel assistant. Generate a detailed day-by-day itinerary for a trip to {destination}.
    - Trip Duration: {start_date} to {end_date}
    - Type of traveler: {traveler_type}
    - Traveling with: {companion}
    - Each day should have 3 activities for morning, afternoon, and night.
    - Provide unique local recommendations based on the traveler's interests.
    """
    
    response = chatbot(prompt, max_length=150, do_sample=True, temperature=0.7, top_p=0.9)
    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()