View a markdown version of this page

Pantau penggunaan token Anda dengan menghitung token sebelum menjalankan inferensi - Amazon Bedrock

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

Pantau penggunaan token Anda dengan menghitung token sebelum menjalankan inferensi

Saat Anda menjalankan inferensi model, jumlah token yang Anda kirim dalam input berkontribusi pada biaya permintaan dan terhadap kuota token yang dapat Anda gunakan per menit dan per hari. CountTokensAPI membantu Anda memperkirakan penggunaan token sebelum mengirim permintaan ke model dasar dengan mengembalikan jumlah token yang akan digunakan jika input yang sama dikirim ke model dalam permintaan inferensi.

catatan

Menggunakan CountTokens API tidak dikenakan biaya.

catatan

Beberapa model Claude Anthropic — termasuk yang diluncurkan dengan inferensi lintas wilayah (CRIS) hanya aktif bedrock-runtime — tidak mendukung. CountTokens bedrock-runtime Untuk model ini, hitung token input dengan memanggil count_tokens API Anthropic di bedrock-mantle titik akhir sebagai gantinya. Lihat Hitung token menggunakan titik akhir mantel batuan dasar URL, isi permintaan, dan contoh.

Penghitungan token bersifat spesifik model karena model yang berbeda menggunakan strategi tokenisasi yang berbeda. Jumlah token yang dikembalikan oleh operasi ini akan cocok dengan jumlah token yang akan dikenakan biaya jika input yang sama dikirim ke model untuk menjalankan inferensi.

Anda dapat menggunakan CountTokens API untuk melakukan hal berikut:

  • Perkirakan biaya sebelum mengirim permintaan inferensi.

  • Optimalkan petunjuk agar sesuai dengan batas token.

  • Rencanakan penggunaan token di aplikasi Anda.

Model dan Wilayah yang didukung untuk penghitungan token

Untuk melihat model mana yang mendukung penghitungan token, silakan kunjungi model sekilas dan pilih model yang Anda minati.

Hitung token menggunakan titik akhir runtime bedrock-

Untuk menghitung jumlah token input dalam permintaan inferensi, kirim CountTokens permintaan dengan titik akhir runtime Amazon Bedrock, Tentukan model di header dan input untuk menghitung token di body lapangan. Nilai body bidang tergantung pada apakah Anda menghitung token input untuk permintaan InvokeModel atau Converse:

  • Untuk InvokeModel permintaan, format body adalah string yang mewakili objek JSON yang formatnya tergantung pada model yang Anda tentukan.

  • Untuk Converse permintaan, format body adalah objek JSON yang menentukan messages dan system prompt yang disertakan dalam percakapan.

Contoh: hitung token untuk permintaan bedrock-runtime

Contoh di bagian ini memungkinkan Anda menghitung token untuk InvokeModel dan Converse meminta dengan AnthropicClaude 3 Haiku.

Prasyarat
  • Anda telah mengunduh AWS SDK untuk Python (Boto3) dan konfigurasi Anda diatur sedemikian rupa sehingga kredenSIAL dan Wil AWS ayah default Anda dikenali secara otomatis.

  • Identitas IAM Anda memiliki izin untuk tindakan berikut (untuk informasi selengkapnya, lihat T indakan, sumber daya, dan kunci kondisi untuk Amazon Bedrock):

    • batuan dasar: CountTokens - Memungkinkan penggunaanCountTokens.

    • batuan dasar: InvokeModel - Memungkinkan penggunaan InvokeModel danConverse. Harus dicakup hinggaarn:${Partition}:bedrock:${Region}::foundation-model/anthropic.claude-3-haiku-20240307-v1:0, minimal.

Untuk mencoba menghitung token untuk InvokeModel permintaan, jalankan kode Python berikut:

