Mendefinisikan alat - Amazon Nova

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Mendefinisikan alat

Langkah penting dalam alur kerja pemanggilan alat adalah mendefinisikan alat. Definisi alat harus mencakup semua konteks yang diperlukan untuk memandu model kapan tepat untuk memanggil alat.

Untuk menentukan alat, buat konfigurasi alat dan teruskan dengan pesan pengguna ke API. Skema konfigurasi alat mengharapkan serangkaian alat dan secara opsional parameter pilihan alat.

catatan

Amazon Nova mendukungauto,any, dan tool opsi untuktoolChoice. Untuk informasi selengkapnya, lihat ToolChoicedi dokumentasi Amazon Bedrock API dan Gunakan alat untuk menyelesaikan respons model Amazon Bedrock.

Berikut adalah contoh cara mendefinisikan alat:

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

Nama, deskripsi, dan skema input harus eksplisit dengan fungsionalitas alat yang tepat. Pastikan setiap pembeda utama kapan menggunakan alat tercermin dalam konfigurasi alat.

catatan

Model pemahaman Amazon Nova saat ini hanya mendukung sebagian JsonSchema fungsionalitas saat digunakan untuk mendefinisikan API ToolInputSchemain Converse.

  • Skema tingkat atas harus bertipe Object.

  • Hanya tiga bidang yang didukung di tingkat atas Object - type (harus disetel ke 'object') properties, dan required.

Untuk pemanggilan alat, sebaiknya atur suhu ke 0 untuk mengaktifkan decoding serakah.

Berikut adalah contoh memanggil alat dengan 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)