Appel de fonctions
Permettez aux modèles d'invoquer des opérations structurées dans votre application.
Vue d'ensemble
L'appel de fonctions (aussi appelé « utilisation d'outils ») vous permet de décrire des fonctions à un modèle, lequel peut choisir de les appeler avec des arguments JSON structurés. Cela permet aux modèles d'interagir avec des systèmes externes, des bases de données et des API.
Définir des outils
Transmettez un tableau tools contenant des définitions au format JSON Schema :
| 1 | const completion = await client.chat.completions.create({ |
| 2 | model: 'gpt-4o', |
| 3 | messages: [{ role: 'user', content: 'Quel temps fait-il à Tokyo ?' }], |
| 4 | tools: [ |
| 5 | { |
| 6 | type: 'function', |
| 7 | function: { |
| 8 | name: 'get_weather', |
| 9 | description: 'Obtenir la météo actuelle pour un lieu donné', |
| 10 | parameters: { |
| 11 | type: 'object', |
| 12 | properties: { |
| 13 | location: { type: 'string', description: 'Nom de la ville' }, |
| 14 | unit: { type: 'string', enum: ['celsius', 'fahrenheit'] }, |
| 15 | }, |
| 16 | required: ['location'], |
| 17 | }, |
| 18 | }, |
| 19 | }, |
| 20 | ], |
| 21 | }); |
Traiter les appels d'outils
Lorsque le modèle décide d'appeler une fonction, la réponse contient un tableau tool_calls. Exécutez la fonction et renvoyez le résultat :
| 1 | const toolCall = completion.choices[0].message.tool_calls[0]; |
| 2 | const args = JSON.parse(toolCall.function.arguments); |
| 3 | |
| 4 | // Exécuter votre fonction |
| 5 | const weather = await getWeather(args.location, args.unit); |
| 6 | |
| 7 | // Renvoyer le résultat |
| 8 | const followUp = await client.chat.completions.create({ |
| 9 | model: 'gpt-4o', |
| 10 | messages: [ |
| 11 | { role: 'user', content: 'Quel temps fait-il à Tokyo ?' }, |
| 12 | completion.choices[0].message, |
| 13 | { |
| 14 | role: 'tool', |
| 15 | tool_call_id: toolCall.id, |
| 16 | content: JSON.stringify(weather), |
| 17 | }, |
| 18 | ], |
| 19 | }); |
Modèles pris en charge
Les modèles disposant de la fonctionnalité « Appel de fonctions » prennent en charge cette feature, notamment GPT-4o, Claude Sonnet/Opus et les modèles Gemini. Filtrez par « Tools » sur la page Modèles.