- Tool
-
Wenn Sie es tool
als Werkzeugauswahl verwenden, können Sie das spezifische Werkzeug steuern, das das Modell aufruft. Das folgende Beispiel verdeutlicht dies anhand eines Anwendungsfalls mit strukturierter Ausgabe, bei dem die Antwort konsistent 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 any
als Werkzeugauswahl können Sie sicherstellen, dass jedes Mal mindestens ein Tool aufgerufen wird. Die Entscheidung, welches Tool aufgerufen werden soll, bleibt zwar dem Modell überlassen, es wird jedoch immer ein Werkzeug zurückgegeben. Das folgende Beispiel zeigt die Verwendung von Tool Choice Any für einen Anwendungsfall eines API-Auswahlendpunkts. 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 auto
als Werkzeugauswahl ist die Standardfunktionalität der Werkzeugunterstützung und ermöglicht es dem Modell, zu entscheiden, wann und wie viele Werkzeuge aufgerufen werden sollen. Dies ist das Verhalten, wenn Sie die Werkzeugauswahl nicht in Ihre Anfrage aufnehmen.
Das Standardverhalten beim Aufrufen von Amazon Nova-Tools ist die Verwendung chain-of-thought für die Werkzeugauswahl. Wenn Sie das Standardverhalten oder die Standardwerkzeugauswahl verwendenauto
, wird der Denkprozess auch in <thinking>Tags ausgegeben.
Das folgende Beispiel zeigt einen Chatbot-Anwendungsfall, bei dem Sie dem Modell die Möglichkeit geben möchten, im Internet nach aktuellen Informationen zu suchen oder dem Benutzer direkt zu antworten. Diese Toolauswahl 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"]
}
}
}
}
]
}