AI in Tourism — Day 1

AI in Tourism

Day 1 — Technical Foundations, Strategy and Prompting

March 2, 2026

Learning Objectives

By the end of the day you will be able to:

  • Explain how an LLM works (tokenisation, transformer, generation)
  • Distinguish fine-tuning, RAG and prompting and choose the right approach
  • Understand what AI agents are and their current limitations
  • Write structured and effective prompts for tourism use cases
  • Identify concrete opportunities in your business
  • Apply the basic rules of security and GDPR compliance

Course Context

About me

  • PhD in Physics, AI Engineer
  • AI Consultant and Trainer
  • Focus on AI applications for SMEs

How we work today

  • Theory + concrete examples
  • Questions at any time
  • Practical exercises in the afternoon
Goal: understand how AI works and make informed choices.

Day Schedule

Time Part Session Topics
10:30 – 11:00 Morning Course Introduction
  • AI in Tourism: Overview
  • Definitions & Common Myths
  • The Paradigm Shift
11:00 – 11:30 Morning First Part
  • Large Language Models
  • Tokenisation & Transformer
  • Context Window
11:30 – 11:45 ☕ Break
11:45 – 13:00 Morning Second Part
  • Fine-tuning
  • RAG — Retrieval Augmented Generation
  • AI Agents
  • Tools & Function Calling
13:00 – 14:00 🍽 Lunch Break
14:00 – 14:55 Afternoon First Part
  • Identifying Opportunities
  • Framework & Impact/Effort Matrix
  • Use Cases by Sector
14:55 – 15:05 ☕ Break
15:05 – 15:50 Afternoon Second Part
  • Effective Prompting
  • Templates & Practical Examples
  • Security & Privacy (GDPR)
15:50 – 16:00 Closing Wrap-up
  • Summary
  • Q&A

The Day's Thread

🔍
Understand
  • AI Overview in Tourism
  • How an LLM works
  • Context Window
⚙️
Customise
  • Fine-tuning
  • RAG
🤖
Automate
  • AI Agents
  • Tools & Functions
  • Practical Tools
🎯
Apply
  • Opportunities in Tourism
  • Effective Prompting
  • Security & GDPR
Section 1

AI in Tourism: Overview

Definitions · State of the Art · Common Myths · The Paradigm Shift

AI, ML, Deep Learning, Generative AI

AI, ML, Deep Learning, Generative AI
  • AI — systems that perform tasks typically done by humans
  • ML — learns from data, without hand-written rules
  • Deep Learning — ML with deep neural networks
  • Generative AI — produces text, images, audio, code

AI in Tourism: where we stand today

Hotels & OTAs

  • Predictive revenue management
  • Booking chatbots
  • Automated review responses

Destinations

  • Personalised itineraries
  • Tourist sentiment analysis
  • Flow forecasting

Travel Agencies

  • Automated search and comparison
  • Generated travel proposals
  • After-sales support

Adoption is still uneven: large OTAs are years ahead of SMEs

What AI is not

Myth Reality
"AI is always accurate" It produces convincing errors (hallucinations)
"It understands everything like a human" It predicts the next token — it doesn't reason
"It is autonomous and unpredictable" It follows statistical distributions over data
"It will replace everyone" It automates repetitive tasks, not entire roles
"It is too complex for SMEs" APIs and no-code tools lower the barrier to entry

The Paradigm Shift

Research AI (pre-2020)

  • Specialised models for a single task
  • Required large labelled datasets
  • Accessible only to large companies
  • Output: classifications, numerical predictions

Generative AI (today)

  • Foundation models: one model for hundreds of tasks
  • Instructed via natural language
  • APIs accessible to anyone
  • Output: text, images, code, audio
The barrier to entry has dropped dramatically: a well-written prompt replaces months of ML development.

Challenge

In your business, which process takes up the most time each week and could benefit from generative AI? Think of tasks that repeat, involve text or communication, and have a definable output.
Section 2

Large Language Models

How large language models work

What is an LLM

A Large Language Model is a neural network trained to predict the next token in a sequence of text.

Input: "The best hotel in Rome for families is" ↓ [LLM: billions of parameters] ↓ Output: "the" → "Grand" → "Hotel" → "Palatino" → ...
  • "Large" = billions of parameters (GPT-4: ~1.8T estimated)
  • "Language" = operates on text (and now also images, audio)
  • "Model" = a mathematical function learned from data
There is no understanding, no intentionality: it is statistical prediction at enormous scale.

Tokenisation: text becomes numbers

Before processing text, the LLM converts it into tokens (word fragments).

"Reservation" → ["Res", "erv", "ation"] → [4921, 1203, 3847] "ChatGPT" → ["Chat", "G", "PT"] → [10314, 38, 2898] "€" → ["€"] → [27975]
  • ~1 token ≈ 0.75 words in English / ~0.6 words in Italian
  • API cost is measured in tokens (input + output)
  • Rare or technical words → more tokens → more expensive

Interactive tool: platform.openai.com/tokenizer

The Transformer architecture (simplified)

Input tokens ↓ [Embedding: token → numeric vector] ↓ [Attention: each token "looks at" all others] ↓ [Feed-forward: non-linear transformation] ↓ × N blocks ↓ [Output: probability distribution over vocabulary] ↓ Token with highest prob → generated text
The self-attention mechanism allows the model to understand context: "bank" in "river bank" vs "bank account".

Pre-training: learning to predict

What happens

  • Input: trillions of words from the internet, books, code
  • Objective: predict the next token
  • Duration: weeks on thousands of GPUs
  • Cost: tens to hundreds of millions of $

What it learns

  • Grammar and syntax
  • Facts about the world
  • Basic logical reasoning
  • Different writing styles
The model "knows" only what was in the training data. It has no knowledge of recent news or proprietary company data.

Post-training: from predictor to assistant

