Utilisation des outils (appel de fonction) avec Amazon Nova - Amazon Nova

Utilisation des outils (appel de fonction) avec Amazon Nova

Les outils permettent de fournir des fonctionnalités externes à Amazon Nova, telles qu’un appel d’API ou une fonction de code. Cette section explique comment définir et intégrer des outils lorsque vous travaillez avec des modèles Amazon Nova.

L’utilisation d’outils comprend trois étapes principales :

  • Requête utilisateur : vous définissez les outils qu’Amazon Nova peut utiliser en fournissant un schéma JSON qui décrit les fonctionnalités et les exigences d’entrée de chaque outil.

  • Sélection d’outils : lorsqu’un utilisateur envoie un message, Amazon Nova l’analyse pour déterminer si un outil est nécessaire pour générer une réponse. C’est ce qu’on appelle le choix d’outils Auto. Pour plus d’informations, consultez la section Choix d’un outil. Si Amazon Nova identifie un outil approprié, il « appelle l’outil » et renvoie le nom de l’outil et les paramètres à utiliser.

    En tant que développeur, vous êtes responsable de l’exécution de l’outil en fonction de la demande du modèle. Cela signifie que vous devez écrire le code qui invoque la fonctionnalité de l’outil et traite les paramètres d’entrée fournis par le modèle.

    Note

    Comme toutes les réponses LLM, il est possible qu’Amazon Nova hallucine un appel d’outil. Il vous incombe, en tant que développeur, de vérifier que l’outil existe, que les entrées sont correctement formatées et que les autorisations appropriées sont déjà en place.

  • Renvoyer les résultats : après avoir exécuté l’outil, vous devez renvoyer les résultats à Amazon Nova dans un format structuré. Les formats valides incluent JSON ou une combinaison de texte et d’images. Cela permet à Amazon Nova d’intégrer la sortie de l’outil dans la réponse finale à l’utilisateur.

    Si des erreurs surviennent pendant l’exécution de l’outil, vous pouvez l’indiquer dans la réponse de l’outil à Amazon Nova, ce qui permet à Amazon Nova d’ajuster sa réponse en conséquence.

Prenons l’exemple simple d’un outil de calculatrice :

User query

La première étape du flux de travail d’appel de l’outil consiste en la requête de l’utilisateur à Amazon Nova pour obtenir le résultat d’une équation mathématique – 10 fois 5. Cette requête est envoyée sous forme d’invite à Amazon Nova, accompagnée d’une spécification de l’outil qui représente la calculatrice.

user_query = "10*5" messages = [{ "role": "user", "content": [{"text": user_query}] }] tool_config = { "tools": [ { "toolSpec": { "name": "calculator", # Name of the tool "description": "A calculator tool that can execute a math equation", # Concise description of the tool "inputSchema": { "json": { "type": "object", "properties": { "equation": { # The name of the parameter "type": "string", # parameter type: string/int/etc "description": "The full equation to evaluate" # Helpful description of the parameter } }, "required": [ # List of all required parameters "equation" ] } } } } ] }
Tool selection

Amazon Nova utilise le contexte de l’outil ainsi que l’invite de l’utilisateur pour déterminer l’outil à utiliser et la configuration requise. Ceci est renvoyé dans le cadre de la réponse API.

{ "toolUse": { "toolUseId": "tooluse_u7XTryCSReawd9lXwljzHQ", "name": "calculator", "input": { "equation": "10*5" } } }

L’application est chargée d’exécuter l’outil et de stocker le résultat.

def calculator(equation: str): return eval(equation) tool_result = calculator("10*5")
Return results

Pour renvoyer le résultat de l’outil à Amazon Nova, celui-ci est inclus dans une nouvelle demande API. Veuillez noter que l’ID d’utilisation de l’outil est cohérent avec celui renvoyé par Amazon Nova dans la réponse précédente.

{ "toolResult": { "toolUseId": "tooluse_u7XTryCSReawd9lXwljzHQ", "content": [ { "json": { "result": "50" } } ], "status": "success" } }
  • Amazon Nova utilisera le contexte complet des messages, y compris la requête initiale de l’utilisateur, l’utilisation de l’outil et le résultat de l’outil, pour déterminer la réponse finale à l’utilisateur. Dans ce cas, Amazon Nova répondra à l’utilisateur que « 10 fois 5 = 50 ».

Amazon Nova autorise l’utilisation de l’outil dans les API Invoke et Converse. Cependant, pour bénéficier de toutes les fonctionnalités, nous recommandons d’utiliser l’API Converse et nous utiliserons des exemples avec cette API dans la suite de ce document.

Références supplémentaires