Imaginez un chef d'orchestre qui ne joue d'aucun instrument, mais qui sait exactement quel musicien solliciter et à quel moment. L'appel de fonctions (function calling) donne ce pouvoir à un modèle de langage : plutôt que de répondre uniquement par du texte, le modèle peut décider d'invoquer un outil externe — une API météo, une base de données, une calculatrice — en produisant un appel structuré que votre code exécute.
Comment ça marche
On fournit au modèle un schéma décrivant chaque fonction disponible : son nom, sa description et ses paramètres (souvent en JSON Schema). Face à une requête, le modèle ne calcule pas lui-même le résultat : il génère un objet structuré du type :
name: la fonction choisie ;arguments: les paramètres extraits de la demande de l'utilisateur.
Votre application exécute réellement la fonction, puis renvoie le résultat au modèle, qui rédige enfin une réponse naturelle. Le LLM ne touche jamais au monde extérieur lui-même ; il décide seulement quoi appeler et avec quoi.
Pourquoi c'est central
| Sans appel de fonctions | Avec appel de fonctions |
|---|---|
| Connaissances figées à l'entraînement | Données fraîches et temps réel |
| Calculs approximatifs | Résultats exacts délégués au code |
| Texte uniquement | Actions concrètes (envoyer, réserver, requêter) |
C'est la brique qui transforme un chatbot en agent IA : la boucle « le modèle propose un appel le code exécute le modèle observe recommence » est le cœur des architectures agentiques modernes.
Limites
Le modèle peut halluciner des arguments, choisir la mauvaise fonction, ou en enchaîner trop. La validation des schémas et le contrôle des droits d'exécution restent indispensables côté développeur.
L'appel de fonctions ne rend pas le modèle plus intelligent : il le rend utile, en le branchant sur le monde réel.