Base model (prediction only) ↓ [Supervised Fine-Tuning on instructions] ↓ Instruction-tuned model (follows commands) ↓ [RLHF: human feedback + reward model] ↓ Aligned model (helpful, safe, honest)
  • SFT — (instruction → ideal response) pairs written by humans
  • RLHF — human raters compare responses, the model learns what they prefer
  • Result: the model "converses" instead of completing sentences

Generation parameters

Parameter Effect Example use
temperature 0 = deterministic, 1 = creative, >1 = chaotic 0.2 for FAQs, 0.9 for copywriting
top_p Truncates to top P% of cumulative probability 0.9 safe default
max_tokens Limit of generated tokens 150 for tweets, 2000 for articles
stop String that stops generation "\n\n" for short responses
For deterministic tasks (classification, data extraction): temperature = 0.

The leading models today

The up-to-date model rankings are maintained by a third-party site — artificialanalysis.ai

Closed vs open source models

Proprietary (third-party APIs)

  • No infrastructure to manage
  • Automatic updates
  • Variable cost per token
  • Data sent to the provider
  • Example: OpenAI, Anthropic, Google

Open-source / open-weight

  • Full data control
  • Fixed cost (hardware)
  • Requires technical expertise
  • Full customisation
  • Example: LLaMA, Mistral, Phi
For a tourism SME: start with APIs, consider open-source only if you have privacy requirements or very high volumes.

Consumer-grade interfaces vs API

Consumer-grade interfaces (ChatGPT, Claude.ai, Gemini)

  • Manual use, session by session
  • No integration with business systems
  • Suitable for experimentation and individual use
  • Data not used for training (paid plan)

API (OpenAI API, Claude API, etc.)

  • Integrable into apps, CRM, PMS, website
  • Automatable and scalable
  • Requires technical development (or no-code)
  • Pay-per-use billing

How to choose a model: criteria for SMEs

  • Task quality — use top models only if the task is critical (e.g. responses to VIP guests)
  • Cost per call — check the pricing: input and output tokens have different rates
  • Latency — real-time chatbots require fast models (e.g. GPT-4o mini, Claude Haiku)
  • Language support — test explicitly: not all models perform equally in non-English languages
  • Data compliance — verify DPA, data residency (EU), terms of use
Practical rule: use the smallest/cheapest model that solves your problem.

Challenge

If you were to introduce an AI assistant to your team starting this week, for which specific activity would you use it? Would you choose a consumer interface (ChatGPT, Claude.ai) or an API integration — and why?
Section 3

Context Window

The model's working memory: limits and practical implications

What is the context window

The context window is the maximum amount of text the model can "see" in a single processing moment.

┌─────────────────────────── Context Window ──────────────────────────────┐ │ System prompt │ Previous conversation │ Documents │ Latest question │ └─────────────────────────────────────────────────────────────────────────┘ ↑ everything must fit in here ↑
ModelContext window≈ English words
GPT-4o128,000 tokens~96,000
Claude 3.5 Sonnet200,000 tokens~150,000
Gemini 2 Pro2,000,000 tokens~1,500,000
GPT-4o mini128,000 tokens~96,000

What happens when the context is full

  • The model cannot process more text: the API call returns an error
  • Some implementations "trim" the oldest parts of the conversation
  • The model "forgets" the trimmed information: no native persistent memory
  • Response quality degrades if the context is very long (lost-in-the-middle)
A 100-page PDF can easily saturate 128k token contexts. Always check before sending long documents.

Managing context in real applications

Software strategies

  • Progressive summarization — summarize the chat every N turns
  • Sliding window — keep only the last K exchanges
  • RAG — retrieve only the relevant pieces (→ section 5)
  • Entity extraction — save important facts to a DB

Cost implications

  • Input tokens are charged on every call
  • Long conversation = growing cost
  • Keeping the system prompt short matters
  • Models with caching (Claude) reduce costs
🏨
Hotel Bellavista Assistant
● online
I booked a double room, March 14–17.
Found it! Garden-view double room. How can I help you?
Can I have an extra pillow?
Of course, I've noted the request.
What time is breakfast?
Buffet 7:00–10:30, included in your rate.
↕ context window
What about parking? I have a car.
Open-air parking is free. Covered garage €15/night — shall I book it?
Yes please. Can I do a late check-out on the 17th?
Garage added. I'll check late check-out availability and contact you this evening.
Perfect. Do you have a spa?
Yes, spa on the 2nd floor open 9:00–21:00. Treatments by appointment, complimentary for guests.
Type a message…

Context window in tourism

Scenario Estimated tokens Strategy
Booking chatbot (short chat) 1,000–5,000 No problem, mini model
Analysis of 50 reviews ~20,000 Batch, one analysis at a time
Q&A on full catalogue (500 products) >100,000 RAG required
Single reply to a guest 200–800 Direct API call, inexpensive

The trend: growing context windows

  • 2023: GPT-4 with 8k → 32k tokens
  • 2024: Claude with 200k, Gemini with 1M tokens
  • 2025: Gemini 2.0 with 2M tokens (~1,500 pages)
  • Direction: "unlimited" context window in the long term
Larger contexts do not eliminate the need for RAG: attention quality on long texts remains an open problem, and cost is proportional.
Do not confuse "can process 1M tokens" with "processes them accurately": always validate on your specific use case with appropriate benchmarks.

Challenge

Which business documents (price list, cancellation policy, FAQ, operations manual) would you want an AI assistant to consult when answering guests? Are they already in digital format and kept up to date?
Section 4

Fine-tuning

Training a model on your own data

The adaptation continuum

Zero-shot Few-shot Fine-tuning │ │ │ ▼ ▼ ▼ "Classify "Here are 3 examples, Train the model this now classify" with thousands of review" my own examples │ │ │ No data A few examples Dataset required Immediate in the prompt Time + cost
For most tourism use cases, prompting and few-shot are sufficient. Fine-tuning only when you have a concrete problem that cannot be solved otherwise.

