Définition d’un outil - Amazon Nova

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Définition d’un outil

Une étape cruciale du flux de travail d’appel de l’outil consiste à définir l’outil. La définition de l’outil doit inclure tout le contexte nécessaire pour guider le modèle sur le moment approprié pour invoquer l’outil.

Pour définir un outil, créez une configuration d’outil et transmettez-la avec le message utilisateur à l’API. Le schéma tool configuration attend un tableau d’outils et, éventuellement, un paramètre de choix d’outil.

Note

Amazon Nova prend en charge les options auto, any et tool pour toolChoice. Pour plus d'informations, consultez ToolChoicela documentation de l'API Amazon Bedrock et utilisez un outil pour compléter une réponse du modèle Amazon Bedrock.

Voici un exemple de définition d’un outil :

tool_config = { "tools": [ { "toolSpec": { "name": "top_song", "description": "Get the most popular song played on a radio station.", "inputSchema": { "json": { "type": "object", "properties": { "sign": { "type": "string", "description": "The call sign for the radio station for which you want the most popular song. Example calls signs are WZPZ, and WKRP." } }, "required": [ "sign" ] } } } } ], }

Le nom, la description et le schéma d’entrée doivent être explicites et correspondre exactement aux fonctionnalités de l’outil. Assurez-vous que tous les facteurs clés permettant de déterminer quand utiliser l’outil sont pris en compte dans la configuration de l’outil.

Note

Les modèles de compréhension d'Amazon Nova ne prennent actuellement en charge qu'un sous-ensemble de JsonSchema fonctionnalités lorsqu'ils sont utilisés pour définir l'API ToolInputSchemadans Converse.

  • Le schéma de niveau supérieur doit être de type Object.

  • Seuls trois champs sont pris en charge dans l’objet de niveau supérieur : type (doit être défini sur « object »), properties et required.

Pour l’appel d’outils, nous recommandons de définir la température sur 0 afin d’activer le décodage glouton.

Voici un exemple d’appel d’un outil avec l’API Converse :

import json import boto3 client = boto3.client("bedrock-runtime", region_name="us-east-1") input_text = "What is the most popular song on WZPZ?" messages = [{ "role": "user", "content": [{"text": input_text}] }] inf_params = {"maxTokens": 1000, "temperature": 0} response = client.converse( modelId="us.amazon.nova-lite-v1:0", messages=messages, toolConfig=tool_config, inferenceConfig=inf_params ) messages.append(response["output"]["message"]) # Pretty print the response JSON. print("[Full Response]") print(json.dumps(response, indent=2)) # Print the tool content for easy readability. tool = next( block["toolUse"] for block in response["output"]["message"]["content"] if "toolUse" in block ) print("\n[Tool Response]") print(tool)