Definizione di uno strumento - Amazon Nova

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Definizione di uno strumento

Una fase fondamentale del flusso di lavoro di chiamata degli utensili è la definizione dello strumento. La definizione dell'utensile deve includere tutto il contesto necessario per guidare il modello nel momento in cui è opportuno richiamare lo strumento.

Per definire uno strumento, create una configurazione dello strumento e passatela con il messaggio dell'utente all'API. Lo schema di configurazione dello strumento prevede una serie di strumenti e, facoltativamente, un parametro di scelta dello strumento.

Nota

Amazon Nova supporta autoany, e tool opzioni pertoolChoice. Per ulteriori informazioni, consulta ToolChoicela documentazione dell'API Amazon Bedrock e Usa uno strumento per completare una risposta del modello Amazon Bedrock.

Ecco un esempio di come definire uno strumento:

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" ] } } } } ], }

Il nome, la descrizione e lo schema di input devono essere espliciti con l'esatta funzionalità dello strumento. Assicurati che tutti i principali fattori di differenziazione relativi all'utilizzo dello strumento si riflettano nella configurazione dello strumento.

Nota

I modelli di comprensione di Amazon Nova attualmente supportano solo un sottoinsieme di JsonSchema funzionalità se utilizzati per definire l'API ToolInputSchemain Converse.

Per la chiamata degli strumenti, i parametri di inferenza devono essere impostati come einf_params = {"topP": 1, "temperature": 1}. additionalModelRequestFields= {"inferenceConfig": {"topK":1}} Questo perché incoraggiamo i parametri di decodifica più esigenti per le chiamate agli strumenti di Amazon Nova.

Ecco un esempio di chiamata a uno strumento con l'API Converse:

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, "topP": 1, "temperature": 1} response = client.converse( modelId="us.amazon.nova-lite-v1:0", messages=messages, toolConfig=tool_config, inferenceConfig=inf_params, additionalModelRequestFields= {"inferenceConfig": {"topK":1}} ) 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)