Training types compared

Phase Data Who does it Cost
Pre-training Trillions of tokens from the internet Labs only (OpenAI, Anthropic…) $10M–$100M+
Supervised FT A few hundred to thousands of examples Companies, developers $100–$10,000
RLHF / RLAIF Human or AI preferences Mainly the labs High
Prompting Examples in the text Anyone API call cost

Full fine-tuning vs LoRA

Full fine-tuning

  • Updates all model parameters
  • Maximum adaptation capacity
  • Requires high-end GPUs
  • Risk of "forgetting" base knowledge (catastrophic forgetting)

LoRA / PEFT

  • Adds small adapters to the base model
  • Trains only a fraction of parameters (<1%)
  • Consumer-grade GPUs are sufficient
  • The base model remains intact
  • The dominant technique today for local fine-tuning

When fine-tuning is worth it

  • The model must adopt a very specific communication style (brand tone, register)
  • Repetitive task with a rigid output format (e.g. structured JSON, specific forms)
  • Long prompt that repeats every time: fine-tuning "bakes in" the instructions
  • You have hundreds of high-quality examples already validated
Do not fine-tune to teach the model new information: use RAG for that. Fine-tuning teaches how to respond, not what to know.

Requirements: data, costs, infrastructure

Data

  • Min. 50–100 examples (quality > quantity)
  • Format: JSONL with prompt/completion
  • Must be clean and representative

Cost (API)

  • OpenAI FT: ~$8 / 1M training tokens
  • One-time training + ongoing inference
  • Model hosting may have a fixed cost

Infrastructure

  • Via API: no infrastructure needed
  • Self-hosted: GPU with 16–80 GB VRAM
  • Cloud ML: Vertex AI, SageMaker, RunPod

Example: specialised chatbot for a hotel

Without fine-tuning

Prompt: "You are the Hotel Bellavista assistant.
Reply in a warm and professional manner.
Here are our policies: [500 tokens]
Here are our services: [800 tokens]
Guest question: late check-out?"

~1,400 tokens of context on every call

With fine-tuning

Prompt: "Guest question:
late check-out?"

Tone, policies and style already baked into the model

~30 tokens of context on every call

Savings on input tokens = direct long-term savings on API costs.

Fine-tuning vs prompting: the choice

Criterion Use prompting Consider fine-tuning
Time available Available immediately Weeks for data + training
Request volume Low / medium Very high (context cost)
Output style Generic or semi-specific Very rigid or branded
Available data Few or none Tens to hundreds of examples
Technical skills None required Developer or ML engineer

Challenge

Does your company have a recognisable communication style towards guests? Have you already collected examples of emails or replies that represent your standard — and how many could you put together in a month?
Section 5

RAG — Retrieval Augmented Generation

Connecting an LLM to your data without training it

The problem: the LLM doesn't know your data

What the LLM doesn't know

  • Your updated price list
  • Your hotel's specific policies
  • Real-time availability
  • Internal company documents
  • News from the past few months

The (bad) alternatives

  • Put everything in the prompt → context explodes, high costs
  • Fine-tuning → doesn't learn updatable facts, only style
  • Ignore the problem → the model hallucinates
RAG = retrieve the relevant documents at question time, insert them into the context, generate the answer.

RAG Architecture — Core concept

RAG Architecture

RAG Architecture — Application diagram

[Business documents] ──→ [Chunking] ──→ [Embedding] ──→ [Vector DB] │ │ (indexing, once) │ User question ──→ [Question embedding] ──→ [Similarity search] │ Top-K relevant chunks │ ▼ [Prompt = question + relevant chunks] ──→ [LLM] ──→ Answer

Embeddings: text as coordinates

An embedding model converts text into a vector of numbers that represents its meaning.

"room with sea view" → [0.12, -0.87, 0.45, 0.33, ...] "ocean view bedroom" → [0.11, -0.85, 0.46, 0.31, ...] ← similar! "breakfast included" → [0.78, 0.23, -0.91, 0.55, ...] ← different
  • Texts with similar meaning → nearby vectors in the space
  • Cosine similarity measures how semantically related two texts are
  • Embedding models: OpenAI text-embedding-3, Cohere, sentence-transformers

Embeddings: the vector space

Embedding vector space representation

Embeddings: word vectors

Word vector representation and dimensionality reduction

Vector database: what it is and how it works

Traditional database

Searches for exact words

SELECT * FROM faq
WHERE text LIKE '%check-out%'

Does not find "departure time"

Vector database

Searches by semantic meaning

query = embed("what time do I need to leave the room?")
results = db.search(query, top_k=3)

Finds check-out, departure, late check-out…

Common vector database solutions: Pinecone, Weaviate, Chroma, pgvector (PostgreSQL), Qdrant

RAG pipeline: step by step

  1. Document loading — PDF, Word, database, website
  2. Chunking — split into pieces of 200–500 tokens with overlap
  3. Embedding — convert each chunk into a vector
  4. Indexing — save the vectors to the vector DB
  5. — runtime —
  6. Question embedding — convert the user question into a vector
  7. Search — find the top-3/5 most similar chunks
  8. Augmentation — insert the chunks into the prompt
  9. Generation — the LLM responds based on the chunks

RAG in tourism: practical examples

Dynamic hotel FAQ

  • Operations manual → chunked
  • Chatbot answers on policies, hours, services
  • Update: upload new PDF

Tour catalogue

  • 500 tour sheets → indexed
  • "Tour suitable for children with snorkeling" → top-3 tours
  • Response with precise details

Prices and availability

  • Nightly update from the PMS
  • Chatbot responds with fresh data
  • No risk of outdated information

RAG vs fine-tuning: comparison table

