PAWRISE CARE
Care Engine

Pawrise embarque un assistant conversationnel (« Care Engine ») qui contextualise l'état d'un chien à partir des données du collier, répond aux questions du propriétaire sur la base d'un corpus vétérinaire validé, et organise un handoff structuré vers un vétérinaire partenaire quand c'est pertinent.

⚖️

Règle d'or

L'assistant n'établit jamais de diagnostic médical (Code rural, Art. L243-1) : il explique, oriente, et invite à consulter.

Architecture : un pipeline LangGraph déterministe borné à 6 nœuds, déployé sur Azure OpenAI Europe. La mémoire long-terme est déléguée au backend Pawrise via tool calls (source de vérité unique).

Pipeline · LangGraph en 6 nœuds

Un pipeline déterministe et borné : chaque étape est testable et journalisée. Le LLM est cantonné à sa tâche, dans une cage.

EntréeQuestion + contexte (profil, télémétrie 24h, alerte)1Circuit BreakerLLM nano2Query UnderstandingLLM nano3RetrievalBM25 + dense4Relevance FilterReranker5GénérationLLM principal6Post-LLM GuardrailLLM nanoSafe Response (canned) · Escalade vétérinaireAudit log · append-onlyChaque conversation tracée (input, retrieval, prompts, output) · rétention 5 ans
1

Circuit Breaker

LLM nano

Classifie l'intention (abus, jailbreak, hors-scope, demande de diagnostic, clean). Si non-clean → branche dédiée, sans RAG ni LLM principal.

2

Query Understanding

LLM nano

Reformule la question en termes vétérinaires canoniques et déclenche un tool call télémétrie si besoin.

3

Retrieval

RAG

Recherche hybride BM25 (mots-clés) + dense (sémantique), fusion par Reciprocal Rank Fusion. Top-20.

4

Relevance Filter

Reranker

Reranker dédié (Cohere Rerank 3.5 multilingue) : top-20 → top-5 chunks les plus pertinents (~100 ms).

5

Génération

LLM principal

LLM principal sous contrainte : génère la réponse + citations + signal d'escalade, tools bornés.

6

Post-LLM Guardrail

LLM nano

Détecte le langage « diagnostic », vérifie l'ancrage (chaque claim médical = une source) et force l'escalade selon les règles métier.

Garde-fous · défense en profondeur

Trois couches indépendantes : l'échec de l'une n'expose pas le système. Non négociable vu le Code rural.

Couche 1 · pré-LLM

Circuit Breaker

Classifier d'intention. Tout ce qui n'est pas « clean » est dérouté vers une Safe Response ou une escalade, sans atteindre le LLM principal.

Couche 2 · raisonnement

Contrainte

System prompt strict + whitelist de tools + obligation de citer le corpus pour tout claim médical.

Couche 3 · post-LLM

Guardrail

Détection « diagnostic-like », contrôle d'ancrage sur les sources, et déclenchement forcé de l'escalade selon des règles explicites.

Périmètre

Ce que l'assistant fait, et ce qu'il ne fait jamais, par design.

✓ Ce qu'on fait

  • Q&A santé / comportement à partir du corpus véto + télémétrie de l'animal
  • Contextualisation d'une alerte collier (fréquence cardiaque, activité, geofence)
  • Handoff vétérinaire structuré (dossier pré-consultation → Vet Portal)
  • Refus systématique du diagnostic + invitation à consulter en cas de doute
  • Audit complet de chaque conversation (rétention 5 ans)

✕ Ce qu'on ne fait jamais

  • Diagnostic médical explicite (réservé aux vétérinaires, Code rural L243-1)
  • Prescription, posologie, recommandation médicamenteuse
  • Gestion d'urgences vitales (toujours rediriger vers un urgentiste 24h/24)
  • Conseils de dressage / comportement (hors thèse produit)
  • Conseils nutritionnels précis (demande un nutritionniste vétérinaire)

Parcours clés

De l'alerte collier à la conversation, puis au handoff vétérinaire structuré.

O3 · Alerte → Chat

  1. Le collier détecte une anomalie
  2. Push notification au propriétaire
  3. Ouverture du chat avec contexte pré-injecté (profil + télémétrie 24h + détail alerte)
  4. Le propriétaire pose sa question
  5. Pipeline LangGraph (6 nœuds)
  6. Réponse + bouton « Contacter un vétérinaire » si escalade
  7. Tout est journalisé (audit)

O5 · Handoff vétérinaire

  1. Le propriétaire clique « Contacter un vétérinaire »
  2. Le Care Engine collecte le dossier (profil + 30j télémétrie + alertes + extraits chat)
  3. Le LLM produit une synthèse structurée (chronologie, symptômes, urgence)
  4. Génération PDF + JSON
  5. Push au Vet Portal
  6. Le propriétaire choisit le vétérinaire partenaire
  7. Le vétérinaire reçoit et ouvre le dossier structuré

Coût des modèles

Un budget réel et maîtrisé grâce à la cascade : un modèle par nœud, le plus économique qui fait le travail.

