Recently, we launched our GetYourGuide ChatGPT plugin, which is a ChatGPT extension designed to help users plan and discover unforgettable GetYourGuide activities. In this blog post, Steven Mi and Alexander Butenko explain how the team built the ChatGPT Plugin and what their thought processes were.
GetYourGuide is a leading online marketplace for travel experiences, connecting travelers from all around the world with more than 75.000 unforgettable experiences in more than 150 countries. Our customers can discover our experiences through various channels such as our website, mobile apps, ads,and now, the newly added ChatGPT plugin.
ChatGPT plugins are a new capability (currently only available to ChatGPT plus users) that allows developers to add new functionality to ChatGPT by connecting it with third-party services. The integration with our GetYourGuide services allows us to use ChatGPT to help users plan and discover unforgettable travel experiences. The plugin integration is our first project with Large Language Models (LLMs) in a production environment, and it teaches us valuable lessons about the potential and handling of AI in improving customer interactions.
To create a new plugin, you need a service that exposes its API as OpenAPI specifications and a description of the service's functionality. When a user interacts with ChatGPT, it will attempt to match the user's intent with the enabled plugins by looking at each plugins’ description. If a plugin fits, ChatGPT will create an API call based on the plugin’s OpenAPI specifications and invoke it. After receiving the results from the plugin service, ChatGPT summarizes the results based on the user requests.
That said, the GetYourGuide plugin service itself is just an intermediate layer between ChatGPT and our internal search engine. It has fixed parameters that are optimized for LLMs and generates a search query based on this. The response format is optimized to be understandable for LLMs.
When designing the API of the GetYourGuide plugin, we aimed for compatibility with other Large Language Models to enable re-using the API for different platforms or utilizing it for an LLM-powered discovery chatbot. Optimisation for LLMs means following industry standards, such as using GET operations with query parameters to retrieve data. When standards are met, LLMs are able to match user intent well with a set of endpoints and its parameters. As for our plugin parameters, they consist of free-text parameters to query the general user interest and various filters such as interests, time and rating to produce a more targeted result.
The API itself does not need to support multiple languages, as LLMs are quite strong in language translation. And finally, the API responses should be detailed and clear - especially in cases of errors a reason should be given. However at the moment without insight into ChatGPT users' queries, testing and optimisation is difficult, and new features rely on intuition rather than data-driven decisions.
All in all, working with ChatGPT Plugin was just our first steps into the field of Large Language Models. We are confident that the plugin ecosystem will pave a new path for travelers to discover experiences. Therefore, we want to further improve the plugin by allowing more complicated user queries through more filter options and by looking into the use of semantic search.
Besides, investment and research into integrating LLM-driven or -assisted features into our products, such as a discovery chatbot, rating summarisation, personalisation, extending our plugin to different chat platforms and others are topics we are actively working on. In addition, strengthening our machine learning platform to support training, deployment and monitoring of LLMs will become an important topic soon.
We are excited to be at the forefront of the new wave of LLM products and services. We see this as a tremendous opportunity and are excited about the developments in this space. Finally, we would like to thank Maciek Watroba, Mudit Ameta, Jean Carlo Machado, and Mathieu Bastian for their contributions and advice during this work.
Interested in joining GetYourGuide? Check out open roles here.
From Batch to Real-time: The Incremental MLOps Journey at GetYourGuide
Vue 3: Migrating Through Automation