Aspect RAG Fine-tuning
Data updates Easy (reload documents) Expensive (retrain)
Transparency High (source is visible) Low (data baked in)
Factual hallucinations Reduced (chunks as anchor) Present
Output style Does not change model behaviour Modifies style and behaviour
Technical setup Medium (vector DB, pipeline) Medium-high (dataset, GPU)
In practice the two are often combined: fine-tuning for style + RAG for up-to-date data.

RAG limitations

  • Chunking quality — poorly split chunks = fragmented context = wrong answer
  • Multi-hop questions — "compare the price of tour X with tour Y" requires multiple retrievals
  • Non-textual data — complex tables, images, PDFs with complex layout are difficult
  • Added latency — vector search adds 50–300ms per query
  • Hallucination not eliminated — the model can still ignore the provided context
RAG is not a magic wand: it requires careful engineering and continuous evaluation of response quality.

Challenge

If you could ask an AI assistant trained on your business documents a question and receive a precise, up-to-date answer, what would that question be? Which documents would you give it access to?
Section 6

AI Agents

Autonomous systems that plan and act in the real world

The difference: LLM, Assistant, Agent

🧠
Pure LLM
  • Predicts the next token
  • No memory
  • No tools
Input → Output
💬
Assistant
  • Responds in natural language
  • Maintains context
  • Follows system instructions
Input → Output
🤖
Agent
  • Plans complex tasks
  • Uses tools and executes actions
  • Observes results and iterates
Goal → Plan → Actions → Goal
An agent uses an LLM as its reasoning engine, but has operational autonomy.

The ReAct cycle: Reason → Act → Observe

Goal: "Find the cheapest flight Rome-Tokyo for July and add it to the calendar" [Reason] → I need to search for flights in July [Act] → search_flights("Rome", "Tokyo", "July") [Observe] → {results: [{price:650, date:"Jul 5"}, ...]} [Reason] → The cheapest is €650 on July 5th [Act] → create_calendar_event("July 5", "Tokyo flight") [Observe] → {status: "created", id: "evt_123"} [Reason] → Task completed [Output] → "Found flight €650 (Jul 5) and created the event"

Planning and memory in agents

Memory types

  • In-context — everything in the current conversation
  • External — databases, files, persistent vectors
  • Procedural — instructions in the system prompt
  • Episodic — logs of previous sessions

Planning types

  • Chain-of-thought — step by step in the text
  • Tree-of-thought — explores multiple paths
  • Plan-and-execute — full plan then execution
  • ReAct — interleaves reasoning and actions

Multi-agent systems

👤 "Plan a weekend in Florence for 2 people, budget €400"
🎯 Orchestrator
✈️ Flights Agent
API Skyscanner
🏨 Hotel Agent
PMS + Booking API
🗺️ Itinerary Agent
LLM + local RAG
✅ Full plan: flights + hotel + itinerary within budget

Key concepts

  • Specialisation — each agent has a precise domain and dedicated tools
  • Orchestration — the orchestrator assigns tasks, collects results and resolves conflicts
  • Parallelism — multiple agents work simultaneously, reducing latency
  • Composability — sub-agents are reusable in other workflows

Frameworks

  • LangGraph — agent graphs with explicit state
  • CrewAI — agents with roles and goals in natural language
  • AutoGen — multi-agent conversations (Microsoft)
  • Claude MCP — standard protocol for tools and agents

AI Agents in tourism

🏨 Automated booking

Receives request, checks PMS availability, applies rate policies, generates confirmation and sends email to the guest

💰 Revenue optimisation

Analyses history, local events and competitors → automatically proposes the weekly rate plan to the revenue manager

🔍 Competitor monitoring

Scans OTAs every hour, compares rates with your own, notifies the team if the gap exceeds a defined threshold

⭐ Review management

Monitors TripAdvisor, Google, Booking in real time, drafts personalised replies and sends them after human approval

🗺️ Traveller assistant

Plans tailor-made itineraries, books restaurants and activities, answers pre- and post-stay questions in natural language

📊 Operations reports

Aggregates data from PMS, CRM and OTA channels every morning → generates KPI report with highlighted anomalies, ready for the briefing

Agents in production require human oversight on high-impact decisions (e.g. rate changes, public replies, sending communications).

Risks and limitations of agents

  • Cascading errors — a mistake in one step is amplified in subsequent steps
  • Infinite loops — the agent does not terminate if it cannot find the stop condition
  • Prompt injection — malicious external data crafted to hijack the agent's behaviour
  • Unpredictable costs — every iteration consumes tokens: complex tasks cost a lot
  • Irreversible actions — sending emails, modifying databases, spending money
Rule: every irreversible action must have an explicit human approval checkpoint.

When are agents reliable today?

Scenario Reliability Notes
Simple tasks with clear tools High 1-3 steps, well-defined tools
Information search and synthesis High No irreversible actions
Multi-step workflow (5-10 steps) Medium Requires supervision
Open-ended tasks, ambiguous goal Low Not recommended in production
Autonomous financial actions Not recommended Human supervision always

Challenge

For which operations would you be willing to authorise an AI agent to act autonomously — changing a rate, sending a notification, updating a booking — and where would you always want to keep human approval?
Section 7

Tools and Function Calling

How an LLM executes actions in the real world

From the LLM to the real world

An LLM on its own only produces text. To do something, it needs tools.

User: "What is the availability of the suite on August 15th?" LLM recognises: I need to call the "check_availability" tool ↓ Generates structured JSON: {"tool": "check_availability", "params": {"room": "suite", "date": "2026-08-15"}} ↓ The application code executes the call to the PMS ↓ The result comes back to the LLM as text ↓ LLM formulates the final response to the user

Function calling: defining tools for the LLM

Each tool is defined with a schema that the model uses to generate correct calls.