Chaque nœud du pipeline utilise le modèle le moins cher qui fait le travail : les classifications et reformulations passent par un petit modèle, seul le nœud de génération mobilise le gros modèle. C'est la cascade : elle concentre le coût là où il crée de la valeur.

NœudModèlePrix (entrée / sortie, 1M tokens)
1 · Circuit Breakernano · GPT-5.4-nano0,20 $ / 1,25 $
2 · Query Understandingnano · GPT-5.4-nano0,20 $ / 1,25 $
3 · Retrieval (embeddings)text-embedding-3-large + BM250,13 $ (entrée seule)
4 · Relevance FilterCohere Rerank 3.5 multilingue2 $ / 1 000 recherches
5 · Générationprincipal · GPT-5.42,50 $ / 15 $
6 · Post-Guardrailnano · GPT-5.4-nano0,20 $ / 1,25 $

Coût par conversation

~0,03 à 0,05 €

  • ~88 % · Génération (nœud principal)
  • ~8 % · Reranking (Cohere)
  • ~3 % · 3 nœuds nano (classification, reformulation, garde-fou)
  • < 1 % · Embeddings

Calcul à partir des prix publics (affichés en dollars, parité dollar/euro retenue par simplicité) et d'environ 3 000 tokens cumulés sur les trois nœuds nano, 4 500 tokens d'entrée et 500 de sortie sur le nœud principal, et un reranking. Ce coût valide la cible de la spec (« moins de 0,05 € par conversation ») avec des chiffres réels.

La cascade économise environ 20 % par rapport à un pipeline qui ferait tout passer par le gros modèle ; et le small-talk, qui saute le RAG, coûte environ 5 fois moins qu'une réponse santé.

Projection mensuelle

StadeVolumeCoût IA
Démo / soutenance~300 conversations / mois~12 à 15 € / mois
Premiers utilisateurs (~1 000)~5 000 conversations / mois~200 à 250 € / mois
Scale (~10 000 utilisateurs)~50 000 conversations / mois~2 000 à 2 500 € / mois

Alternative souveraine (prévue par l'ADR-002) : bascule vers Mistral (entreprise française, hébergement UE, modèles open-weight) via l'interface LLMProvider, sans toucher au pipeline. Mistral Small 3 (0,10 $ / 0,30 $) en petit modèle et Mistral Large 2 (2 $ / 6 $) en principal donnent un coût équivalent avec des données 100 % en Union européenne.

Décisions & objectifs

Les arbitrages d'architecture clés et les indicateurs de succès (MVP).

Décisions d'architecture (ADR)

ADR-001Pipeline LangGraph borné (pas d'agent autonome)

6 nœuds déterministes, chaque étape testable. La responsabilité juridique est portée par le pipeline ; un agent libre serait indéfendable face au Code rural.

ADR-002Azure OpenAI Europe + cascade

Data residency EU stricte, pas d'entraînement sur les données. Cascade nano/principal pour contenir le coût. Interface LLMProvider abstraite (bascule possible).

ADR-003Reranker dédié (pas de filtre LLM)

Cohere Rerank 3.5 multilingue pour passer de top-20 à top-5. Latence ~10× meilleure qu'un filtre LLM (~100 ms vs 1,5-3 s), meilleure pertinence et pas de « rationalisation ». Interface RelevanceFilter pour bascule.

ADR-004Mémoire long-terme = backend Pawrise

Pas de stockage d'état dans le chatbot : il interroge le Core API par tool calls (profil, télémétrie, alertes, historique). Source de vérité unique, pas de duplication. Contrainte : tools p95 < 200 ms, fallback gracieux.

ADR-005Sortie JSON structurée (pas de markdown nu)

Chaque réponse est un JSON (texte, citations, signal d'escalade, actions suggérées, métadonnées). Le front affiche les actions sans parser du markdown fragile : découplage front/back propre.

ADR-006RGPD progressif (MVP léger, V1 complet)

MVP : masquage regex des PII avant envoi au LLM, jamais d'identifiants ni de GPS bruts (le LLM ne voit que « Rex, golden 5 ans, activité -30 % »). V1 : Microsoft Presidio + dictionnaire vétérinaire. Baseline Azure EU + DPA.

ADR-007Garde-fous 3 couches

Défense en profondeur : l'échec d'une couche n'expose pas le système. Non négociable vu le Code rural.

ADR-008Retrieval hybride (BM25 + dense)

BM25 capte les termes techniques exacts (Lyme, dysplasie), dense capte la similarité conversationnelle. Fusion RRF.

ADR-009Query Understanding avant le RAG

Un nœud reformule la question en termes vétérinaires canoniques et déclenche un tool télémétrie si besoin, avant la recherche. Coût : un appel LLM nano (~100 ms) ; gain : meilleur recall@5.

ADR-010Audit trail append-only

Log immuable de chaque conversation (input, prompts, retrieval, output, décisions guardrail). Rétention 5 ans, base de la défense juridique et de l'eval.

Objectifs de succès (KPIs)

0faux diagnostic sur le golden set (conformité)
≥ 95 %citation présente quand claim médical
5–15 %taux d'escalade approprié
p95 < 8 sréponse complète
≥ 0,85recall@5 du retrieval
≥ 95 %détection jailbreak