Open AI-based Hotel Recommendation System
Introduction
Have you ever felt limited by the search options in common travel websites? In the age of AI, personalized experiences are becoming the norm rather than the exception. ย To address this, I developed an advanced hotel recommendation system using OpenAI, allowing users to describe their preferences in natural language, without the confines of a few checkboxes. The system not only matches user needs with suitable hotels but also offers a seamless, intuitive user experience.
Project Overview
The OpenAI-based hotel recommendation system leverages state-of-the-art technologies to deliver tailored hotel recommendations. Hereโs a closer look at its functionality and architecture.
User Experience
The process begins with users selecting a travel destination. As seen in Figure 1, users choose a country from a dropdown menu and enter their preferences in natural language, such as "I'm taking a business trip and bringing my kids." The system processes this input to generate personalized hotel recommendations.

Figure 1: User Interface of the Hotel Recommendation System. This interface allows users to select a country from a dropdown menu and describe their specific travel needs in a text box.
System Architecture
- Front End: Built with React, the front end captures user inputs and displays recommendations through a clean and user-friendly interface.
- Back End:
- Vector Database: Stores and manages hotel data, reviews, and embedded sentences, enabling efficient data retrieval.
- Semantic Search and Function Calling: The Large Language Model (LLM) interprets user inputs and extracts parameters for semantic searches. For instance, the query "business trip with kids" generates two semantic search queries: "good for kids" and "good for business." The LLM performs multiple searches as needed and feeds the results into the next stage.
- Retrieval-Augmented Generation (RAG): RAG integrates the results of the semantic searches to form a final recommendation. For example, the system combines the results for "good for kids" and "good for business" in the final LLM call, generating a well-rounded recommendation for the user.
Hosting and Technologies Used
- AWS Hosting: The entire system is hosted on AWS, providing scalability and reliability.
- Embedding Model: The Instructor model, hosted on AWS, is used to generate vector embeddings.
- Vector Databases: AWS PostgreSQL RDS is used to store and manage queries.
- LLM: OpenAI's LLM interprets user inputs and generates personalized recommendations.
- React: Powers the front-end interface for seamless user interaction.
Conclusion
The development of our OpenAI-based Hotel Recommendation System showcases the transformative potential of AI in revolutionizing user experiences. Gone are the days of limiting searches to a few checkboxesโusers can now describe their unique needs in their own words, and our system responds with personalized, informed recommendations, much like asking a trusted friend who knows the best local hotels.
By seamlessly integrating state-of-the-art AI technologies and robust cloud services, our system delivers accurate and tailored hotel recommendations that cater to individual preferences. This project not only exemplifies the power of AI but also underscores the significance of a seamless blend between front-end and back-end technologies to create an intuitive and user-friendly application. Travel planning has never been this efficient and enjoyable!

Figure 2: Architecture Diagram of the OpenAI-based Hotel Recommendation System. The user begins by selecting a country and inputting specific travel preferences through a React-based user interface (UI). These inputs are processed by an LLM-based tool, which generates search queries for performing semantic searches on a vector database. The results from these searches are further refined through a Retrieval-Augmented Generation (RAG) process, culminating in personalized hotel recommendations. The final recommendations are then displayed to the user via the UI.
Link to GItHub repo with React code:ย