{
  "name": "check_availability",
  "description": "Checks room availability in the PMS",
  "parameters": {
    "room_type": {
      "type": "string",
      "enum": ["standard", "deluxe", "suite"],
      "description": "Requested room type"
    },
    "arrival_date": {
      "type": "string",
      "format": "date",
      "description": "Arrival date (YYYY-MM-DD)"
    },
    "nights": {
      "type": "integer",
      "description": "Number of nights"
    }
  },
  "required": ["room_type", "arrival_date", "nights"]
}

Tool examples in tourism

Tool Action Integrated system
check_availability Check available rooms PMS (Opera, Mews, Cloudbeds)
create_booking Book and confirm PMS + Channel Manager
get_weather Weather forecast for destination Weather API
send_notification Email/SMS to the guest CRM, Mailchimp, Twilio
update_rate Update prices Revenue management system

Multi-agent architecture

👤  "Book a double room for Saturday, dinner included, gluten-free guest — send them a confirmation"
🧠  Orchestrator
🛏️  Availability
check_rooms
create_booking
update_calendar
calculate_rate
PMS · Booking.com · Airbnb
🍽️  Restaurant
check_tables
book_table
log_allergies
alert_kitchen
Back-office · TheFork
🗺️  Hospitality
get_weather
local_events
suggest_activities
RAG_local_guide
Maps · OpenWeather · FAQ
📬  Communication
send_confirmation
send_reminder
update_CRM
request_review
Email · WhatsApp · CRM

MCP: Model Context Protocol

MCP is an open standard (Anthropic, 2024) for connecting LLMs to tools and data sources in an interoperable way.

Before MCP

  • Every integrator builds their own format
  • Tools not reusable across different models
  • Multiplied maintenance

With MCP

  • Standard MCP server for each system
  • Works with Claude, GPT-4, Gemini…
  • Ecosystem of ready-made servers (Google Drive, GitHub, databases…)
MCP is still being adopted but represents the direction the industry is moving towards.

Classic function calling: context overhead

Example: web search + article generation (3 sources) [LLM] → {"tool":"web_search", "query":"AI news"} ← round-trip 1 [LLM] ← {urls: [url_1, url_2, url_3]} → ctx +tok_0 [LLM] → {"tool":"web_fetch", "url": url_1} ← round-trip 2 [LLM] ← {content: "…full article…"} → ctx +tok_1 [LLM] → {"tool":"web_fetch", "url": url_2} ← round-trip 3 [LLM] ← {content: "…full article…"} → ctx +tok_2 [LLM] → {"tool":"web_fetch", "url": url_3} ← round-trip 4 [LLM] ← {content: "…full article…"} → ctx +tok_3 [LLM] → {"tool":"write_blog", "sources": [c_1, c_2, c_3]} ← round-trip 5
  • Every intermediate result enters the context: the model must process each response before proceeding
  • With N sources: 2N + 1 round-trips, context usage O(N)
  • Saturated context → performance degradation (lost-in-the-middle); latency and cost grow linearly

Programmatic Tool Calling

Classic function calling

→ web_search("AI news") [ctx +tok_0] ← {urls: [...]} → web_fetch(url_1) [ctx +tok_1] ← {content: "..."} → web_fetch(url_2) [ctx +tok_2] ← {content: "..."} → write_blog(c_1, c_2, c_3) 5 round-trips · all content in context

Programmatic Tool Calling

# The model generates this code:
results = web_search("AI news")

content_list = []
for r in results:
    content = web_fetch(r.url)
    content_list.append(content)

write_blog(content_list)

1 round-trip · only the final output re-enters the LLM context

Instead of emitting a JSON for each tool call, the model generates code (Python / TypeScript) in which tools are callable functions. The code is executed in the execution environment; intermediate results reside in local variables, not in the model's context. Available from Claude Opus 4.5 and Sonnet 4.5 onwards.

Code Execution: enabling and impact

How to enable it (Anthropic API)

tools = [
  # 1. Add the execution environment
  {"type": "code_execution_20250522",
   "name": "code_execution"},

  # 2. Mark tools callable from code
  {
    "name": "query_database",
    "description": "...",
    "input_schema": {...},
    "allowed": ["code_execution"]
  }
]

The code_execution tool provides the sandbox; allowed exposes the function as callable in the environment.

Unlocked capabilities

  • Batch processingfor loops over N elements, executed in parallel
  • Conditional tool selectionif/else on the result of a tool to decide the next tool
  • Local data filtering — transformation and aggregation of results before inserting them into context
  • Round-trip reduction — from 2N+1 calls to 1 (request) + 1 (final response)
Measured reduction: 37–50% of tokens for equivalent tasks.
Anthropic benchmark: context at equivalent task approximately 4× lower compared to classic function calling.

Advanced optimisations for high-efficiency agents

Dynamic Web Filtering

  • The system automatically filters the content of web pages retrieved during web search
  • Only semantically relevant sections for the query enter the context
  • Input token reduction: 24% on average (range 33–62% depending on content)
  • Activation: add the web_search tool — filtering is applied automatically

Tool Search

  • With many MCP servers, loading all definitions into context is prohibitive
  • A special search_tool searches for relevant definitions on demand, via regex or BM25 query
  • Savings: ~95% of context occupied by tool definitions
  • Deferred loading: the definition is loaded only when needed and removed afterwards, freeing space

Tool Use Examples

  • Add input examples to the tool definition (few-shot approach at schema level)
  • Five examples are sufficient in most cases
  • Accuracy in correct tool invocation: 70% → 90%
  • Particularly useful for tools with many parameters or complex structured inputs
The three optimisations are orthogonal and cumulative: combining them simultaneously reduces latency, token consumption and error rate in agents with a high number of tools.

Challenge

Which systems do you use today in your business (PMS, CRM, channel manager, email)? Which integration with an AI assistant would generate the highest immediate value — and why?
Break

Lunch

Resuming in the afternoon

Section 7b

AI Tools: practical guide

