View a markdown version of this page

Überwachen der Tokennutzung, indem die Token vor der Ausführung der Inferenz gezählt werden - Amazon Bedrock

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

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 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 Nutzung der CountTokens API fallen keine Gebühren an.

Anmerkung

Einige Modelle von Anthropic Claude — darunter auch solche, die nur mit aktivierter regionsübergreifender Inferenz (CRIS) gestartet werden bedrock-runtime — unterstützen On nicht. CountTokens 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 die Token mithilfe des Bedrock-Mantle-Endpunkts den Anforderungstext 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.

Unterstützte Modelle und Regionen für die Tokenzählung

Um zu sehen, welche Modelle die Token-Zählung unterstützen, besuchen Sie bitte Modelle auf einen Blick und wählen Sie das Modell aus, an dem Sie interessiert sind.

Zählen Sie die Token mithilfe des Bedrock-Runtime-Endpunkts

Um die Anzahl der Eingabe-Token in einer Inferenzanforderung zu zählen, senden Sie eine CountTokens Anfrage mit einem Amazon Bedrock-Laufzeitendpunkt. Geben Sie das Modell im Header und die Eingabe, für die die Token gezählt werden sollen, im Feld an. body Der Wert des body Felds hängt davon ab, ob Sie die Eingabe-Token für eine InvokeModel oder eine https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Converse.html Converse-Anfrage 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ähle die Token für eine Bedrock-Runtime-Anfrage

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 das Programm heruntergeladen AWS SDK für Python (Boto3) und Ihre Konfiguration ist so eingerichtet, dass Ihre Anmeldeinformationen und Ihre 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):

    • bedrock: CountTokens — Erlaubt 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.

Um das Zählen von Token für eine InvokeModel Anfrage auszuprobieren, führen Sie den folgenden Python-Code aus:

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 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 die Token mithilfe des Bedrock-Mantle-Endpunkts

Der bedrock-mantle Endpunkt macht die count_tokens API von Anthropic unter verfügbar. /anthropic/v1/messages/count_tokens Verwenden Sie es, um die Eingabetoken für Anthropic Claude-Modelle zu zählen, die CountTokens On nicht unterstützen bedrock-runtime — zum Beispiel, wenn das Modell nur über Crossregion Inference (CRIS) aktiviert ist bedrock-runtime und es daher keinen Endpunkt für das Ziel gibt. Region-specific CountTokens Der /anthropic/v1/messages Weg ist: Nicht-anthropische Modelle auf dem Weg zurück Claude-specific. 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.

  • Anfragetext — Die anthropische count_tokens Form, einschließlich modelmessages, und optionaler tools Felder system und. Weitere Informationen finden Sie in der Referenz zur Anzahl der Tokens für anthropische Nachrichten.

  • Authentifizierung — Entweder eine SigV4-Signatur mit Servicenamen bedrock-mantle oder ein im Header übergebener Amazon Bedrock-API-Schlüssel. x-api-key Siehe API-Schlüssel.

  • IAM-Aktion —. bedrock-mantle:CountTokens Diese Aktion verwendet das bedrock-mantle Servicepräfix und erscheint in der Serviceautorisierungsreferenz von Amazon Bedrock Powered by AWS Mantle und nicht in der Amazon Bedrock () -Referenz. bedrock Die Autorisierung bezieht sich auf eine Amazon Bedrock Project-Ressource des Formulars. arn:aws:bedrock-mantle:region:account-id:project/project-name Der Standardprojektname lautet. default

  • SDK-Unterstützung — Die AWS SDKs bieten derzeit keine Methode an, 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 nicht unterstützt werden. bedrock-runtime

  • Fehlerformat — Fehler folgen der anthropischen Form:{"type": "error", "request_id": "...", "error": {"type": "error-type", "message": "error-message"}}. Dies unterscheidet sich von dem standardmäßigen AWS JSON-Fehlerumschlag, der von zurückgegeben wirdbedrock-runtime.

Anmerkung

Der count_tokens Endpunkt validiert den Anforderungstext unter Verwendung desselben Schemas wie der entsprechende Inferenzendpunkt, sodass Anforderungsfelder, die das Modell nicht unterstützt, mit HTTP 400 abgelehnt werden. Anthropic Claude Opus 4.7 akzeptiert strict: true beispielsweise kein On und gibt es zurück. tools[] tools.0.custom.strict: Extra inputs are not permitted Die modellspezifische Merkmalsoberfläche finden Sie auf der Modellkarte.

Im folgenden Beispiel wird ein Amazon Bedrock-API-Schlüssel verwendetcurl, um Tokens auf dem Endpunkt zu zählen: bedrock-mantle

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.