

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Überwachen der Tokennutzung, indem die Token vor der Ausführung der Inferenz gezählt werden
<a name="count-tokens"></a>

Wenn Sie die Modellinferenz ausführen, trägt die Anzahl der Token, die Sie in der Eingabe senden, zu den Kosten der Anforderung und zum Kontingent der Token bei, die Sie pro Minute und pro Tag nutzen können. Die [CountTokens](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_CountTokens.html)API hilft Ihnen dabei, die Token-Nutzung abzuschätzen, bevor Sie Anfragen an Foundation-Modelle senden, indem sie die Token-Anzahl zurückgibt, die verwendet würde, wenn dieselbe Eingabe in einer Inferenzanforderung an das Modell gesendet würde.

**Anmerkung**  
Für die Verwendung der [CountTokens](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_CountTokens.html)API fallen keine Gebühren an.

**Anmerkung**  
Einige Modelle von Anthropic Claude — einschließlich solcher, die nur mit aktivierter regionenübergreifender Inferenz (CRIS) gestartet werden `bedrock-runtime` — unterstützen on nicht. [CountTokens](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_CountTokens.html)`bedrock-runtime` Zählen Sie bei diesen Modellen die Eingabe-Token, indem Sie stattdessen die `count_tokens` API von Anthropic auf dem Endpunkt aufrufen. `bedrock-mantle` Die URL, [Zählen Sie Token mithilfe des Bedrock-Mantle-Endpunkts](#count-tokens-mantle) den Text der Anfrage und ein Beispiel finden Sie unter.

Die Tokenzählung ist modellspezifisch, da verschiedene Modelle unterschiedliche Tokenisierungsstrategien verwenden. Die von diesem Vorgang zurückgegebene Tokenanzahl entspricht der Tokenanzahl, für die eine Gebühr berechnet würde, wenn dieselbe Eingabe an das Modell zum Ausführen der Inferenz gesendet würde.

Sie können die API `CountTokens` für Folgendes verwenden:
+ Abschätzen der Kosten vor dem Senden von Inferenzanforderungen.
+ Optimieren der Prompts, sodass sie innerhalb der Tokengrenzwerte liegen.
+ Planen der Tokennutzung in Ihren Anwendungen.

**Topics**
+ [Unterstützte Modelle und Regionen für die Tokenzählung](#count-tokens-supported)
+ [Zählen Sie Token mithilfe des Bedrock-Runtime-Endpunkts](#count-tokens-use)
+ [Beispiel: Zählen Sie Token für eine Bedrock-Runtime-Anfrage](#count-tokens-example)
+ [Zählen Sie Token mithilfe des Bedrock-Mantle-Endpunkts](#count-tokens-mantle)

## Unterstützte Modelle und Regionen für die Tokenzählung
<a name="count-tokens-supported"></a>

Um zu sehen, welche Modelle das Zählen von Tokens unterstützen, besuchen Sie bitte [Modelle auf einen Blick](model-cards.md) und wählen Sie das Modell aus, an dem Sie interessiert sind.

## Zählen Sie Token mithilfe des Bedrock-Runtime-Endpunkts
<a name="count-tokens-use"></a>

Um die Anzahl der Eingabe-Token in einer Inferenzanforderung zu zählen, senden Sie eine [CountTokens](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_CountTokens.html)Anfrage mit einem [Amazon Bedrock-Laufzeitendpunkt](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#br-rt). Geben Sie das Modell im Header und die Eingabe, für die Token gezählt werden sollen, im `body` Feld an. Der Wert des `body` Felds hängt davon ab, ob Sie Eingabe-Token für eine [InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html)oder eine [Converse-Anfrage](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Converse.html) zählen:
+ Bei der Anforderung `InvokeModel` ist das `body`-Format eine Zeichenfolge, die ein JSON-Objekt darstellt, dessen Format von dem von Ihnen angegebenen Modell abhängt.
+ Bei der Anforderung `Converse` ist das `body`-Format ein JSON-Objekt, das die in der Konversation enthaltenen Prompts `messages` und `system` angibt.

## Beispiel: Zählen Sie Token für eine Bedrock-Runtime-Anfrage
<a name="count-tokens-example"></a>

Anhand der Beispiele in diesem Abschnitt können Sie Token für die Anforderung `InvokeModel` und `Converse` mit Anthropic Claude 3 Haiku zählen.

**Voraussetzungen**
+ Sie haben heruntergeladen AWS SDK für Python (Boto3) und Ihre Konfiguration ist so eingerichtet, dass Ihre Anmeldeinformationen und die AWS Standardregion automatisch erkannt werden.
+ Ihre IAM-Identität hat Berechtigungen für die folgenden Aktionen (weitere Informationen finden Sie unter [Aktionen, Ressourcen und Bedingungsschlüssel für Amazon Bedrock](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonbedrock.html)):
  + bedrock: CountTokens — Ermöglicht die Verwendung von. `CountTokens`
  + bedrock: InvokeModel — Erlaubt die Verwendung von und. `InvokeModel` `Converse` Sollte mindestens auf den {{arn:${Partition}:bedrock:${Region}::foundation-model/anthropic.claude-3-haiku-20240307-v1:0}} beschränkt sein.

Führen Sie den folgenden Python-Code aus, um das Zählen von Tokens für eine [InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html)Anfrage auszuprobieren:

```
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"])
```

Führen Sie den folgenden Python-Code aus, um die Tokenzählung für die Anforderung [Converse-Anfrage](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Converse.html) auszuprobieren:

```
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"])
```

## Zählen Sie Token mithilfe des Bedrock-Mantle-Endpunkts
<a name="count-tokens-mantle"></a>

Der `bedrock-mantle` Endpunkt macht die `count_tokens` API von Anthropic unter verfügbar. `/anthropic/v1/messages/count_tokens` Verwenden Sie es, um Eingabe-Token für Anthropic-Claude-Modelle zu zählen, die [CountTokens](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_CountTokens.html)On nicht unterstützen `bedrock-runtime` — zum Beispiel, wenn das Modell nur über Cross-Region Inference (CRIS) on angeboten wird `bedrock-runtime` und es daher keinen Endpunkt gibt, auf den man zielen könnte. Region-specific [CountTokens](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_CountTokens.html) Der `/anthropic/v1/messages` Weg ist: Nicht anthropische Claude-specific Modelle sind zurück. `bedrock-mantle` `The model 'X' does not support the '/anthropic/v1/messages' API`

**Anforderungseinzelheiten**
+ **URL** —. `POST https://bedrock-mantle.{{region}}.api.aws/anthropic/v1/messages/count_tokens` Eine Liste der unterstützten Regionen finden Sie unter [Unterstützte Regionen und Endpunkte](bedrock-mantle.md#bedrock-mantle-supported).
+ **Hauptteil der Anfrage** — Die anthropische `count_tokens` Form, einschließlich`model`,`messages`, und optionaler `tools` Felder `system` und. Weitere Informationen finden Sie in der [Referenz zur Anzahl von Tokens in anthropischen Nachrichten](https://docs.anthropic.com/en/api/messages-count-tokens).
+ **Authentifizierung** — Entweder eine SigV4-Signatur mit dem Servicenamen oder ein Amazon Bedrock API-Schlüssel`bedrock-mantle`, der `x-api-key` im Header übergeben wurde. Siehe [API-Schlüssel](api-keys.md).
+ **IAM-Aktion** —. `bedrock-mantle:CountTokens` Die Autorisierung ist auf eine Amazon Bedrock [Project-Ressource](projects.md) des Formulars beschränkt. `arn:aws:bedrock-mantle:{{region}}:{{account-id}}:project/{{project-name}}` Der Standardname des Projekts ist. `default`
+ **SDK-Unterstützung** — Die AWS SDKs stellen derzeit keine Methode zur Verfügung, die auf diesen Endpunkt abzielt. Senden Sie die Anfrage als SigV4-signed HTTP `POST` oder verwenden Sie einen beliebigen HTTP-Client mit einem Amazon Bedrock API-Schlüssel. Die `bedrock-runtime` Client-Methode zielt `count_tokens` nicht auf diesen Endpunkt ab und gibt einen Validierungsfehler für Modelle zurück, die auf `bedrock-runtime` nicht unterstützt werden.
+ **Fehlerformat** — Fehler folgen der anthropischen Form:`{"type": "error", "request_id": "...", "error": {"type": "error-type", "message": "error-message"}}`. Dies unterscheidet sich vom standardmäßigen AWS JSON-Fehlerumschlag, der von zurückgegeben wird`bedrock-runtime`.

**Anmerkung**  
Der `count_tokens` Endpunkt validiert den Anforderungstext anhand desselben Schemas wie der entsprechende Inferenzendpunkt, sodass Anforderungsfelder, die das Modell nicht unterstützt, mit HTTP 400 zurückgewiesen werden. Zum Beispiel akzeptiert `strict: true` Anthropic Claude Opus 4.7 nicht on und kehrt zurück. `tools[]` `tools.0.custom.strict: Extra inputs are not permitted` Die [modellspezifische Merkmalsoberfläche finden Sie auf der Modellkarte](model-cards.md).

Das folgende Beispiel verwendet `curl` einen Amazon Bedrock API-Schlüssel, um Token auf dem `bedrock-mantle` Endpunkt zu zählen:

```
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?"}
    ]
  }'
```

Die Antwort enthält ein `input_tokens` Feld, dessen Wert die Token-Anzahl für die angegebene Eingabe ist.