ChatGPT, Claude, Copilot and Gemini — access, costs and first hands-on activities

The consumer tools landscape

Tool Company Key strength Free?
ChatGPT OpenAI General purpose, the best-known; images (DALL-E 3) Yes (limited)
Claude.ai Anthropic Long-form writing, PDF document analysis Yes (limited)
Microsoft Copilot Microsoft Integrated in Outlook, Teams, Excel, Word Yes (web)
Google Gemini Google Integrated in Gmail, Docs, Drive, Sheets Yes (basic)
All four work via browser — no installation required. The free tier is sufficient to start experimenting.

ChatGPT — chatgpt.com

For tourism

  • Responding to positive and negative reviews
  • Writing social posts (Instagram, Facebook)
  • Creating personalised itineraries on request
  • Translating communications into multiple languages
  • Generating room and package descriptions

Plans

  • Free — GPT-5.2 limited
  • Plus — $20/month · GPT-5.2 unlimited, files, images
First activity:

Go to chatgpt.com → paste a recent negative review → write:

"Reply in a professional and empathetic tone, in 100 words or fewer."
Do not enter the guest's name, email or personal data in the prompt.

Claude.ai — claude.ai

For tourism

  • Analysing long documents (contracts, policies, PDFs)
  • Answering questions about the content of a document
  • Writing articulate texts in the brand's tone of voice
  • Summarising feedback and identifying patterns
  • Reasoning through complex scenarios (pricing decisions, offers)

Plans

  • Free — Claude Sonnet, Haiku (limited daily use)
  • Pro — $18/month · Claude Opus, extended use, files, Projects
First activity:

Go to claude.ai → upload your cancellation policy PDF → write:

"If a guest cancels 8 days in advance, are they entitled to a refund? Answer clearly and concisely."

The Projects feature (Pro plan) saves a fixed context — policy, tone, instructions — without having to rewrite it for every conversation.

Microsoft Copilot — copilot.microsoft.com

For tourism

  • Outlook — draft welcome, pre-arrival and follow-up emails
  • Teams — meeting summary with action items
  • Excel — booking data analysis, occupancy charts
  • Word — standard contracts, commercial proposals
  • Web (free) — search with sources, real-time answers

Plans

  • Free — copilot.microsoft.com (GPT-5.1 + web search)
  • M365 Copilot — $30/user/month · integrated in Office apps
First activity (free):

Go to copilot.microsoft.com → write:

"Write a welcome email for a guest arriving tomorrow at my boutique hotel in Florence. Warm tone, max 80 words."

If you already use Microsoft 365, check with your IT provider whether the M365 Copilot plan can be activated on your tenant.

Google Gemini — gemini.google.com

For tourism

  • Gmail — draft replies to booking enquiries
  • Google Docs — generating proposals, local guides, press releases
  • Google Sheets — data analysis with natural language
  • Real-time web search (competitor prices, local events)
  • Image analysis — property photos, menus, decor

Plans

  • Free — Gemini 2.5 Flash on gemini.google.com
  • Google One AI Premium — €21.99/month · Gemini 3.1 Pro + Workspace
First activity:

Go to gemini.google.com → paste 5–10 recent reviews → write:

"Analyse these reviews: list the 3 most-mentioned strengths and the 2 most-mentioned areas for improvement."

Those already using Google Workspace get the most value from the paid plan, thanks to native integrations with Gmail and Drive.

Which tool to choose

If… Use Plan
You already use Microsoft 365 (Outlook, Teams, Excel) Microsoft Copilot M365 $30/user/month
You already use Google Workspace (Gmail, Drive) Google Gemini €21.99/month
You want to analyse documents and write articulate texts Claude.ai Free to start, Pro ($18/month) for daily use
You want the most versatile option, with image generation ChatGPT Free to start, Plus ($20/month) for daily use
You don't have to choose just one. Start free, move to a paid plan only if you use it every day.

Challenge

Among the four tools presented (ChatGPT, Claude, Copilot, Gemini), which would you try first in your business — and for which specific task?
Section 8

Identifying Opportunities

Where AI creates value in your tourism business

Framework: mapping repetitive processes

The starting point for identifying AI opportunities is a map of repetitive business processes.

Signals that a task is suitable for AI

  • It repeats more than 10 times a day
  • It requires text / language processing
  • It has a definable and verifiable output
  • A new team member would learn it in < 1 hour
  • It does not require deep empathy or a personal relationship

Signals that a task is NOT suitable

  • Each case is unique and complex
  • It requires ethical or legal judgement
  • It involves a human relationship as the core value
  • Errors have serious consequences
  • Pure structured data (use a traditional database instead)

Impact / effort matrix for AI

high
IMPACT
low
⚡ Quick wins
Do it now
🎯 Strategic
Plan carefully
⏳ Defer
Low priority
✗ Avoid now
High cost, low return
low
EFFORT →
high
  • Quick wins: review responses, social post generation, FAQ chatbot, guest email translation
  • Strategic: AI revenue management, automated bookings, RAG on catalogue, multichannel agent

Suitable vs not suitable for generative AI

Suitable Not suitable (or not yet)
Responding to template emails with personalisation Managing complex disputes with guests
Generating room / package descriptions Legal decisions (refunds, damages)
Summarising feedback and reviews Physical operational supervision
Proposing personalised itineraries Relationships with high-value VIP clients
Translating multilingual communications HR performance evaluations of staff

Use cases by sector

Hotel / B&B

  • Booking and FAQ chatbot
  • Automated check-in/out via chat
  • Automated review responses
  • Personalised pre-arrival upsell
  • Monthly feedback summary

Restaurants

  • Generating menu descriptions
  • Responding to bookings and dietary requests
  • Automated social posts
  • TripAdvisor review analysis

Travel agencies / DMC

  • Personalised itinerary proposals
  • Supplier research and comparison
  • Automated follow-up emails
  • Client briefing processing

