

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
<a name="count-tokens"></a>

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. [CountTokens](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_CountTokens.html)API membantu Anda memperkirakan penggunaan token sebelum mengirim permintaan ke model foundation dengan mengembalikan jumlah token yang akan digunakan jika input yang sama dikirim ke model dalam permintaan inferensi.

**catatan**  
Menggunakan [CountTokens](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_CountTokens.html)API tidak dikenakan biaya.

**catatan**  
Beberapa model Anthropic Claude - termasuk yang diluncurkan dengan inferensi Cross-region (CRIS) hanya aktif - tidak mendukung. `bedrock-runtime` [CountTokens](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_CountTokens.html)`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 endpoint batuan dasar mantel](#count-tokens-mantle) URL, isi permintaan, dan contoh.

Penghitungan token adalah model khusus karena model yang berbeda menggunakan strategi tokenisasi yang berbeda. Jumlah token yang dikembalikan oleh operasi ini akan cocok dengan jumlah token yang akan dibebankan 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 prompt agar sesuai dengan batas token.
+ Rencanakan penggunaan token dalam aplikasi Anda.

**Topics**
+ [Model dan Wilayah yang didukung untuk penghitungan token](#count-tokens-supported)
+ [Hitung token menggunakan endpoint bedrock-runtime](#count-tokens-use)
+ [Contoh: hitung token untuk permintaan bedrock-runtime](#count-tokens-example)
+ [Hitung token menggunakan endpoint batuan dasar mantel](#count-tokens-mantle)

## Model dan Wilayah yang didukung untuk penghitungan token
<a name="count-tokens-supported"></a>

Untuk melihat model mana yang mendukung penghitungan token, silakan kunjungi [model sekilas](model-cards.md) dan pilih model yang Anda minati.

## Hitung token menggunakan endpoint bedrock-runtime
<a name="count-tokens-use"></a>

Untuk menghitung jumlah token masukan dalam permintaan inferensi, kirim [CountTokens](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_CountTokens.html)permintaan dengan [titik akhir runtime Amazon Bedrock](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#br-rt), Tentukan model di header dan input untuk menghitung token di bidang. `body` Nilai `body` bidang tergantung pada apakah Anda menghitung token input untuk permintaan [InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html)atau [Converse](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Converse.html):
+ Untuk `InvokeModel` permintaan, format `body` adalah string yang mewakili objek JSON yang formatnya bergantung 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
<a name="count-tokens-example"></a>

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

**Prasyarat**
+ Anda telah mengunduh AWS SDK untuk Python (Boto3) dan konfigurasi Anda diatur sedemikian rupa sehingga kredensi dan AWS Wilayah default Anda dikenali secara otomatis.
+ Identitas IAM Anda memiliki izin untuk tindakan berikut (untuk informasi selengkapnya, lihat [Kunci tindakan, sumber daya, dan kondisi untuk Amazon Bedrock](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonbedrock.html)):
  + batuan dasar: CountTokens — Memungkinkan penggunaan. `CountTokens`
  + batuan dasar: InvokeModel — Memungkinkan penggunaan `InvokeModel` dan`Converse`. Harus dicakup{{arn:${Partition}:bedrock:${Region}::foundation-model/anthropic.claude-3-haiku-20240307-v1:0}}, minimal.

Untuk mencoba menghitung token untuk [InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html)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](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Converse.html), 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 endpoint batuan dasar mantel
<a name="count-tokens-mantle"></a>

`bedrock-mantle`Titik akhir mengekspos API Anthropic di. `count_tokens` `/anthropic/v1/messages/count_tokens` Gunakan untuk menghitung token input untuk model Anthropic Claude yang tidak mendukung [CountTokens](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_CountTokens.html)`bedrock-runtime`— misalnya, ketika model ditawarkan hanya melalui inferensi lintas wilayah (CRIS) `bedrock-runtime` dan karenanya tidak memiliki titik akhir untuk ditargetkan. Region-specific [CountTokens](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_CountTokens.html) `/anthropic/v1/messages`Jalannya adalah Claude-specific; Model non-antropik saat `bedrock-mantle` kembali. `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, lihat[Wilayah dan Titik Akhir yang Didukung](bedrock-mantle.md#bedrock-mantle-supported).
+ **Request body** — `count_tokens` Bentuk antropik, termasuk`model`,`messages`, dan opsional `system` dan `tools` bidang. Lihat [referensi token hitungan Pesan Antropik](https://docs.anthropic.com/en/api/messages-count-tokens).
+ **Otentikasi** — Baik tanda tangan SiGv4 dengan nama layanan`bedrock-mantle`, atau kunci Amazon Bedrock API yang diteruskan di header. `x-api-key` Lihat [Kunci API](api-keys.md).
+ **Tindakan IAM** —`bedrock-mantle:CountTokens`. Otorisasi dicakup ke sumber daya Amazon Bedrock [Project](projects.md) dari formulir tersebut. `arn:aws:bedrock-mantle:{{region}}:{{account-id}}:project/{{project-name}}` Nama proyek default adalah`default`.
+ **Dukungan SDK** — AWS SDK saat ini tidak mengekspos metode yang menargetkan titik akhir ini. Kirim permintaan sebagai SigV4-signed HTTP`POST`, atau gunakan klien HTTP apa pun dengan kunci Amazon Bedrock API. Metode `bedrock-runtime` klien `count_tokens` tidak menargetkan titik akhir ini dan mengembalikan kesalahan validasi untuk model yang tidak didukung. `bedrock-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 oleh. `bedrock-runtime`

**catatan**  
`count_tokens`Titik 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 dan kembali. `strict: true` `tools[]` `tools.0.custom.strict: Extra inputs are not permitted` Konsultasikan [kartu model](model-cards.md) untuk permukaan fitur khusus model.

Contoh berikut menggunakan `curl` kunci Amazon Bedrock API untuk menghitung token pada titik `bedrock-mantle` 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.