Utilisation des outils
Pour utiliser un outil, celui-ci doit être défini dans le cadre de l’événement promptStart dans votre configuration de session. Ceci est illustré dans le code suivant :
{ "event": { "promptStart": { "promptName": "string", "textOutputConfiguration": { "mediaType": "text/plain" }, "audioOutputConfiguration": { "mediaType": "audio/lpcm", "sampleRateHertz": 8000 | 16000 | 24000, "sampleSizeBits": 16, "channelCount": 1, "voiceId": "matthew" | "tiffany" | "amy", "encoding": "base64", "audioType": "SPEECH" }, "toolUseOutputConfiguration": { "mediaType": "application/json" }, "toolConfiguration": { "tools": [ { "toolSpec": { "name": "string", "description": "string", "inputSchema": { "json": "{}" } } } ] } } } }
Composants de la définition d’un outil
Chaque spécification d’outil nécessite les éléments suivants :
-
Nom : identifiant unique de l’outil.
-
Description : une explication de ce que fait l’outil et quand il doit être utilisé.
-
Schéma d’entrée : le schéma JSON qui définit les paramètres requis.
Exemple d’outil de base
Voici un exemple d’outil simple qui récupère des informations sur la date actuelle. Pour plus d’informations sur la définition d’un outil, consultez Définition d’un outil.
// A simple tool with no required parameters const dateTool = { toolSpec: { name: "getDateTool", description: "Get information about the current date", inputSchema: { json: JSON.stringify({ type: "object", properties: {}, required: [] }) } } };
Voici à quoi ressemblerait l’événement promptStart :
{ event: { promptStart: { promptName: "string", textOutputConfiguration: { mediaType: "text/plain" }, audioOutputConfiguration: { mediaType: "audio/lpcm", sampleRateHertz: 24000, sampleSizeBits: 16, channelCount: 1, voiceId: "tiffany", encoding: "base64", audioType: "SPEECH" }, toolUseOutputConfiguration: { mediaType: "application/json" }, toolConfiguration: { tools: [ { toolSpec: { name: "getDateTool", description: "get information about the current date", inputSchema: { json: JSON.stringify({ type: "object", properties: {}, required: [] }) } } } ] } } } }