Elección de una herramienta - Amazon Nova

Elección de una herramienta

Los modelos de Amazon Nova admiten la funcionalidad de elección de herramientas. La elección de herramientas le permite a usted, como desarrollador, controlar la forma en que se llama a una herramienta. Se admiten tres opciones de parámetros para la elección de herramientas: tool, any y auto.

  • Tool: La herramienta especificada se llamará una vez.

  • Any: Se llamará a una de las herramientas proporcionadas al menos una vez.

  • Auto: El modelo decidirá si debe llamar a una herramienta y, si es necesario, llamará a varias.

Tool

Utilizar tool como opción de herramienta le permite controlar la herramienta específica que el modelo llama. El siguiente ejemplo destaca esto con un caso de uso de salida estructurada en el que se requiere que la respuesta esté formateada de manera coherente.

tool_config = { "toolChoice": { "tool": { "name" : "extract_recipe"} }, "tools": [ { "toolSpec": { "name": "extract_recipe", "description": "Extract recipe for cooking instructions", "inputSchema": { "json": { "type": "object", "properties": { "name": { "type": "string", "description": "Name of the recipe" }, "description": { "type": "string", "description": "Brief description of the dish" }, "ingredients": { "type": "array", "items": { "type": "string", "description": "Name of ingredient" } } }, "required": ["name", "description", "ingredients"] } } } } ] }
Any

Utilizar any como opción de herramienta le permite asegurarse de que se llame al menos a una herramienta cada vez. Aunque la decisión de qué herramienta llamar se deja al modelo, siempre se devolverá una herramienta. En el siguiente ejemplo, se destaca el uso de la opción de herramienta “any” para un caso de uso de selección de punto de conexión de la API. Este es un ejemplo de cuándo resulta útil requerir que el modelo devuelva una herramienta específica.

tool_config = { "toolChoice": { "any": {} }, "tools": [ { "toolSpec": { "name": "get_all_products", "description": "API to retrieve multiple products with filtering and pagination options", "inputSchema": { "json": { "type": "object", "properties": { "sort_by": { "type": "string", "description": "Field to sort results by. One of: price, name, created_date, popularity", "default": "created_date" }, "sort_order": { "type": "string", "description": "Order of sorting (ascending or descending). One of: asc, desc", "default": "desc" }, }, "required": [] } } } }, { "toolSpec": { "name": "get_products_by_id", "description": "API to retrieve retail products based on search criteria", "inputSchema": { "json": { "type": "object", "properties": { "product_id": { "type": "string", "description": "Unique identifier of the product" }, }, "required": ["product_id"] } } } } ] }
Auto

El uso de auto como elección de herramienta es la funcionalidad predeterminada del soporte de herramientas y permite que el modelo decida cuándo llamar a una herramienta y a cuántas llamar. Este será el comportamiento si no incluye la elección de la herramienta en su solicitud.

nota

El comportamiento predeterminado de las llamadas a herramientas de Amazon Nova es utilizar la cadena de pensamiento para la selección de herramientas. Cuando se utiliza el comportamiento predeterminado o la opción de herramienta auto, también aparecerá el resultado del proceso de pensamientos en etiquetas <thinking>.

En el siguiente ejemplo, se destaca un caso de uso de un chatbot en el que quizás quiera permitir que el modelo busque información reciente en Internet o que responda directamente al usuario. Esta elección de herramienta proporciona flexibilidad y permitirá que el modelo razone.

tool_config = { "toolChoice": { "auto": {} }, "tools": [ { "toolSpec": { "name": "search", "description": "API that provides access to the internet", "inputSchema": { "json": { "type": "object", "properties": { "query": { "type": "string", "description": "Query to search by", }, }, "required": ["query"] } } } } ] }
nota

Al configurar el parámetro de elección de herramienta, es posible que siga viendo el texto de salida del modelo o que realice llamadas de herramienta secuenciales después de la selección original de la herramienta. Le recomendamos que establezca aquí una secuencia de parada para limitar la salida solo a la herramienta:

“stopSequences”: [“</tool>”]

Para obtener más información, consulte InferenceConfiguration en la guía de la API de Amazon Bedrock.