Aller au contenu

Chapitre des Plans Bleus - Appel d'Outils

L'appel d'outil (Tool Call), également connu sous le nom d'appel de fonction (Function Calling), fait référence à la capacité d'un grand modèle à déterminer, en fonction du contenu de la conversation, s'il est nécessaire de faire appel à des outils/fonctions externes pour obtenir des informations ou effectuer des opérations. Le modèle renverra le nom de la fonction à appeler ainsi que ses paramètres, et après que le développeur aura effectué l'appel réel, le résultat sera retourné au modèle pour poursuivre la conversation.

AIChatPlus prend en charge la fonction Tool Call pour les plateformes suivantes :

  • OpenAI
  • Claude
  • Gemini
  • Ollama
  • CllamaServer (serveur llama.cpp)

Concept clé

Définition de l'outil

La définition d'un outil comprend les champs clés suivants :

  • Type: Type d'outil, actuellement uniquement Function est pris en charge
  • Nom : Nom de la fonction, doit être composé des caractères a-z, A-Z, 0-9, d’un tiret bas ou d’un trait d'union, longueur maximale de 64
  • Description: Description de la fonction, le modèle utilisera cette description pour déterminer quand appeler cette fonction.
  • Propriétés : Liste des paramètres de la fonction, chaque paramètre inclut des attributs tels que Nom, Description, Type, Obligatoire, etc.

Fluxus d'Appel d'Outil

Le processus complet de Tool Call est le suivant :

  1. Envoyer une requête : Envoyez une requête de chat incluant les définitions des Outils au modèle.
  2. Évaluation du modèle : Le modèle détermine s'il est nécessaire d'utiliser un outil en fonction du contenu de la conversation
  3. Retour d'appels d'outils: Si un appel est nécessaire, le modèle renvoie le nom de la fonction et les paramètres à appeler
  4. Exécution de la fonction : Les développeurs effectuent l'appel réel de la fonction en fonction des informations retournées.
  5. Retour des résultats : Envoyer les résultats de l'exécution de la fonction comme nouveau message au modèle
  6. Continuer la conversation : Le modèle génère une réponse finale basée sur les résultats de la fonction.

Exemple d'appel d'outil OpenAI

Voici un exemple avec OpenAI pour démontrer comment utiliser la fonctionnalité Tool Call.

1. Définir Outil

Commencez par créer la définition de l'outil. Dans cet exemple, nous définissons une fonction get_delivery_date pour obtenir la date de livraison d'un colis.

guide bludprint

2. Définir les paramètres de l'outil

Ajouter des Propriétés à Tool. Dans cet exemple, ajouter un paramètre order_id, de type string, défini comme obligatoire.

guide bludprint

3. Configuration Options

Créer le nœud OpenAI Chat Request Options, configurer l'API Key et le Model, puis connecter le tableau Tools aux Options.

guide bludprint

4. Créer des Messages

Créer un message utilisateur pour poser une question concernant un colis express.

guide bludprint

5. Envoyer une demande et traiter l'appel d'outil

Créez le nœud Send OpenAI Chat Request In World et liez-le à l'événement On Message Finished. Dans le rappel de l'événement, récupérez le tableau ToolCalls à partir de Payload.

Lorsque le modèle décide d'appeler un outil, le tableau ToolCalls n'est pas vide. Parcourez le tableau pour obtenir les informations de chaque appel d'outil (Tool Call) :

  • Id : Identifiant unique de l'appel d'outil
  • FunctionName: Nom de la fonction à appeler
  • FunctionArguments: Arguments de la fonction (format chaîne JSON)

guide bludprint

6. Exécuter la fonction et retourner le résultat

Selon FunctionName, exécuter la logique de fonction correspondante (dans cet exemple, simuler l'obtention du délai de livraison d'un colis postal), puis renvoyer le résultat au modèle sous forme de message de type ToolCallResult.

Pour créer un nouveau Message, vous devez configurer :

  • Rôle: Défini sur Outil
  • Contenu : Résultat de l'exécution de la fonction
  • ToolCallResults : Ajoutez un FAIChatPlus_ChatRequestToolCallResult, configurez Id (en utilisant l'Id précédent de Tool Call), FunctionName et FunctionResult

guide bludprint

7. Continuer la conversation

Ajoutez le message contenant le résultat de ToolCallResult à l'historique des messages, puis renvoyez la requête. Le modèle générera une réponse finale en langage naturel en fonction des résultats retournés par la fonction.

guide bludprint

Le schéma complet de l'appel d'outil ressemble à ceci :

10. Résultats d'exécution

Utilisation avancée

Plusieurs outils

Vous pouvez définir plusieurs outils simultanément, et le modèle choisira quelle(s) fonction(s) appeler selon ses besoins.

guide bludprint

Types de paramètres complexes

Les paramètres d'outil prennent en charge plusieurs types. Il est possible d'ajouter des définitions de paramètres plus complexes, comme des types énumération, via les champs ExtraJsonString ou ExtraJsonObject :

{"enum": ["Beijing", "HongKong"]}

guide bludprint

Autres plateformes

L'utilisation des appels d'outils (Tool Call) pour Claude, Gemini, Ollama et CllamaServer est similaire à celle d'OpenAI. Il suffit de remplacer les nœuds Request et Options correspondants. Les structures de données clés (FAIChatPlus_ChatRequestTool, FAIChatPlus_ChatResponseToolCall, etc.) sont communes à toutes ces plateformes.

Original: https://wiki.disenone.site/fr

This post is protected by CC BY-NC-SA 4.0 agreement, should be reproduced with attribution.

Ce message a été traduit avec ChatGPT, veuillez laisser votre feedbacksignaler toute omission constatée.