Home / Work / Case study

Case study · AI chat concierge

An AI shopping concierge for guided diamond discovery.

A production Nuxt concierge for a jewelry marketplace: buyer prompts, natural-language diamond search, recommendation cards, grounded policy answers, analytics, and handoff when a human expert should take over.

6starter intents
24search candidates per pass
40history messages retained
10guest messages per session

The problem

Diamond buying has too many variables for a static filter wall.

Buyers often arrive with half-formed intent: a budget, a certificate preference, a shape, or a goal like value, sparkle, clarity, or an occasion. The assistant had to translate that conversation into usable product criteria, show real inventory cards, answer company policy questions from verified knowledge, and move uncertain cases toward an expert instead of guessing.

Architecture

A chat interface connected to product search, knowledge, and handoff.

What was engineered

The load-bearing parts.

Concierge UI system

Right-side desktop launcher and fixed panel, mobile sheet, welcome state, clear chat, return-to-browse, loading, error, and fallback states.

Guided prompt flow

Starter paths for value, certification, clarity, sparkle, investment, and occasion, with follow-up budget, shape, priority, and color chips.

Product recommendations

Natural-language intent becomes diamond search criteria; responses render recommendation cards with carat, color, clarity, certification, price, and detail navigation.

Grounded policy answers

GemGem process and policy questions use a server knowledge base with embedding retrieval, then fall back to the agent only when appropriate.

Guardrails & abuse controls

Input validation blocks unsafe prompts, server sessions expire, guest messages are capped, requests are rate-limited, and LLM calls have a per-request budget.

Human handoff

No-match and expert-help paths collect sourcing, consultation, or callback details and create support tickets instead of pretending the AI can solve every case.

Implementation facts

Accurate data from the codebase.

DATA / 01

Frontend stack

Nuxt/Vue components, Pinia state, composables for assistant flow, recommendation actions, comparison, and sourcing requests.

DATA / 02

Server endpoint

POST /api/diamond-assistant/chat owns provider calls, session state, rate limiting, knowledge retrieval, and final response serialization.

DATA / 03

Provider layer

Default model is gpt-4o-mini, with code paths for OpenAI-compatible APIs, OpenRouter, Gemini, HuggingFace, and Ollama.

DATA / 04

Knowledge retrieval

Policy/process answers use a JSON knowledge base plus embeddings loaded from CDN/object storage or local fallback, retrieving the top 3 candidates.

DATA / 05

Safety limits

Defaults include 60-second frontend request timeout, 180-second server timeout, 12 LLM calls per request, and 100 messages maximum per session.

DATA / 06

Analytics events

Existing tracking covers opens, messages, recommendations received, product clicks, compare clicks, sourcing fallback, and submitted requests.

Screens

The concierge in use.

AI concierge conversation recommending GIA-certified diamonds under 999 dollars
RECOMMENDATION FLOW
Desktop AI shopping assistant with chat, diamond cards, and expert help CTA
DESKTOP PANEL
Mobile AI concierge showing guided discovery and diamond recommendation cards
MOBILE FLOW

Need an AI assistant tied to real product data?

We map the job, the data, the actions, and the handoff rules before the model gets near production.