Generative AI-Powered Knowledge Sharing System for Travel Expertise

hotelplan_suisse · Other · 2024 · source Agentic: yes · promotional bias: high · source-backed · extracted with prompt 0.5.6 (schema v2)

Generated from extraction.json — do not edit by hand. Every claim cites verbatim source evidence; stated means the quote directly asserts the claim, implied means it supports it indirectly.

Problem

Domain: travel sales knowledge sharing

Hotelplan Suisse wanted to make distributed travel expertise instantly available to sales staff so they could answer detailed customer travel questions without waiting for colleagues in another expertise area.

Constraints:

Architecture

Datatonic and Hotelplan built a Google Cloud generative AI knowledge-sharing chatbot for internal sales staff. The system ingests 10+ internal and external sources through an automated versioned-ingestion pipeline, uses semantic search to retrieve relevant travel knowledge, calls backend LLM logic behind a Gradio frontend, applies guardrails for undesirable outputs, lets users save and reload chat history, logs LLM inputs and outputs to BigQuery, and is delivered through production CI/CD with unit tests.

Diagram confidence: reconstructed (reconstructed from prose).

flowchart LR
  hotelplan_sales_staff["Hotelplan sales staff"] --> knowledge_sharing_chatbot["Knowledge sharing chatbot"]
  internal_and_external_data_sources["Internal and external data sources"] --> automated_ingestion_pipeline["Automated ingestion pipeline"]
  automated_ingestion_pipeline --> semantic_search_layer["Semantic search layer"]
  knowledge_sharing_chatbot --> backend_llm_logic["Backend LLM logic"]
  backend_llm_logic --> semantic_search_layer
  semantic_search_layer --> backend_llm_logic
  backend_llm_logic --> guardrails["Guardrails"]
  guardrails --> backend_llm_logic
  backend_llm_logic --> knowledge_sharing_chatbot
  knowledge_sharing_chatbot --> chat_history_store["Chat history store"]
  chat_history_store --> knowledge_sharing_chatbot
  backend_llm_logic --> bigquery_llm_logging["BigQuery LLM logging"]
  ci_cd_and_unit_tests["CI/CD and unit tests"] --> backend_llm_logic
  ci_cd_and_unit_tests --> automated_ingestion_pipeline
Drag to pan · scroll or use +/− to zoom · reconstructed from the source's described component topology

Components

Component Role Interacts with
Hotelplan sales staff Internal users who ask travel questions and use generated recommendations when advising customers. Knowledge sharing chatbot
Knowledge sharing chatbot Staff-facing Gradio chatbot interface for entering questions, receiving recommendations, and resuming conversations. Backend LLM logic, Chat history store
Internal and external data sources Travel expertise, structured data, and unstructured content used to answer destination and itinerary questions. Automated ingestion pipeline
Automated ingestion pipeline Loads new versions of 10+ data sources into the retrieval layer. Semantic search layer
Semantic search layer Retrieves relevant internal and external travel knowledge for a staff question. Backend LLM logic
Backend LLM logic Runs LLM calls and generation logic separately from the frontend. Semantic search layer, Guardrails, BigQuery LLM logging, Knowledge sharing chatbot
Guardrails Constrains chatbot outputs to reduce hallucinations and harmful content. Backend LLM logic
Chat history store Persists and reloads user chat histories across sessions. Knowledge sharing chatbot
BigQuery LLM logging Stores LLM inputs and outputs in Hotelplan's Google Cloud project for monitoring and review. —
CI/CD and unit tests Automated deployment and basic functionality checks for APIs, data availability, and processing logic. Backend LLM logic, Automated ingestion pipeline

Data flow

Internal and external travel knowledge sources are ingested through an automated pipeline whenever new data versions arrive. A sales staff user asks a travel question in the chatbot frontend; backend LLM logic retrieves relevant knowledge through semantic search, generates a guarded response, returns it to the user, saves chat history when requested, and logs LLM inputs and outputs in BigQuery for monitoring and review.

