La fonction d’appel

L'appel de fonction permet aux modèles de langue d'utiliser des outils externes en générant des sorties structurées qui spécifient les appels de fonction, leur permettant d'interagir avec les API et d'autres systèmes.

L'appel de fonction est une technique qui permet aux grands modèles de langage (LLMs) d'interagir avec des outils externes et des API. Au lieu de simplement générer du texte, le LLM est entraîné à produire des données structurées, telles que JSON, qui spécifient une fonction à appeler et ses arguments. Cela permet au LLM de déléguer des tâches, de récupérer des informations et d'effectuer des actions au-delà de ses capacités inhérentes de génération de texte. Le processus implique généralement de définir un ensemble de fonctions avec des descriptions et des schémas d'entrée/sortie, que le LLM peut ensuite utiliser pour générer des appels appropriés. Cela élargit l'utilité des LLMs, leur permettant d'être intégrés dans des flux de travail et des applications qui nécessitent des données ou des actions externes.

        graph LR
  Center["La fonction d’appel"]:::main
  Pre_logic["logic"]:::pre --> Center
  click Pre_logic "/terms/logic"
  Rel_api["api"]:::related -.-> Center
  click Rel_api "/terms/api"
  Rel_chain_of_thought["chain-of-thought"]:::related -.-> Center
  click Rel_chain_of_thought "/terms/chain-of-thought"
  Rel_function["function"]:::related -.-> Center
  click Rel_function "/terms/function"
  classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
  classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
  classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
  classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
  linkStyle default stroke:#4b5563,stroke-width:2px;

      

🧠 Test de connaissances

1 / 3

🧒 Explique-moi comme si j'avais 5 ans

C'est comme demander à un assistant super intelligent de chercher quelque chose dans un livre spécifique (la fonction) et de vous donner la réponse, au lieu de simplement deviner.

🤓 Expert Deep Dive

L'appel de fonctions, dans le contexte des LLM, représente un changement de paradigme, passant de la génération de texte pure à un comportement d'agent, permettant aux LLM d'agir comme des orchestrateurs de ressources de calcul externes. Architecturalement, il repose sur la capacité du LLM à effectuer des prédictions structurées, en produisant un schéma prédéfini représentant les signatures et les arguments des fonctions. Ce schéma est généralement défini par le développeur, fournissant au LLM un "ensemble d'outils" qu'il peut utiliser. Le processus implique que le LLM analyse la requête en langage naturel de l'utilisateur, identifie l'intention et la mappe aux fonctions disponibles. Il génère ensuite un objet JSON respectant le schéma, spécifiant le nom de la fonction et ses arguments, souvent dérivés de l'extraction d'entités et du remplissage de champs à partir de l'invite. Une couche d'exécution distincte (le "tool runner" ou "agent framework") intercepte ce JSON, le valide et appelle l'API externe ou le code correspondant. La valeur de retour de l'outil est ensuite réinjectée dans le contexte du LLM, lui permettant de synthétiser une réponse finale ou d'enchaîner d'autres appels de fonctions. Ce mécanisme améliore considérablement l'utilité des LLM en ancrant leurs réponses dans des données en temps réel et en permettant des opérations complexes en plusieurs étapes. Les compromis incluent le potentiel d'attaques par injection d'invite ciblant le mécanisme d'appel de fonctions, la complexité de la gestion des définitions d'outils et de la gestion des erreurs, ainsi que la surcharge computationnelle de la boucle d'exécution. Assurer que le LLM mappe correctement l'intention à la bonne fonction et aux bons arguments, surtout avec de nombreux outils ou des noms ambigus, constitue un défi critique. Des techniques telles que l'apprentissage par quelques exemples (few-shot learning) et le fine-tuning sont employées pour améliorer la précision de ce mappage.

🔗 Termes associés

Prérequis:

📚 Sources