← 返回列表

Résumé technique du Function Calling

Résumé technique du Function Calling

1. Définition

Le Function Calling est un mécanisme qui permet aux développeurs de décrire des outils externes disponibles (tels que des API) à un grand modèle de langage (LLM) via un schéma JSON. Lorsque le modèle juge nécessaire d'appeler un outil pour répondre à une question utilisateur, il génère des données JSON structurées tool_calls indiquant le nom de la fonction et les paramètres à appeler. Le programme hôte analyse et exécute cet appel, renvoie le résultat au modèle, qui génère ensuite la réponse finale.

2. Principe fondamental et problèmes résolus

  • Essence : Une boucle fermée de « deux tours de dialogue + exécution intermédiaire ». Au premier tour, le modèle décide et génère une demande d'appel d'outil ; le code intermédiaire exécute l'outil ; au second tour, le modèle génère la réponse finale basée sur le résultat d'exécution.
  • Problèmes résolus : Résout le problème précédent où l'appel d'outil par le modèle reposait sur une analyse en langage naturel instable et sujette aux erreurs (if/else), en améliorant la standardisation et la précision grâce à une sortie structurée.

3. Répartition des rôles (analogie de délégation de tâches)

  • Développeur (RH) : Définit les outils, rédige le schéma JSON décrivant les fonctionnalités, les paramètres, etc.
  • Modèle LLM (manager) : Comprend la description de l'outil, décide s'il faut appeler, quel outil appeler et quels paramètres utiliser, et génère une demande d'appel structurée (tool_calls). Le modèle prend uniquement les décisions et génère du texte, n'exécute pas le code lui-même.
  • Exécuteur / code hôte (employé) : Analyse la demande tool_calls du modèle, exécute réellement la fonction ou l'appel API correspondant, et renvoie le résultat.

4. Définition d'outil (schéma JSON)

Le schéma est le « manuel d'instructions » de l'outil, les informations clés incluent :
- name : Identifiant unique de l'outil.
- description : Cruciale, le modèle se fie entièrement à cette description pour décider d'appeler ou non l'outil. Plus la description est claire et précise, plus la décision du modèle est juste.
- parameters : Définit les paramètres requis par l'outil, leur type, description, contraintes (valeurs d'énumération, obligatoire ou non, etc.).

5. Processus d'appel complet

L'article, à travers un exemple de code de requête météo, montre le processus complet allant de la question de l'utilisateur, du premier appel au modèle avec la définition de l'outil, du retour du tool_calls par le modèle, de l'exécution de la fonction par le code, de l'insertion du résultat dans l'historique de la conversation avec le rôle "tool", jusqu'à la génération de la réponse finale en langage naturel par le modèle.

6. Fonctionnalité avancée - Appels d'outils parallèles

Lorsque la question de l'utilisateur nécessite la collaboration de plusieurs outils (par exemple, interroger simultanément la météo de plusieurs villes), le modèle peut générer en une seule réponse une liste contenant plusieurs tool_calls. Le code hôte peut exécuter ces appels en parallèle, puis renvoyer tous les résultats au modèle pour synthèse, améliorant ainsi l'efficacité.

评论

暂无已展示的评论。

发表评论(匿名)