Engineering transparency

Technology stack & AI architecture

A public, versioned view of how Maison Apéro balances wine expertise, speed, cost and privacy. Production components are clearly separated from architecture still under validation.

← Back to Maison Apéro

Catalog2026-09-08

Deployment status

This page is generated from one catalog. A component is marked live only after production validation.

AI technology stack

The client never selects a provider. The server owns task classification, model policy, billing and fallback.

LayerTechnology or modelPurposeStatus
Client Flutter 3.47 / Dart 3.13 One UI foundation for Android, iOS, Web and PWA. Live
Authentication and API protection Firebase Auth / App Check Accept authenticated users and requests from verified app instances. Live
Evaluation orchestrator Cloud Functions / Node.js 22 Classify tasks, select models, control tickets, retry safely and validate output. Partially live
Verified cache delivery Verified Wine Library cache Return a verified Wine Library result without running a new model request. Live
Input normalization ministral-8b-2512256k context · structured outputs Normalize wine identity and determine whether an image, list excerpt or typed description is sufficient. In validation
Review drafting validation mistral-small-2603256k context · structured outputs · tunable reasoning Validate review-drafting and study-question metadata paths before any production activation. In validation
Lightweight Gemini gemini-3.5-flash-lite1M input context · structured outputs · thinking Translation and lightweight processing: Gemini 3.5 Flash-Lite. Wine identity extraction uses Gemini 3.8 Flash. Live
High-precision Gemini gemini-3.8-flash / gemini-3.7-flash1M input context · structured outputs · low / medium / high thinking Reviews and Grand: Gemini 3.8 Flash. Study quizzes and written scoring: Gemini 3.7 Flash. Live
Data Firestore / Wine Library Verified wine facts, reviews and locale-specific cached projections. Live
Confidential knowledge Server-only reference layer Keep advanced references and assessment instructions on the server. Partially live
Secrets Google Secret Manager Keep provider credentials outside source code and client builds. Live
Observability Cloud Logging / aggregate metrics Measure model, task, latency, token use and success rate without logging review drafting bodies. Live

How an AI request is processed

A cost-aware cascade uses the least complex path that can satisfy the task, then validates the result before release.

Label, wine-list excerpt or typed identity
Auth + App Check
Server-owned review or study contract
Verified Wine Library match → cached result; ticket cost follows the task
Identity normalization → validation path
Review drafting candidate → Mistral Small 4 · validation only
Translation and lightweight processing: Gemini 3.5 Flash-Lite. Wine identity extraction uses Gemini 3.8 Flash.
Reviews and Grand: Gemini 3.8 Flash. Study quizzes and written scoring: Gemini 3.7 Flash.
Schema, facts, language, plan projection and policy checks
Reference result or automatic refund

Why this architecture

The design follows four engineering principles rather than treating every evaluation and study task as the same model request.

01

Frugal computation

Deterministic code handles predictable interactions. Smaller models handle ambiguity, while higher-precision inference is reserved for work where an error costs more than tokens.

02

Grounded generation

Verified Wine Library data is retrieved before generation where available. Facts and recommendations are separated so missing evidence is not disguised as certainty.

03

Fail closed on critical work

A failed high-precision assessment is not silently downgraded to a weaker model. The user receives a retry and the ticket is restored.

04

Idempotent billing

One task has one server-issued request key. Retry and provider fallback cannot create a second charge.

Reasoning policy

Reasoning intensity is assigned by task risk. The public labels describe policy; private prompts, exact thresholds and reasoning traces remain server-only.

TaskModelIntensity
Multiple-choice question generation Gemini 3.7 Flash Low
Written-answer scoring Gemini 3.7 Flash Medium
Translation and extraction Gemini 3.5 Flash-Lite Minimal
Structured tasting review Gemini 3.8 Flash Medium
Material-difference adjudication Gemini 3.8 Flash High

Ticket integrity

Tickets follow the purpose of the task, not the provider selected behind the scenes.

  • Reopening saved reviews uses 0 tickets. Starting a new review follows the server quote, even if a cache is available.
  • Unusable results restore any tickets reserved for the request.
  • New reviews show the server-confirmed ticket cost before starting. Reopening saved reviews is free.
  • Study sets use the fixed price shown before the user confirms the start.
  • Fallback and automatic retry never consume an additional ticket.
  • No usable response means an automatic refund.
  • Resuming an already-paid task does not charge again.

Fallback without silent quality loss

  • Reviews and Grand: Gemini 3.8 Flash. Study quizzes and written scoring: Gemini 3.7 Flash.
  • Translation uses Gemini 3.5 Flash-Lite with bounded retries and Gemini 3.8 Flash validation fallback.
  • Structured tasting and Grand: Gemini 3.8 Flash failure never falls down to a weaker assessment model.
  • Model changes remain invisible to billing: one task, at most one charge.

Confidentiality and privacy boundary

  • The public catalog identifies approved technologies, but the client cannot choose or override a runtime model.
  • Assessment instructions, private references, routing thresholds and safeguards remain server-only.
  • Reasoning traces are never displayed to users or written to Firestore or application logs.
  • Provider keys remain in Secret Manager and never enter the app, PWA or public repository.
  • Grand reference material remains on the approved Gemini path while Mistral validation is in progress.
  • Production approval for Mistral requires the EU regional stateless API, API training exclusion and verified ZDR eligibility; these controls are not presented as active before operational verification.
  • Operational logs contain metadata such as task class, latency, token totals and error category—not prompts, messages, email addresses or images.

Versioned by design

A living architecture

The model catalog, eight localized pages, structured data, sitemap and AI-readable summary are generated together. A release test rejects missing locales, false live-status claims and drift from pinned runtime versions.

Primary technical references

Architecture questions

Does the mobile or web client choose the AI model?

No. The authenticated server classifies the task and applies a versioned model policy.

Will fallback consume another ticket?

No. Retry and provider fallback share the same idempotent request and cannot create a second charge.

Are Mistral models already serving production reviews?

No. They remain under multilingual wine-domain validation and are shown as in validation until production release checks pass.

Are Maison Apéro's assessment instructions public?

No. Public documentation explains the architecture, while prompts, private references, thresholds and reasoning traces remain confidential on the server.