Skip to content

Challenge

The task was to process various free-form text requests from users. Typically, these requests outlined the user's plans for a specific city and time period, detailing what they intended to do and the type of assistance they needed.

The challenge was to match each request with the services offered by city guides from the portal's pool.

The system had to verify which guides were available during the user's visit and deliver the results via email. Previously, this work was done manually, but AI was needed to automate the process.

Approach

Our team took the following steps:

  • Gather Requirements: We collected all the requirements and sample user requests.
  • Prepare Database: We used database development to create a list of services for each guide in every city on the platform.
  • Build Prototype: We turned to RAG application development to show how key data retrieval worked and how free city guides were found.
  • Budget Consideration: We assessed the budget to determine the best LLM for the task.
  • Test and Launch: We tested the solution and launched it for production.

Solution Overview

The main feature of our solution is to extract key data from user requests and find matching city guide profiles using vectorized search and text embeddings.

Initially, all guide profiles are embedded and saved in the database. The database also tracks guide availability for specific periods. If a profile changes, it is re-embedded and saved.

Logged-in users submit requests through a special form. However, it appears that the majority of users do not fill in period and city fields. But they write down all the information in the text field. That's why, the LLM extracts the following data from user requests:

  • Travel start date
  • Travel end date
  • Country and city
  • List of services needed

LLM generalizes well. So even if the user misses the country or writes "1 week" instead of the travel end date, AI will calculate the correct dates anyway.

The list of services is vectorized using text embedding (text-embedding-ada-002 OpenAI model). The search in the database is performed using this vector, along with the period and city, with the help of the pgvector plugin and an SQL query.

The result is a list of available city guides with a probability of matching the service criteria. The top 3 matches are included in a letter to the user.

If no matches are found or the LLM fails to extract data, the request is marked for human review.

This helps understand issues and gather material to improve the LLM prompt.

As a result, the user receives an email with the top 3 matching city guides, direct links to their profiles, and a button to book a service.

 

Key Features

  • LLM development solutions as AI Search Assistant to assist with intelligent search queries.
  • RAG application to employ city guide profiles as a knowledge database.
  • Only logged-in users participate, preventing accidental LLM token usage.
  • Operator assistance if the AI cannot extract key fields from user requests or if no available guides are found for the city.

Illustration

Smart Travel Guides

Result

Thanks to the development of these smart requests and guides, the matching system automated around 89% of the manual work on the platform. This enabled the platform to respond to user requests faster, within a maximum of 3 minutes, while maintaining a high level of quality.

This site uses technical cookies and allows the sending of 'third-party' cookies. By continuing to browse, you accept the use of cookies. For more information, see our Privacy Policy.