0Pricing
Learn AI with Python · Leçon

Appels de fonctions et utilisation d’outils avec les LLM

Définition des outils sous forme de schéma JSON, gestion de tool_calls dans la réponse, exécution et renvoi des résultats.

Appels de fonctions et utilisation d’outils avec les LLM est une leçon Learn AI with Python gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Learn AI with Python, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Learn AI with Python comprend 4 leçons au total.

Qu’est-ce que l’appel de fonctions

L’appel de fonctions (également appelé utilisation d’outils) permet à un LLM de demander à votre code d’exécuter une fonction. Le modèle n’exécute rien lui-même : il renvoie une demande structurée indiquant « appelez cette fonction avec ces arguments ». Votre programme l’exécute et lui renvoie le résultat.

C’est ainsi que les LLM récupèrent des données en temps réel, effectuent des calculs ou déclenchent des actions réelles.

Décrire un outil

Vous fournissez au modèle une liste d’outils. Chaque outil possède un name, une description et des parameters définis selon un schéma JSON. La description est essentielle : le modèle l’utilise pour décider quand l’outil s’applique.

tools = [{
    "type": "function",
    "function": {
        "name": "get_weather",
        "description": "Get current weather for a city",
        "parameters": {
            "type": "object",
            "properties": {
                "city": {"type": "string", "description": "City name"}
            },
            "required": ["city"]
        }
    }
}]

Schéma JSON des paramètres

Le champ parameters suit le standard JSON Schema. Vous déclarez un objet avec des properties, chacune possédant un type et une description, ainsi qu’un tableau required. Cela indique précisément au modèle quels arguments produire.

"parameters": {
    "type": "object",
    "properties": {
        "city": {"type": "string"},
        "units": {"type": "string", "enum": ["celsius", "fahrenheit"]}
    },
    "required": ["city"]
}

Transmettre des outils au modèle

Envoyez la liste tools à chat.completions.create(). Le modèle peut alors répondre par du texte OR par un appel d’outil, selon la demande de l’utilisateur.

response = client.chat.completions.create(
    model="gpt-4o",
    messages=[{"role": "user", "content": "Weather in Tokyo?"}],
    tools=tools
)

Détecter un appel d’outil

Lorsque le modèle veut utiliser un outil, la réponse contient message.tool_calls au lieu d’un texte normal. Vérifiez que cette liste existe avant de supposer que vous avez une réponse en texte brut.

msg = response.choices[0].message

if msg.tool_calls:
    print("Model wants to call a tool")
else:
    print(msg.content)

Analyser les arguments

Chaque appel d’outil possède un function.name et un function.arguments. Les arguments arrivent sous la forme d’une chaîne JSON ; analysez-les donc avec json.loads() avant de les utiliser.

import json

call = msg.tool_calls[0]
name = call.function.name
args = json.loads(call.function.arguments)
print(name, args)  # get_weather {"city": "Tokyo"}

Exécuter la fonction

Exécutez maintenant YOUR véritable fonction Python avec les arguments analysés. Le LLM a seulement décidé quelle fonction appeler ; c’est votre code qui effectue le véritable travail.

def get_weather(city):
    return {"city": city, "temp_c": 18, "condition": "Cloudy"}

result = get_weather(**args)

Renvoyer le résultat au modèle

Renvoyez le résultat afin que le modèle puisse rédiger une réponse en langage naturel. Ajoutez le message original de l’assistant, puis un message de rôle tool contenant le résultat et le tool_call_id correspondant.

messages.append(msg)  # the assistant tool-call message
messages.append({
    "role": "tool",
    "tool_call_id": call.id,
    "content": json.dumps(result)
})

Générer la réponse finale

Appelez à nouveau le modèle avec la liste messages mise à jour. Maintenant qu’il dispose du résultat de l’outil, il produit une réponse finale claire pour l’utilisateur.

final = client.chat.completions.create(
    model="gpt-4o",
    messages=messages,
    tools=tools
)
print(final.choices[0].message.content)

La boucle complète d’utilisation d’outils

Le cycle complet : (1) envoyer les outils, (2) le modèle renvoie un appel d’outil, (3) analyser les arguments, (4) exécuter la fonction, (5) renvoyer le résultat sous forme de message d’outil, (6) le modèle rédige la réponse. Un modèle peut demander plusieurs appels d’outils avant de terminer ; parcourez donc la boucle jusqu’à ce que tool_calls soit vide.

Contrôler le choix des outils

Utilisez le paramètre tool_choice pour orienter le comportement. "auto" (valeur par défaut) laisse le modèle décider ; "none" interdit les outils ; transmettre le nom d’un outil précis force l’utilisation de cette fonction. C’est utile lorsque vous devez garantir une sortie structurée.

response = client.chat.completions.create(
    model="gpt-4o",
    messages=messages,
    tools=tools,
    tool_choice={"type": "function", "function": {"name": "get_weather"}}
)

Vérification rapide

Vérifiez votre compréhension de l’utilisation des outils.

Récapitulatif : appel de fonctions

Vous avez défini des outils avec un nom, une description et des paramètres selon un schéma JSON, puis vous les avez transmis au modèle. Vous avez détecté tool_calls, analysé function.arguments avec json.loads(), exécuté votre véritable fonction et renvoyé le résultat sous forme de message de rôle tool avec le tool_call_id correspondant.

Un dernier appel au modèle transforme le résultat brut en réponse naturelle et termine la boucle d’utilisation des outils.

Questions Fréquemment Posées

La leçon « Appels de fonctions et utilisation d’outils avec les LLM » est-elle gratuite ?

Oui — le texte complet de « Appels de fonctions et utilisation d’outils avec les LLM » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Learn AI with Python, passe à CoddyKit PRO. Le cours Learn AI with Python comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Appels de fonctions et utilisation d’outils avec les LLM » ?

Définition des outils sous forme de schéma JSON, gestion de tool_calls dans la réponse, exécution et renvoi des résultats. Tu pratiques Learn AI with Python avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Learn AI with Python ?

Aucune expérience préalable n'est requise. Learn AI with Python sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.

Combien de temps prend la leçon « Appels de fonctions et utilisation d’outils avec les LLM » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Learn AI with Python ?

Oui. Chaque leçon Learn AI with Python inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. API OpenAI : chat.completions et diffusion en continu
  2. API Anthropic Claude en Python
  3. Appels de fonctions et utilisation d’outils avec les LLM
  4. Ingénierie des prompts pour les applications LLM en production
← Retour à Learn AI with Python