Introduction au Function Calling
Mis à jour le 29 juillet 2026
Pourquoi le function calling change tout
Les grands modèles de langage comme ceux de Mistral AI sont extraordinairement doués pour comprendre et générer du texte. Dans le monde réel, cela ne suffit jamais tout à fait. Répondre à « où en est ma commande ? » suppose d’interroger une base de données. Confirmer un règlement suppose de consulter, voire de déclencher un paiement. Proposer un rendez-vous suppose de lire un calendrier. Le function calling — l’appel de fonctions — est le mécanisme qui permet à un LLM de franchir cette frontière entre le texte et l’action.
Le principe tient en trois gestes. Le modèle décide qu’il doit appeler une fonction externe, il génère les arguments nécessaires au format JSON, puis il laisse votre code exécuter la fonction et lui renvoyer le résultat. À aucun moment il ne touche directement vos systèmes : c’est vous qui gardez le contrôle.
L’architecture LLM + Outils
Tout repose sur une séparation stricte des responsabilités, et il vaut la peine de la formuler précisément parce que tout le reste du cours en découle. Le modèle comprend la requête de l’utilisateur, choisit la bonne fonction et rédige les arguments. Votre code, et lui seul, exécute réellement cette fonction, accède aux données et renvoie le résultat. Le modèle reprend alors la main pour transformer ce résultat brut en une réponse naturelle.
L’avantage est considérable : le modèle n’a jamais accès direct à vos systèmes et ne peut pas exécuter de code arbitraire. Il se contente d’exprimer une intention — « j’aimerais appeler telle fonction avec tels paramètres » — et c’est votre application qui décide ce qu’elle en fait. Une demande de suppression de compte peut ainsi être refusée, journalisée ou soumise à confirmation avant toute exécution.
# Vue simplifiée du flux
utilisateur = "Quel est le statut de ma commande #4521 ?"
# 1. Le modèle analyse et décide
# → "Je dois appeler get_order_status avec order_id=4521"
# 2. Votre code exécute
resultat = get_order_status(order_id=4521)
# → {"status": "expédiée", "tracking": "FR123456789"}
# 3. Le modèle formule la réponse
# → "Votre commande #4521 a été expédiée. Voici votre numéro de suivi : FR123456789."
Observez le trajet de la donnée dans cet exemple : le numéro de suivi FR123456789 n’existe nulle part dans les connaissances du modèle. Il provient de votre système, transite par le message de résultat, et se retrouve dans une phrase que l’utilisateur peut lire. C’est exactement ce que le function calling rend possible.
Quels modèles Mistral supportent le function calling ?
Tous les modèles majeurs de Mistral prennent en charge cette fonctionnalité. Du côté des généralistes, vous disposez de Mistral Large 3, Medium 3.5, Small 4 et Ministral 3 dans ses trois tailles (14B, 8B, 3B). Du côté des modèles spécialisés, Devstral 2.0, Devstral Small 2 et Codestral l’exposent également. Magistral Medium et Small le proposaient aussi, mais cette famille est depuis dépréciée : le raisonnement est désormais intégré à Mistral Small 4 et Medium 3.5.
Le choix se fait selon votre cas d’usage. Pour des appels de fonctions complexes, avec beaucoup de paramètres et des arbitrages subtils entre plusieurs outils, Mistral Large 3 reste le plus fiable. Pour des cas simples en production à haut débit — un assistant qui interroge deux ou trois fonctions bien cadrées, des milliers de fois par jour — Mistral Small 4 offre un excellent rapport coût/performance.
Cas d’usage typiques
Les applications se ressemblent moins qu’on ne le croit. Un assistant conversationnel branché sur un CRM, un ERP ou une base de tickets répond à des questions de consultation : le modèle lit, ne modifie rien. L’automatisation va plus loin en déclenchant des workflows — envoyer un email, créer une tâche, mettre à jour un statut — et engage donc une responsabilité bien plus lourde côté code. En recherche augmentée (RAG), le function calling déplace la décision : plutôt que d’interroger systématiquement une base vectorielle, on laisse le modèle décider quand et comment le faire, ce qui évite d’injecter du contexte inutile.
Deux usages plus ambitieux complètent le tableau. Les agents autonomes enchaînent plusieurs appels de fonctions pour accomplir une tâche complexe, chaque résultat orientant l’appel suivant. Les interfaces naturelles, enfin, permettent à un utilisateur de piloter une application entière par la conversation, sans jamais apprendre où se trouve tel bouton.
Ce que vous allez apprendre dans ce cours
Le parcours compte quatorze leçons et suit une progression volontairement linéaire. Vous commencerez par les concepts fondamentaux : le processus en cinq étapes et les schémas JSON qui décrivent vos fonctions. Vous passerez ensuite à l’implémentation Python — écrire, appeler, exécuter et chaîner des fonctions avec le SDK Mistral. Le troisième bloc aborde les fonctionnalités avancées : appels parallèles, options de tool_choice, gestion d’erreurs et sécurité. Le cours se referme sur des cas d’usage réels — un tracker de paiements, un CRM automatisé — et sur les bonnes pratiques de production.
À la fin de ce cours, vous serez capable de concevoir, implémenter et déployer un système de function calling robuste avec l’API Mistral.
Points clés à retenir
- Le function calling permet au modèle de demander l’exécution d’une fonction, sans l’exécuter lui-même
- L’architecture repose sur une séparation stricte : le modèle génère les arguments, votre code exécute
- Tous les modèles Mistral majeurs supportent cette fonctionnalité
- Le function calling est la brique de base des agents AI et de l’automatisation conversationnelle