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 :

TypeScript
1const 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 :

TypeScript
1const toolCall = completion.choices[0].message.tool_calls[0];
2const args = JSON.parse(toolCall.function.arguments);
3
4// Exécuter votre fonction
5const weather = await getWeather(args.location, args.unit);
6
7// Renvoyer le résultat
8const 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.