Villa Search 2

Villa Market search, led by an AI model

Search that understands the shopper

Shoppers type a dish, an occasion or a need, not only a product name. The model reads what they mean, together with what the shop knows about them, and chooses the products.

For now, the demo re-ranks the shop's own search with the model. Next comes our own engine (a router, semantic matching and occasions), which will not need the old search. The figures below are the model-led engine's.

88.1%first result relevanttoday 82.3%
95.7%first result relevant, Thai searchestoday 71.7%
91.9%named product firsttoday 75.7%

01

Today, the right product gets lost after the search

On 53% of 247 test searches with results, the shop's page shows a different first product from the one its search engine ranked first. The storefront re-sorts the results after the search.

  • 21.9% not sold at the branch, or alcohol
  • 16.6% out of stock, and sorted last
  • 14.2% a best-seller or new-arrival badge jumps ahead
  • 47.4% the same first product

02

One search, five steps

The first four are the model's judgments. Code only fetches what the model chose, and puts the page in order.

  1. UnderstandThe search, with the shopper's context: basket, history, likes, allergies, behaviour.
  2. ShelvesThe model chooses the shelves and sub-shelves worth reading.
  3. ProductsA quick yes or no for each product on them, up to 1,200.
  4. GradeEXACT, STRONG, RELATED or NOT. Diet and allergy checks only remove.
  5. OrderBy grade, then stock, then the model's own score. Every move says why.

03

Every search knows the shopper, within rules

The same search gives different pages to different shoppers, and each product says why it moved. Four rules hold every time:

  • Context changes how the search is read, and the order within a grade.
  • A product the shopper named is never hidden or pushed down. If it clashes with an allergy, it stays, with a warning.
  • On a search that does not name it, a disliked product counts one grade lower for that shopper.
  • Diet and allergy rules only ever remove products.

04

Measured, not claimed

261 test searches in Thai and English, each scored on what shoppers see at the Sukhumvit 33 branch: today's shop, against model-led search on the same products.

The first result is relevant

Today's shopModel-led search
MeasureToday's shopModel-led search
First result relevant (243 judged)82.3%88.1%
First result relevant, Thai (46)71.7%95.7%
First result relevant, English (197)84.8%86.3%
Named product first (37)75.7%91.9%
Relevant share of the first screen (11)0.8450.880
Searches with an empty page5.4%3.1%

A new search takes about 1.5 s with no shopper profile (up to about 3 s), and 2 to 5 s with a full profile. Repeated searches come from a cache. English gains are small (84.8% to 86.3%); Thai gains most.

05

Try it: each story opens the demo

Synthetic shoppers only. Each link opens the demo on that shopper and search.

Compare it yourself

Each link opens one search twice, side by side: Villa's search today, and the new search.

06

What the demo shows

Shoppers side by sideSix synthetic shoppers. Edit profile, basket and allergies.
Live behaviourJust arrived, or browsing a while: the results change.
Needs, not words"What to eat for Christmas", "something for a hangover".
RecipesThe model picks a product for every ingredient. Add all to the basket, or share.
Smart groupingBy role in a meal, by type, or by promotion.
Six languagesEnglish, Thai, Chinese, Russian, French and German.

07

Villa Market's own product data

  • Names, brands, sizes, categories and branch availability come from Villa Market's product API, fetched only when a new version is published.
  • Stock, promotions and images come from the shop's own feeds, read-only.
  • Next: the model places every product on the right shelf. Testing showed why: one brand's oat milk is filed under plain milk, so a search that reads the plant-milk shelf misses it.

08

Costs cents, not a server

The model is paid by the word it reads, and everything else is serverless: when nobody searches, almost nothing runs.

≈ 0.03¢a product searchabout 6,200 model tokens
≈ 0.06¢an occasion or recipe searchabout 13,000 model tokens
≈ 0.003¢a repeat within 30 daysThe model's answers are kept, so only the servers count
≈ $1a month when nobody searchesno search cluster, no cache server
1,000 searches≈ $0.36
100,000 searches a month≈ $36
An always-on managed search clustera few hundred dollars a month, before the first search · AWS pricing

Model input price: $0.042 per million input tokens (no output price is listed); AWS approximate. Not Villa's bill. On average a search reads about 7,900 tokens (the mix of the 261-query test).

09

What it does not do yet

Alcohol is hiddenAs today's shop hides it from search
Recipes come from a library of 28 dishesOther dishes run as intent searches
The Christmas dinner recipe has no whole turkeyThe branch sells none online. A search for "turkey" now puts the turkey products first; out-of-stock ones are labelled
Pages can shift if the product list's order changesThe scores hold; being measured and fixed
Shopper context is not in the evaluation yetShown in the demo; test cases come next
English gains are smallThe English test labels get checked before more tuning

10

Four decisions for Villa Market

ContextWhich shopper data may feed a search, and with what consent under the PDPA.
ShoppersWhat customers see about why results moved, and how they switch it off.
Sponsored productsThe rules for paid placement, and the pricing model.
StorefrontStop re-sorting: show the search order as it comes.

The demo uses synthetic shoppers only. No real customer data is used anywhere, and nothing is written to Villa Market.

See it for yourself

Try the demo