Débutant
🧠 Fondamentaux
10 XP
0 personnes ont réussi
Tool use : definir des outils
Les LLM sont mauvais en calcul, ne connaissent pas les donnees en temps reel, et ne peuvent pas envoyer d'emails. Mais ils savent decider QUEL outil utiliser et AVEC QUELS parametres. C'est le principe du tool use (ou function calling) : tu donnes au LLM une liste d'outils disponibles, et il choisit lequel appeler.
Pour que le LLM sache quels outils il a a disposition, tu dois decrire chaque outil avec un schema JSON. Ce schema contient le nom de l'outil, une description, et la liste des parametres avec leur type. C'est exactement ce que font OpenAI, Anthropic et Google dans leurs APIs.
Voici a quoi ressemble un schema d'outil :
{ "name": "calculer", "description": "Effectue un calcul mathematique", "parameters": { "expression": {"type": "string", "description": "L'expression a calculer"} } }
Tu vas ecrire une fonction creer_outil(nom, description, parametres, fonction) qui cree un dictionnaire representant un outil. Le dictionnaire doit contenir : - "name" : le nom de l'outil - "description" : la description - "schema" : un dictionnaire decrivant les parametres (tu prends le dictionnaire parametres tel quel) - "function" : la fonction Python a appeler
Tu vas aussi ecrire une fonction lister_outils(outils) qui prend une liste d'outils (crees par creer_outil) et renvoie une liste de schemas (sans la cle "function", juste "name", "description" et "schema"). C'est cette liste qu'on enverrait au LLM.
Exemple :
def meteo(ville): return f"Il fait beau a {ville}"
outil = creer_outil("meteo", "Donne la meteo", {"ville": {"type": "string"}}, meteo) outil["name"] renvoie "meteo" outil["function"]("Paris") renvoie "Il fait beau a Paris"