3 supporting quotes
“Ingests data from 10+ internal and external sources with an automated pipeline for ingestion of new versions of the data sources”article, stated
“Hotelplan wanted to build a tool that leverages all of their experts’ internal knowledge, combined with external, structured, and unstructured data using semantic search”article, stated
“Enabling logging of inputs and outputs from the LLMs in Hotelplan’s Google Cloud project, available in BigQuery”article, stated

Why this architecture

The architecture centralizes expertise that was previously distributed across people and branches. Semantic search over internal, external, structured, and unstructured data lets the chatbot answer beyond a single staff member's location expertise; backend separation, tests, CI/CD, logging, and guardrails make the Gradio prototype production-ready enough for an internal sales-support rollout.

3 supporting quotes
“Hotelplan wanted to build a tool that leverages all of their experts’ internal knowledge, combined with external, structured, and unstructured data using semantic search”article, stated
“Refactoring to separate the Gradio frontend from backend logic such as LLM calls”article, stated
“Creating production-ready CI/CD pipelines for automated deployment”article, stated

Models used: Google Cloud generative AI

Scale

Alternatives considered (roads not taken)

Continue colleague-to-colleague expert consultation

Rejected because: Consulting other specialists worked but took time when a customer's destination fell outside the current staff member's expertise.

“when a new customer wants to plan a holiday outside of their expertise area, they consult other team members”article, stated
“which can take some time.”article, stated

Expose only internal expert knowledge

Rejected because: Hotelplan wanted the chatbot to combine staff know-how with external, structured, and unstructured data through semantic search.

“leverages all of their experts’ internal knowledge, combined with external, structured, and unstructured data using semantic search”article, stated

Keep frontend and LLM call logic coupled

Rejected because: The delivery team explicitly refactored the Gradio frontend away from backend LLM calls as part of productionizing the system.

“Refactoring to separate the Gradio frontend from backend logic such as LLM calls”article, stated

Run the chatbot without output guardrails

Rejected because: The deployed tool needed guardrails to prevent hallucinations and harmful content before supporting sales staff.

“Uses guardrails to prevent undesirable outputs, such as hallucinations or harmful content”article, stated

Patterns

rag-retrieval (knowledge sharing)

The chatbot uses semantic search over internal expert knowledge plus external structured and unstructured data to answer travel questions for sales staff.

“Hotelplan wanted to build a tool that leverages all of their experts’ internal knowledge, combined with external, structured, and unstructured data using semantic search”article, stated

guardrails-io-filtering (safe generation)

The system includes output guardrails to reduce hallucinations and harmful content in generated travel recommendations.

“Uses guardrails to prevent undesirable outputs, such as hallucinations or harmful content”article, stated

agent-memory (conversation continuity)

Users can save the current chat history and load prior conversations in a new session, making the assistant stateful across interactions.

“Enables users to save their current chat history and load previous chat histories in a new session”article, stated

eval-driven-development (acceptance testing)

The delivery team tuned prompts through multiple UAT rounds and added automated unit tests for APIs, data availability, and processing logic.

“Optimizing model outputs through prompt tuning and multiple rounds of UAT to improve performance”article, stated
“Carrying out automated unit tests to verify basic functionality, e.g., APIs, data availability, and processing logic”article, stated

observability-tracing (LLM operations)

Inputs and outputs from the LLMs are logged in Hotelplan's Google Cloud project and made available in BigQuery.

“Enabling logging of inputs and outputs from the LLMs in Hotelplan’s Google Cloud project, available in BigQuery”article, stated

data-quality-loop (source refresh)

The system ingests new versions of more than 10 internal and external sources, keeping the retrieval corpus aligned with changing travel information.

“Ingests data from 10+ internal and external sources with an automated pipeline for ingestion of new versions of the data sources”article, stated

Tradeoffs

Assist sales staff instead of replacing the travel expert workflow.

Chose An internal staff knowledge-sharing chatbot over A direct customer-facing travel planner.

Rationale: The source positions trained staff as the users who advise customers, so the AI accelerates expert recommendation work rather than removing the staff mediation layer.

