Scelta di uno strumento - Amazon Nova

Scelta di uno strumento

I modelli Amazon Nova supportano la funzionalità di scelta degli strumenti. La scelta dello strumento ti consente, in qualità di sviluppatore, di controllare il modo in cui viene chiamato uno strumento. Sono supportate tre opzioni di parametro per la scelta dello strumento: tool, any e auto.

  • Tool: verrà effettuata una chiamata allo strumento specificato.

  • Any: verrà effettuata almeno una chiamata a uno degli strumenti forniti.

  • Auto: il modello deciderà se richiamare uno strumento e, se necessario, verranno chiamati più strumenti.

Tool

L’utilizzo di tool come scelta dello strumento di controllare lo strumento specifico chiamato dal modello. L’esempio seguente evidenzia questo aspetto con un caso d’uso di output strutturato in cui la risposta deve essere formattata in modo coerente.

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

L’utilizzo di any come scelta dello strumento consente di garantire che venga chiamato almeno uno strumento ogni volta. Sebbene la decisione su quale strumento chiamare sia lasciata al modello, verrà sempre restituito uno strumento. L’esempio seguente evidenzia la scelta dello strumento “any” per un caso d’uso di un endpoint di selezione delle API. Questo è un esempio di quando è utile richiedere al modello di restituire uno strumento specifico.

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

L’utilizzo di auto come scelta dello strumento è la funzionalità predefinita del supporto degli strumenti e consente al modello di decidere quando chiamare uno strumento e quanti strumenti chiamare. Questo è il comportamento se non includi la scelta dello strumento nella richiesta.

Nota

Il comportamento predefinito delle chiamate degli strumenti di Amazon Nova prevede l’utilizzo della catena di pensiero per la selezione degli strumenti. Quando si utilizza il comportamento predefinito o la scelta dello strumento auto, nei tag <thinking> verrà visualizzato anche l’output del processo di pensiero.

L’esempio seguente evidenzia un caso d’uso di un chatbot in cui potresti voler consentire al modello di cercare su Internet informazioni recenti o di rispondere direttamente all’utente. Questa scelta dello strumento offre flessibilità e lascerà il ragionamento al modello.

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

Quando imposti il parametro di scelta dello strumento, potresti continuare a visualizzare il testo di output del modello o eseguire chiamate sequenziali dello strumento dopo la selezione dello strumento originale. Ti consigliamo di impostare qui una sequenza di arresto per limitare l’output al solo strumento:

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

Per ulteriori informazioni, consulta InferenceConfiguration nella guida all’API di Amazon Bedrock.