- Tool
-
Durch die Verwendung von tool als Tool-Auswahl können Sie das spezifische Tool steuern, welches das Modell aufruft. Das folgende Beispiel verdeutlicht dies anhand eines strukturierten Anwendungsfalls, bei dem die Antwort in einer einheitlichen Weise formatiert werden muss.
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
-
Durch die Verwendung von any als Tool-Auswahl können Sie sicherstellen, dass jedes Mal mindestens ein Tool aufgerufen wird. Die Entscheidung, welches Tool aufgerufen wird, liegt zwar beim Modell, es wird jedoch immer ein Tool zurückgegeben. Das folgende Beispiel veranschaulicht die Verwendung von „Tool-Auswahl, beliebig“ für einen API-Auswahl-Endpunkt-Anwendungsfall. Dies ist ein Beispiel dafür, wann es hilfreich ist, vom Modell die Rückgabe eines bestimmten Tools zu verlangen.
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
-
Die Verwendung von auto als Tool-Auswahl ist die Standardfunktion der Tool-Unterstützung und ermöglicht es dem Modell zu entscheiden, wann ein Tool aufgerufen wird und wie viele Tools aufgerufen werden sollen. Dies ist das Verhalten, wenn Sie die Tool-Auswahl nicht in Ihre Anfrage aufnehmen.
Das Standardverhalten beim Aufrufen von Amazon Nova-Tools ist die Verwendung chain-of-thought für die Werkzeugauswahl. Bei Verwendung des Standardverhaltens oder der Standard-Tool-Auswahl auto, wird auch der Denkprozess in <thinking>-Tags ausgegeben.
Das folgende Beispiel veranschaulicht einen Anwendungsfall für einen Chatbot, bei dem es wünschenswert sein könnte, dass das Modell im Internet nach aktuellen Informationen sucht oder direkt auf den Benutzer reagiert. Diese Tool-Auswahl bietet Flexibilität und überlässt die Argumentation dem Modell.
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"]
}
}
}
}
]
}