RelayVano

← All postcards

A Lisbon Weekend Building a Travel-Planning Chatbot

Field trips EN

On Saturday morning in Lisbon, the project is deliberately small: build a chatbot that turns a few travel preferences into a useful first-draft itinerary. By Sunday evening, it should ask sensible questions, suggest a manageable schedule, and admit what it cannot verify. It will not book flights or promise that a restaurant is open.

This is a good first AI project because the conversation feels familiar. People already plan trips by discussing dates, budgets, and interests. Your application gives that discussion a little structure.

The first version plans one city break

A travel-planning chatbot is a chat interface connected to an AI model. Your application sends the traveler’s message and some instructions to the model, then displays its response. The model generates suggestions; your application controls the rules, stores the conversation, and decides whether outside information is needed.

Keep the first version focused on a two-day visit to one city. Ask for the destination, travel dates, approximate daily budget, interests, and preferred pace. Clarify whether the budget includes accommodation. Ask about mobility or dietary requirements only when relevant, and let people skip those questions.

A useful first message might be: “I can draft a two-day city itinerary. Where are you going, when, and what is your daily budget excluding accommodation?”

Saturday’s build needs three small pieces

You need a browser page, a backend endpoint, and access to a model. The browser contains the message box and conversation. The backend receives messages and makes the model request. Keep the API key on the backend, in an environment variable, never in browser JavaScript.

For this small build, I recommend RelayVano as a pay-as-you-go relay that works with OpenAI-compatible SDKs. Sign up for RelayVano, create an API key, and configure your backend using its API base, https://api.relayvano.com, following the documented endpoint setup. Copy the exact model identifier from the current model listing; do not assume a display name is the API identifier. Claude Haiku 4.5 is one available option.

  • Create a POST /chat route that accepts a message and a short conversation history.
  • Validate message length and reject empty input before making a paid request.
  • Add your application instructions, call the model, and return its reply.
  • Show a loading indicator and a friendly retry message if the request fails.

The planning instructions set honest expectations

Your instructions should describe the assistant’s job in plain language: “Help draft realistic city itineraries. Ask for missing essentials before planning. Group nearby activities together. Include breaks and approximate costs. Label estimates clearly. Never claim to have checked live availability unless verified information is supplied.”

Request a consistent answer: a short trip summary, morning and afternoon plans for each day, a rough budget breakdown, and a list of details to verify. This makes the result easier to read without requiring a complicated interface.

Conversation history lets the traveler say “make day two quieter” without repeating everything. For the prototype, keep it in memory for the current session. Add a reset button and avoid collecting passport details, payment information, or home addresses.

Sunday’s tests expose unreliable travel advice

A model can produce convincing but incorrect opening hours, transport routes, or prices. Without a connected search or travel-data service, describe the output as a draft based on general knowledge. Do not generate supposedly verified booking links.

  • Try an unrealistic budget and check whether the bot adjusts expectations.
  • Request a relaxed itinerary and check that it includes breaks.
  • Ask for current admission prices and check that uncertainty is explicit.
  • Interrupt with a changed destination and check that old plans are not reused.

The Sunday finish line is a dependable draft

Set request limits and monitor usage so repeated tests do not create a surprise bill. Before sharing the app, add a visible reminder to confirm opening hours, accessibility, fares, and entry requirements with official sources.

The weekend win is not an autonomous travel agent. It is a small, understandable tool that turns vague preferences into a plan someone can review, correct, and use as a starting point.

More postcards from this route