Exercise: identify 3 processes in your business

10 minutes — individual work
  1. Think about the tasks you (or your team) carry out repeatedly every week
  2. For each one, assess: High/Medium/Low frequency × High/Medium/Low impact if automated
  3. Position it on the impact/effort matrix
Task Frequency Impact Estimated effort
1.
2.
3.

Challenge

You have completed the impact/effort matrix. What is your "quick win" — the high-impact, low-effort process you could automate within the next four weeks? What is the first concrete step?
Section 9

Effective Prompting

Communicating with AI models precisely and systematically

Anatomy of a prompt: 5 components

┌──────────────────────────────────────────────────────────┐ │ ROLE "You are a tourism marketing expert..." │ ├──────────────────────────────────────────────────────────┤ │ CONTEXT "The hotel is called Bellavista, 4-star, │ │ family-oriented, Amalfi Coast..." │ ├──────────────────────────────────────────────────────────┤ │ TASK "Write a reply to the review below" │ ├──────────────────────────────────────────────────────────┤ │ FORMAT "Max 120 words, warm tone, no jargon" │ ├──────────────────────────────────────────────────────────┤ │ CONSTRAINTS "Do not promise refunds. Do not mention │ │ competitors." │ └──────────────────────────────────────────────────────────┘
You don't always need all 5: add only what is needed. A longer prompt is not always better.

Zero-shot, few-shot, chain-of-thought

Zero-shot

No examples, instruction only

"Classify this review
as positive or negative:
'The breakfast was cold'"

Fast, cheap, sufficient for simple tasks

Few-shot

2–5 examples before the task

"Positive: 'Breathtaking view'
Negative: 'Small room'
Classify: 'Cold breakfast'"

Improves precision and output format

Chain-of-thought

Ask for explicit reasoning

"Reason step by step:
1) Identify the problem
2) Assess the tone
3) Give the classification"

Complex tasks, reasoning, calculations

Prompt templating: reusable structures

A template is a prompt with variables to be filled in at runtime.

You are the guest relations manager of {{property_name}}.

You have received this review on {{platform}}:
---
{{review_text}}
---

Write a professional response that:
- Thanks the guest for their feedback
- Addresses the main point specifically
- {{specific_instruction}}
- Stays under {{max_words}} words
Templates are saved in a shared document and passed to every team member: prompt engineering as a business asset.

Practical example: social post

Prompt

"You are the social media manager
of Agriturismo Le Colline.

Write 3 Instagram post variants
to promote the wine-tasting weekend
on 15 March.

Format:
- Emoji at the start
- Max 150 characters
- 3–5 relevant hashtags
- Warm, authentic tone"

Expected output

🍷 Saturday, 15 March, join us
among our vineyards for an
unforgettable wine tasting.
#agriturismo #wine #tuscany

🌿 A weekend of flavour and nature:
tasting with a view over the hills.
Limited spots!
#wine #tuscany #weekend

✨ Every sip tells the story of our
land. Join us on 15 March.
#winetasting #wine #italianwine

Practical example: replying to reviews

Review (negative)

"Disappointing room, different from the photos. The bathroom was small and the WiFi didn't work. I won't be back." — 2 stars

Prompt

"Reply to this negative review.
Tone: professional and understanding.
Acknowledge the specific issues.
Offer a direct point of contact.
Max 100 words. Do not be defensive."

Output

"Dear guest, thank you for your feedback. We are sorry that your experience did not meet your expectations, particularly regarding the room and connectivity. These are aspects we are actively working to improve. We invite you to contact us directly at guests@hotel.it so we can discuss further and, if possible, make it right. We hope to welcome you back for an experience that truly meets your expectations."

Practical example: personalised itineraries

You are an expert in eastern Sicily tourism.

Create a 5-day itinerary for:
- Couple, aged 35–40
- Interests: Greco-Roman history, local cuisine, moderate walks
- Budget: mid-to-high
- Period: April
- Base: Syracuse
- Self-guided: independent travel by car

For each day indicate:
- Morning / afternoon / evening
- Estimated driving time
- 1 recommended restaurant with a typical speciality
- 1 practical note (booking recommended, opening hours, etc.)

Practical examples: FAQ and descriptions

Automated FAQ

"Given this cancellation policy:
[policy text]

Answer this guest question:
'If I cancel 10 days in advance
do I get a full refund?'

Be precise, brief, and friendly in tone."

Package description

"Write a commercial description
for this package:
- 3 nights sea-view suite
- Breakfast included
- Unlimited SPA access
- Romantic dinner (1 evening)
- Price: €480 per night

Target: couples, special occasions.
Max 80 words. Evocative tone."

Common mistakes in prompting

Error Effect Solution
Prompt too vague Generic, unusable output Specify format, length, tone
No business context Generic, non-branded response Add name, sector, values
Only saying what NOT to do The model doesn't know what to do Say WHAT you want, not just what to avoid
Multiple tasks in one prompt Mediocre result on everything One prompt = one task
No output structure Unpredictable format Specify: "reply as a list", "use JSON"

Systematic prompt debugging

1. Write the initial prompt ↓ 2. Test with 3–5 different inputs ↓ 3. Identify where it fails ├─ Output too long? → add "max X words" ├─ Wrong tone? → specify the role more clearly ├─ Wrong format? → add an example (few-shot) └─ Missing information? → add context ↓ 4. Change ONE element at a time ↓ 5. Retest, compare ↓ 6. Save the working prompt in the template library

Prompt for review analysis

Analyse the following hotel reviews and produce a structured report.

Reviews:
---
{{reviews_list}}
---

For each review, identify:
1. Overall sentiment: Positive / Neutral / Negative
2. Main themes mentioned (max 3 per review)
3. Implicit score 1–5

Then produce:
- Top 3 recurring strengths
- Top 3 areas for improvement
- 1 concrete recommended action

