ADR-02, Stack IA
Claude pour le LLM, OpenAI pour les embeddings, Whisper pour l'audio. Pourquoi.
Statut : Accepté Date : 2026-04 Sujet : Choix des providers IA pour Reciprok
Contexte
Reciprok a besoin de 4 capacités IA distinctes :
- LLM pour le chat, le tool calling, l'analyse, la structuration de la KB
- Embeddings pour la recherche sémantique sur 70k+ membres
- Transcription audio pour les messages vocaux et les audios de présentation des membres
- (Optionnel) TTS pour faire parler l'IA aux utilisateurs
Chaque capacité peut venir d'un provider différent. Le choix doit équilibrer qualité, coût, latence, et lock-in.
Décisions
LLM : Claude (Anthropic)
Modèle par défaut : claude-sonnet-4-5 (Sonnet 4.6)
Modèle pour les tâches complexes : claude-opus-4-6 (Opus 4.6, ponctuel)
Pourquoi Claude vs GPT-4 :
- Tool use natif et fiable, Claude est excellent en tool calling structuré, c'est exactement ce qu'on fait
- Excellent en français, la majorité des descriptions de membres et des emails sont en français
- Prompt caching, réduit les coûts de 90% sur les contextes répétés (system prompt, contexte de demande)
- Pas de drift de personnalité, les réponses restent cohérentes sur les longues conversations
- Streaming SSE simple, supporté nativement par Elysia
Pourquoi pas GPT-4 :
- Plus cher en input cached
- Tool calling moins propre (parfois hallucine des arguments)
- Moins fiable sur les tâches structurées (extraction, JSON)
Pourquoi pas un modèle open source self-host (Llama, Mistral) :
- Pas la priorité au démarrage. La qualité d'un Claude Sonnet est nettement au-dessus
- Coût d'opération > coût API pour les volumes de Reciprok
- À reconsidérer si les coûts deviennent un problème (>5000€/mois en API)
Embeddings : OpenAI text-embedding-3-small
Dimensions : 1536
Pourquoi :
- Très bon marché, $0.02 / 1M tokens, soit ~$0.40 pour embedder 70k membres une fois
- Qualité excellente en français malgré "small" dans le nom
- Compatible pgvector out of the box
- API stable depuis longtemps, peu de risque de breaking changes
Alternatives considérées :
text-embedding-3-large(3072 dims), meilleur recall mais 2x plus cher et 2x plus de stockage. Overkill pour notre cas- Voyage AI
voyage-3, légèrement meilleure qualité sur certains benchmarks, mais provider plus jeune et moins de support communautaire - Cohere
embed-multilingual-v3, bon en multilingue mais plus cher - bge-large-fr (HuggingFace), gratuit mais self-host = complexité supplémentaire
Transcription audio : OpenAI Whisper API
Pourquoi :
- Excellent en français (français est une des langues principales d'entraînement)
- Pay-per-minute, $0.006/min, dérisoire à l'échelle de Reciprok
- API simple, intégration en quelques lignes
- Pas de quotas restrictifs au démarrage
Alternatives considérées :
- Deepgram, plus rapide, supporte le streaming, mais moins bon en français pur
- AssemblyAI, bon en multilingue, plus cher
- Whisper self-host, gratuit mais nécessite un GPU, infra à monter, ROI négatif au volume Reciprok
TTS (génération vocale) : Reporté
Pas implémenté au MVP. Quand on l'ajoute :
- OpenAI TTS (
tts-1), qualité OK, $15 / 1M caractères, cache audio sur S3 - ElevenLabs, qualité supérieure mais beaucoup plus cher
- Cartesia, challenger récent, latence très faible, à surveiller
Coûts prévisionnels
Disclaimer : tarifs Anthropic et OpenAI affichés en avril 2026, à vérifier sur les pages officielles avant chaque déploiement. Les ordres de grandeur ci-dessous sont calculés avec prompt caching activé côté Anthropic.
Estimation pour un volume cible de 100 demandes/mois avec un usage soutenu de l'IA :
| Capacité | Provider | Coût mensuel estimé |
|---|---|---|
| Chat LLM (in/out, prompt caching activé) | Anthropic | ~50-80€ |
| Embeddings (refresh members + queries) | OpenAI | ~3-5€ |
| Transcription Whisper (audios membres + vocaux) | OpenAI | ~10€ |
| Total | ~65-95€/mois |
À surveiller : si l'usage du chat IA explose (chaque utilisateur converse intensivement sur chaque demande), le coût Anthropic peut monter à 200-300€/mois. Sans prompt caching, ces chiffres seraient 3-5× plus élevés, c'est pour ça qu'il est obligatoire dès le jour 1.
Voir operations/costs pour le détail du budget global et les plafonds.
Garde-fous
À implémenter dès le jour 1 :
- Compteur de tokens par utilisateur, visible dans une page admin
- Rate limit par utilisateur (ex: 60 messages chat / heure)
- Timeout sur les tools (5s max par appel de tool)
- Max iterations dans la boucle agentique (10 tool uses max avant de revenir à l'humain)
- Cap de coût mensuel, alerte au-delà de 200€
Conséquences
Positives :
- Stack moderne, éprouvée, simple à intégrer
- Coûts maîtrisés au démarrage
- Possibilité de switcher de provider sans refonte (interfaces claires)
Négatives :
- Dépendance API externe (latence réseau, downtime des providers)
- Coûts qui peuvent croître avec le volume, à monitorer
- Pas de full-control sur les modèles (vs self-host)