INTERNALOur own product
A VITON ID assistant that answers from its own catalogue first
In the signed-in VITON ID cabinet, the assistant answers questions about products and studio packages from its own catalogue, replying in the member’s language with cards and prices. Only when neither the catalogue nor its fixed replies fit does the question go to a self-hosted language model.
- catalogue items per language: 32 products, 52 studio packages
- 84
- languages the assistant works in
- 5
- cards at most in one answer
- 6
- message limit per member
- 8 per 5 min
Task
Members signed in to VITON ID should be able to ask what VITON13 sells and get real items with real prices in their own language, not a model’s guess. An earlier version gave the model only site-search hits, meaning titles and paths; asked how much a website costs, it had nothing to answer with, so it hedged or invented a figure.
The assistant also must not shop for the member. It may suggest items, but the member chooses, and nothing goes into the bag without that choice.
What we did
We built the VIT LIVE tab of the cabinet, where the panel is titled VIT ASSISTENT, and the server route behind it. Every request is checked for a signed-in session: a visitor who is not signed in gets a 401 response and never reaches the assistant.
Behind the panel sit three layers. A catalogue of 84 items for each language: 32 products from Old Money, RISE, ANIRI and VITON XIII, and 52 studio packages from 13 service pages. Fixed replies for greetings and for questions about the assistant itself, plus exact answers on prices, ordering, discounts, bonuses and reply times, read from the service price ladders and the bonus rules. And, as the last step, a self-hosted language model that works from a fact sheet and the site’s own search.
How it works
Every message goes through the same order, and the first step that matches gives the answer. First the catalogue: when the question is about buying, products, services, the store or the bag, a keyword matcher ranks the catalogue for the cabinet’s language and replies with up to six cards, each with a price. No model is called, and the reply is labelled VITON13 CATALOG. Next come the fixed replies, which are instant.
Only if neither matches does the question reach the model, served by Ollama and by default on the same server as the site. It receives the question with the two messages before it, a fact sheet generated at that moment from the site’s pricing and ordering data, up to eight results from the site’s keyword search when the question is about the site, and, for questions about news, weather or exchange rates, up to two web results passed as untrusted evidence, never as instructions, which the panel lists as sources. It is told to answer only in the member’s language, in one to three sentences, and to say that the price is confirmed after the brief when the fact sheet lacks a figure, instead of guessing. Temperature is 0.1, replies are capped at 180 tokens by default, and the text streams into the panel as it is written.
On a card, the member presses Choose, checks the options and only then presses Add to bag; the assistant never adds anything by itself. Each member can send 8 messages in 5 minutes, and the last 60 messages are kept with the account. If the model server does not answer, the panel says so and puts the message back in the input field; catalogue answers and fixed replies do not depend on it.
What exists now
The VIT LIVE tab is part of the VITON ID cabinet in all five site languages. On 19 September 2026 the live route turned away a visitor who was not signed in with 401 REGISTRATION_REQUIRED, as intended. The catalogue holds 84 items in each language: 32 products and 52 studio packages.
The model step is used when the model server is configured; the code names gemma3:4b as the default model and lets the server’s environment choose another. Eleven automated tests cover the model call and its error when the server is down, the fact sheet, the rules for when web search runs and the fixed replies; all eleven passed on 19 September 2026.
What this does not prove
It is not a public chat widget: only members signed in to VITON ID can use it, and there are no usage or conversion figures to report. It does not take orders or pass requests to the studio; those go through the forms on the service pages.
Matching is by keywords, not meaning: there are no embeddings and no vector store. The word lists have gaps and differ between languages, so some questions, including a few of the panel’s own suggestions, miss the right cards. The catalogue is not the whole site either: it holds 3 of the 5 VITON XIII fragrances and no VIT MARKET goods, and the fixed answers on prices and ordering are written only in Russian and English.
The case does not show the model running in production or judge the quality of its answers. The code points to a self-hosted Ollama model, gemma3:4b by default, used when the model server is configured.
Services this case shows
Describe the task on the service page; a written scope, timeline and price come back within one working day.
Discuss a similar projectMore cases
All cases
INTERNALOur own product
Brand films for our own sites
3 films · 2 AI-generated · 2026
Two AI-generated films play in the first block of store.viton13.com and studio.viton13.com, and the GELO film moves frame by frame as visitors scroll the VITON XIII page. All three are our own work for our own sites, not client commissions.
Read the case →
INTERNALOur own product
VITON13 brand identities
Identity · 5 marks · 2026
The marks VITON13 uses for its own brands, as they exist in the site's code: two drawn globe-V marks, three wordmarks set in type and one accent colour, sky blue #5ac8ff on black. The case also covers VITON XIII, a line of five fragrances.
Read the case →
INTERNALOur own product
Old Money styling
Styling · Old Money · 2026
Old Money is VITON13's own clothing label, not a client project. We composed three priced men's looks from its 16 products, added a care guide in five languages to every product and published a budget capsule guide in VJOURNAL.
Read the case →