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 dello strumento è la definizione dello strumento. La definizione dello strumento deve includere tutto il contesto necessario per guidare il modello nel momento in cui è opportuno invocare lo strumento.

Per definire uno strumento, crea una configurazione dello strumento e inseriscila insieme al messaggio dell’utente all’API. Lo schema di configurazione dello strumento prevede una varietà di strumenti e, facoltativamente, un parametro di scelta dello strumento.

Nota

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

Di seguito è riportato 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 la funzionalità esatta dello strumento. Assicurati che tutti i principali fattori di differenziazione relativi all’utilizzo dello strumento siano riflessi 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.

  • Lo schema di primo livello deve essere di tipo Object.

  • Nello schema Object di primo livello sono supportati solo tre campi: tipo (deve essere impostato su “object”), properties e required.

Per la chiamata dello strumento, consigliamo di impostare la temperatura su 0 per consentire la decodifica greedy.

Di seguito è riportato un esempio di chiamata di 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, "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)