“Powered by Generative AI, the tool would allow internal sales staff to advise customers on their perfect holiday instantly.”article, stated
“Enhanced operations by enabling Hotelplan’s sales staff to provide faster and better recommendations to customers”article, stated

Use a semantic-search chatbot over manual expert handoff.

Chose Generative AI over connected internal and external travel knowledge over Waiting for colleagues with destination-specific expertise.

Rationale: Semantic search reduced the time to provide recommendations from hours to minutes while preserving access to specialized expertise.

“they consult other team members to be available to help recommend the perfect itinerary, which can take some time.”article, stated
“Accelerated the time to provide expert recommendations to travel questions from hours to minutes”article, stated

Use an automated ingestion pipeline.

Chose Automated ingestion of new source versions over Static or manual updates to the knowledge corpus.

Rationale: Travel information changes, and the system needed 10+ source feeds to stay current without manual refresh work.

“Ingests data from 10+ internal and external sources with an automated pipeline for ingestion of new versions of the data sources”article, stated

Preserve conversation continuity.

Chose Save and reload chat histories over Stateless one-off Q&A sessions.

Rationale: Travel planning can involve multi-turn context, so saved histories make it possible to continue prior advice sessions.

“Enables users to save their current chat history and load previous chat histories in a new session”article, stated

Gotchas (what bit them)

Expert knowledge was siloed by destination and location.

Root cause: Travel experts had deep knowledge of specific countries and locations, so staff needed to consult colleagues when customer needs fell outside their area.

Resolution: Build a knowledge-sharing chatbot that connects staff to the combined expertise of more than 500 travel experts plus external data.

“Hotelplan’s booking team is made up of travel experts, with deep knowledge about specific countries and locations.”article, stated
“answer detailed customer questions and needs with the connected travel expertise of 500+ travel experts in seconds.”article, stated

Generation quality had to be improved through user acceptance testing rather than assumed from the base model.

Root cause: The source frames prompt tuning and multiple UAT rounds as necessary delivery work to improve performance.

Resolution: Tune prompts and iterate with UAT before production rollout.

“Optimizing model outputs through prompt tuning and multiple rounds of UAT to improve performance”article, stated

A prototype-style Gradio frontend was not enough as a production boundary.

Root cause: Frontend concerns and backend LLM calls needed separation for maintainability and deployment.

Resolution: Refactor the Gradio frontend away from backend LLM logic and add production CI/CD.

“Refactoring to separate the Gradio frontend from backend logic such as LLM calls”article, stated
“Creating production-ready CI/CD pipelines for automated deployment”article, stated

Travel recommendations needed protection against hallucinated or harmful outputs.

Root cause: The chatbot generates advice from diverse sources, so unguarded outputs could mislead staff or customers.

Resolution: Add guardrails to prevent undesirable outputs.

“Uses guardrails to prevent undesirable outputs, such as hallucinations or harmful content”article, stated

Evaluation

The case reports multiple rounds of UAT, prompt tuning, automated unit tests for APIs/data availability/processing logic, and LLM input-output logging to BigQuery rather than a detailed offline benchmark.

Metrics: 10+ internal and external data sources ingested · automated unit tests for APIs, data availability, and processing logic · multiple rounds of UAT · recommendation time improved from hours to minutes

3 supporting quotes
“Optimizing model outputs through prompt tuning and multiple rounds of UAT to improve performance”article, stated
“Carrying out automated unit tests to verify basic functionality, e.g., APIs, data availability, and processing logic”article, stated
“Enabling logging of inputs and outputs from the LLMs in Hotelplan’s Google Cloud project, available in BigQuery”article, stated

Outcomes

The rollout targets Switzerland's largest tour operator, four brands, 82 branches, more than 500 travel experts, and a retrieval corpus spanning more than 10 internal and external sources.

3 supporting quotes
“Enhanced operations by enabling Hotelplan’s sales staff to provide faster and better recommendations to customers”article, stated
“Accelerated the time to provide expert recommendations to travel questions from hours to minutes”article, stated
“With this solution being rolled out, Hotelplan will accelerate its sales process and serve personalized recommendations to customers faster through its experts.”article, stated