Ein Tool definieren - Amazon Nova

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Ein Tool definieren

Ein entscheidender Schritt im Workflow zum Aufrufen von Tools ist die Definition des Tools. Die Tooldefinition muss alle erforderlichen Kontextinformationen enthalten, um dem Modell mitzuteilen, wann es angebracht ist, das Tool aufzurufen.

Um ein Tool zu definieren, erstellen Sie eine Tool-Konfiguration und übergeben Sie diese zusammen mit der Benutzernachricht an die API. Das Tool-Konfigurationsschema erwartet ein Array von Werkzeugen und optional einen Tool-Auswahlparameter.

Anmerkung

Amazon Nova unterstützt die Optionen auto, any und tool für toolChoice. Weitere Informationen finden Sie ToolChoicein der Amazon Bedrock API-Dokumentation und Verwenden Sie ein Tool, um eine Amazon Bedrock-Modellantwort abzuschließen.

Hier finden Sie ein Beispiel für die Definition eines Tools:

tool_config = { "tools": [ { "toolSpec": { "name": "top_song", "description": "Get the most popular song played on a radio station.", "inputSchema": { "json": { "type": "object", "properties": { "sign": { "type": "string", "description": "The call sign for the radio station for which you want the most popular song. Example calls signs are WZPZ, and WKRP." } }, "required": [ "sign" ] } } } } ], }

Der Name, die Beschreibung und das Eingabeschema müssen mit der genauen Funktionalität des Tools übereinstimmen. Stellen Sie sicher, dass alle wichtigen Unterscheidungsmerkmale bei der Verwendung des Tools in der Tool-Konfiguration berücksichtigt werden.

Anmerkung

Die Verständnismodelle von Amazon Nova unterstützen derzeit nur einen Teil der JsonSchema Funktionalität, wenn sie zur Definition der ToolInputSchemain Converse API verwendet werden.

  • Das Schema der obersten Ebene muss vom Typ Objekt sein.

  • Nur drei Felder werden im Objekt der obersten Ebene unterstützt – Typ (muss auf „Objekt“ gesetzt sein), properties und required.

Für das Aufrufen von Tools empfehlen wir, die Temperatur auf 0 zu setzen, um eine Greed-Dekodierung zu ermöglichen.

Hier finden Sie ein Beispiel für den Aufrufen eines Tools mit der Converse-API:

import json import boto3 client = boto3.client("bedrock-runtime", region_name="us-east-1") input_text = "What is the most popular song on WZPZ?" messages = [{ "role": "user", "content": [{"text": input_text}] }] inf_params = {"maxTokens": 1000, "temperature": 0} response = client.converse( modelId="us.amazon.nova-lite-v1:0", messages=messages, toolConfig=tool_config, inferenceConfig=inf_params ) messages.append(response["output"]["message"]) # Pretty print the response JSON. print("[Full Response]") print(json.dumps(response, indent=2)) # Print the tool content for easy readability. tool = next( block["toolUse"] for block in response["output"]["message"]["content"] if "toolUse" in block ) print("\n[Tool Response]") print(tool)