Output format: structured JSON
With 50 reviews per month, this automated analysis is worth hours of manual work.

Prompt Engineering vs. Context Engineering

Prompt Engineering

Optimising the text of a single prompt: role, instruction, format, constraints, few-shot examples.

Context Engineering

Designing the entire context passed to the model:

  • Tools — which tools are available and with what definitions
  • Retrieved documents — RAG chunks, web results, project files
  • Conversation history — which turns to keep or compress
  • Structured outputs — previous tool call results in the context
The conceptual leap: output quality depends more on what is in the context than on the wording of the prompt. Especially relevant for agentic systems.

Challenge

Have you already used ChatGPT, Claude or similar tools for a work task? Describe a case where the result surprised you — positively or negatively — and what you would have done differently with the prompt.
Section 10

Security and Privacy

GDPR, practical risks and responsible AI use

GDPR and AI: obligations and responsibilities

Relevant GDPR principles

  • Data minimisation — use only necessary data
  • Purpose limitation — do not reuse data for other purposes
  • Accountability — you are the data controller
  • Privacy by design — design with privacy in mind

What changes with AI

  • Data sent to the API may be used for training (check the terms)
  • Automated decisions require transparency (Art. 22)
  • Guest profiling → legal basis required
  • Data breach includes leaks via prompts

Specific risks: what can go wrong

Risk Description Impact
Prompt injection A malicious input alters the model's behaviour Exposed data, unauthorised actions
Data leakage The model "remembers" sensitive data inserted in the context Exposure of client/business data
Model inversion Attacks that extract data from model parameters Relevant only for fine-tuning on sensitive data
Hallucinations in factual data The model invents prices, policies, legal information Reputational damage, disputes

Practical rules: what to never include in a prompt

Never include:
  • Personally identifiable data (name + email + phone together)
  • Credit card numbers, banking details, identity documents
  • Access credentials (passwords, API keys, tokens)
  • Health data or sensitive guest preferences
  • Trade secrets or confidential contracts
If in doubt: anonymise first. "Guest X booked…" → "A guest booked…"

For batch processing of client data: always use pseudonymisation and keep the mapping locally.

AI services with enterprise guarantees

Enterprise options

  • OpenAI Enterprise / API — data not used for training, SOC 2
  • Azure OpenAI — EU data residency, tenant isolation, Microsoft DPA
  • Anthropic Claude API — data not used for training, robust privacy policy
  • Google Vertex AI — data residency, GDPR compliance

What to verify

  • Is data used for training? (no for paid plans)
  • Where is data processed? (data residency)
  • Is a DPA (Data Processing Agreement) available?
  • Certifications: SOC 2, ISO 27001, GDPR?
Free, consumer-grade versions (ChatGPT free) do not offer the same guarantees as paid API plans.

Checklist: safe AI use in a tourism SME

  • I have signed a DPA with the AI provider
  • Shadow AI policy: staff must not include personal client data in prompts
  • I use paid plans only (no training on data)
  • I have updated the data processing register
  • Privacy policy updated (mention of AI tools)
  • AI outputs reviewed by a human before sending
  • No API keys in website / app code
  • Access to AI tools restricted to necessary users
  • Auditing: logs of critical AI operations retained
  • Data breach response plan updated

Challenge

In your company, who has access to AI tools and what guest data flows through prompts? Are measures already in place — such as a signed DPA or an internal policy — to ensure safe and GDPR-compliant use?
Section 11

Day 1 Closing

Recap · Resources · Next steps

Recap — Technical foundations

Key concepts

  • LLM = statistical prediction at enormous scale
  • Token = basic unit of cost and context
  • Context window = the model's working memory
  • Fine-tuning = style and format, not new facts
  • RAG = your data + LLM without training
  • Agents = LLM + tools + limited autonomy
  • Function calling = interface between LLM and real systems
LLM ──→ Context Window │ ├── Prompting (immediate, low-cost) ├── Fine-tuning (style, volume) ├── RAG (up-to-date data) └── Agents (autonomy, risk) Choose the right technique for your specific problem

Recap — Strategy and prompting

Identifying opportunities

  • Repetitive processes with definable output
  • Impact/effort matrix
  • Quick wins first

Effective prompting

  • 5 components: Role, Context, Task, Format, Constraints
  • Reusable templates
  • Iterate one element at a time

Security

  • No sensitive data in prompts
  • DPA with the provider
  • Human review of critical outputs
AI is not a substitute for human judgement: it is a productivity amplifier.

Resources for further reading

Reading

Online courses

Tools to explore

Community

Today's slides available at this link.

Questions?

Thank you for today.

See you on Day 2.

Section 12

Glossary

Abbreviations and terms used during the day

Key abbreviations and terms

Tourism & Business

OTAOnline Travel Agency — online booking platforms (Booking.com, Expedia, Airbnb)
PMSProperty Management System — hotel management software for bookings, rooms and billing
CRMCustomer Relationship Management — system for managing client data and relationships
KPIKey Performance Indicator — key metric for measuring business performance
FAQFrequently Asked Questions — common questions with pre-written answers
DMCDestination Management Company — local operator organising on-site tourism services
B2B / B2CBusiness-to-Business / Business-to-Consumer — type of commercial relationship

AI & Technology

LLMLarge Language Model — AI model trained on large amounts of text
MLMachine Learning — AI discipline that learns from data without explicit rules
RAGRetrieval Augmented Generation — technique that connects an LLM to external documents
APIApplication Programming Interface — interface for communication between software systems
MCPModel Context Protocol — Anthropic standard for connecting AI agents to external tools
GPUGraphics Processing Unit — specialised processor used for training AI models
GDPRGeneral Data Protection Regulation — EU regulation on personal data protection
DPAData Processing Agreement — contractual agreement on data processing with third-party providers
SOC 2Service Organization Control 2 — security certification for cloud service providers