Skip to content

ADR-0003 — Mistral EU-first model policy; Meta/Llama excluded for minor data

Status: accepted Date: 2026-06-01

Context

pinky-ai is used in products that process data for EU end-users, including PLUTO_SCHOOL which handles data for minors. The US CLOUD Act allows US authorities to compel US-based cloud providers to disclose data processed on their infrastructure, regardless of where the data physically resides.

Meta's Llama models, hosted via AWS in Cortex, are subject to this risk. Using them as the default in a French B2B SaaS product aimed at schools introduces a legal exposure that is hard to explain to customers.

Decision

Model selection follows this hierarchy:

Task type Default model Vendor Rationale
factual_simple, scoring_batch mistral-7b / mistral-large2 Mistral AI (FR) GDPR-native, EU data processing, no CLOUD Act
explanation claude-haiku-4-5 Anthropic Quality-critical interactive path; Anthropic's DPA acceptable
complex_reason claude-sonnet-4-6t Anthropic Best reasoning quality for tutoring; used sparingly

Meta models (llama3.1-8b, llama3.1-70b) are not used in any Pluto product.

This policy is encoded in PinkyAI.ROUTING_RULES and MODEL_MAP. Overriding to a Meta model requires an explicit call-site argument and a documented exception.

Consequences

  • Mistral AI pricing is comparable to Meta Llama equivalents in Cortex — no cost regression.
  • Products outside the minor-data perimeter may relax this rule by overriding task_type routing at instantiation time.
  • When Snowflake adds a native EU-hosted Anthropic option, re-evaluate claude-* entries.
  • mistral-7b is used for internal summarisation (token compression, history résumé) since output quality is secondary to cost there.