import boto3 import json bedrock_runtime = boto3.client("bedrock-runtime") input_to_count = json.dumps({ "anthropic_version": "bedrock-2023-05-31", "max_tokens": 500, "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }) response = bedrock_runtime.count_tokens( modelId="anthropic.claude-3-5-haiku-20241022-v1:0", input={ "invokeModel": { "body": input_to_count } } ) print(response["inputTokens"])

Untuk mencoba menghitung token untuk permintaan Converse, jalankan kode Python berikut:

import boto3 import json bedrock_runtime = boto3.client("bedrock-runtime") input_to_count = { "messages": [ { "role": "user", "content": [ { "text": "What is the capital of France?" } ] }, { "role": "assistant", "content": [ { "text": "The capital of France is Paris." } ] }, { "role": "user", "content": [ { "text": "What is its population?" } ] } ], "system": [ { "text": "You're an expert in geography." } ] } response = bedrock_runtime.count_tokens( modelId="anthropic.claude-3-5-haiku-20241022-v1:0", input={ "converse": input_to_count } ) print(response["inputTokens"])

Hitung token menggunakan titik akhir mantel batuan dasar

Titik bedrock-mantle akhir mengekspos count_tokens API Anthropic di. /anthropic/v1/messages/count_tokens Gunakan untuk menghitung token input untuk model Anthropic Claude yang tidak mendukung CountTokens bedrock-runtime — misalnya, ketika model ditawarkan hanya melalui inferensi lintas wilayah (CRIS) bedrock-runtime dan karenanya tidak memiliki Region-specific titik akhir untuk CountTokens ditargetkan. /anthropic/v1/messagesJalannya adalah Claude-specific; Model non-antropik saat kembali. bedrock-mantle The model 'X' does not support the '/anthropic/v1/messages' API

Detail permintaan
  • URL -POST https://bedrock-mantle.region.api.aws/anthropic/v1/messages/count_tokens. Untuk Wilayah yang didukung, lihatWilayah dan Titik Akhir yang Didukung.

  • Tubuh permintaan — Bentuk Antropikcount_tokens, termasukmodel,messages, dan opsional system dan tools bidang. Lihat referensi token penghitungan Pesan Antropik.

  • O tentikasi — Tanda tangan SIGv4 dengan nama layananbedrock-mantle, atau kunci API Amazon Bedrock yang diteruskan di x-api-key header. Lihat Kunci API.

  • Tindakan IAM bedrock-mantle:CountTokens. Tindakan ini menggunakan awalan bedrock-mantle layanan dan muncul di referensi otorisasi layanan Amazon Bedrock AWS Powered by Mant le, bukan referensi Amazon Bedrock (bedrock). Otorisasi dicakup ke sumber Amazon Bedrock Project dari formulir tersebut. arn:aws:bedrock-mantle:region:account-id:project/project-name Nama proyek default adalahdefault.

  • Dukungan SDK — AWS SDK saat ini tidak mengekspos metode yang menargetkan titik akhir ini. Kirim permintaan sebagai SigV4-signed HTTPPOST, atau gunakan klien HTTP apa pun dengan kunci API Amazon Bedrock. Metode bedrock-runtime klien count_tokens tidak menargetkan titik akhir ini dan mengembalikan kesalahan validasi untuk model yang tidak didukungbedrock-runtime.

  • Format kesalahan — Kesalahan mengikuti bentuk Antropik:{"type": "error", "request_id": "...", "error": {"type": "error-type", "message": "error-message"}}. Ini berbeda dari amplop kesalahan AWS JSON standar yang dikembalikan olehbedrock-runtime.

catatan

T count_tokens itik akhir memvalidasi badan permintaan menggunakan skema yang sama dengan titik akhir inferensi yang sesuai, sehingga bidang permintaan yang tidak didukung model ditolak dengan HTTP 400. Misalnya, Anthropic Claude Opus 4.7 tidak menerima strict: true tools[] dan mengembalikantools.0.custom.strict: Extra inputs are not permitted. Konsultas ikan kartu model untuk permukaan fitur khusus model.

Contoh berikut digunakan curl dengan kunci API Amazon Bedrock untuk menghitung token pada bedrock-mantle titik akhir:

curl -X POST https://bedrock-mantle.us-east-1.api.aws/anthropic/v1/messages/count_tokens \ -H "x-api-key: $BEDROCK_API_KEY" \ -H "anthropic-version: 2023-06-01" \ -H "Content-Type: application/json" \ -d '{ "model": "anthropic.claude-opus-4-7", "messages": [ {"role": "user", "content": "How many tokens is this prompt?"} ] }'

Respons berisi input_tokens bidang yang nilainya adalah jumlah token untuk input yang disediakan.