Verwenden der API zum Aufrufen eines Modells mit einer einzigen Eingabeaufforderung - 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.

Verwenden der API zum Aufrufen eines Modells mit einer einzigen Eingabeaufforderung

Führen Sie Inferenzen für ein Modell über die API durch, indem Sie eine InvokeModelWithResponseStreamOder-Anfrage InvokeModelsenden. Sie können den Medientyp für die Anforderungs- und Antworttexte in den Feldern contentType und acceptangeben. Wenn Sie keinen Wert angeben, lautet der Standardwert für beide Felder application/json.

Streaming wird für alle Textausgabemodelle mit Ausnahme von Modellen unterstützt AI21 LabsJurassic-2. Um zu überprüfen, ob ein Modell Streaming unterstützt, senden Sie eine GetFoundationModelListFoundationModelsOder-Anfrage und überprüfen Sie den Wert im responseStreamingSupported Feld.

Geben Sie je nach verwendetem Modell die folgenden Felder an.

  1. modelId: Verwenden Sie entweder die Modell-ID oder ihren ARN. Die Methode zur Suche nach dem modelId Oder modelArn hängt von der Art des verwendeten Modells ab:

    • Basismodell: Führen Sie einen der folgenden Schritte aus.

      • Eine Liste der Modell-IDs für alle von Amazon Bedrock unterstützten Basismodelle finden Sie unterAmazon Bedrock-Basismodell-IDs (Durchsatz auf Abruf) .

      • Senden Sie eine ListFoundationModelsAnfrage und suchen Sie nach dem modelId Oder modelArn des Modells, das Sie in der Antwort verwenden möchten.

      • Wählen Sie in der Konsole unter Anbieter ein Modell aus und suchen Sie die modelId im Beispiel für die API-Anforderung.

    • Benutzerdefiniertes Modell: Erwerben Sie bereitgestellten Durchsatz für das benutzerdefinierte Modell (weitere Informationen finden Sie unter Bereitgestellter Durchsatz für Amazon Bedrock) und ermitteln Sie die Modell-ID oder den ARN des bereitgestellten Modells.

    • Bereitgestelltes Modell: Wenn Sie einen bereitgestellten Durchsatz für ein Basismodell oder ein benutzerdefiniertes Modell erstellt haben, gehen Sie wie folgt vor.

      • Senden Sie eine ListProvisionedModelThroughputsAnfrage und suchen Sie nach provisionedModelArn dem Modell, das in der Antwort verwendet werden soll.

      • Wählen Sie in der Konsole unter Provisioned Throughput ein Modell aus und suchen Sie den Modell-ARN im Abschnitt Modelldetails.

  2. body: Jedes Basismodell hat seine eigenen Inferenzparameter, die Sie im Feld body festlegen. Die Inferenzparameter für ein benutzerdefiniertes oder bereitgestelltes Modell hängen vom Basismodell ab, auf deren Basis sie erstellt wurden. Weitere Informationen finden Sie unter Inferenzparameter für Basismodelle.

Beispiel für das Aufrufen von Modellcode

Die folgenden Beispiele zeigen, wie Inferenzen mit der InvokeModelAPI ausgeführt werden. Beispiele mit unterschiedlichen Modellen finden Sie in der Referenz zu den Inferenzparametern für das gewünschte Modell (Inferenzparameter für Basismodelle).

CLI

Im folgenden Beispiel wird die generierte Antwort auf die Aufforderung Story of Two Dogs in einer Datei namens invoke-model-output.txt gespeichert.

aws bedrock-runtime invoke-model \ --model-id anthropic.claude-v2 \ --body '{"prompt": "\n\nHuman: story of two dogs\n\nAssistant:", "max_tokens_to_sample" : 300}' \ --cli-binary-format raw-in-base64-out \ invoke-model-output.txt
Python

Das folgende Beispiel gibt eine generierte Antwort auf die Eingabeaufforderung explain black holes to 8th graders zurück.

import boto3 import json brt = boto3.client(service_name='bedrock-runtime') body = json.dumps({ "prompt": "\n\nHuman: explain black holes to 8th graders\n\nAssistant:", "max_tokens_to_sample": 300, "temperature": 0.1, "top_p": 0.9, }) modelId = 'anthropic.claude-v2' accept = 'application/json' contentType = 'application/json' response = brt.invoke_model(body=body, modelId=modelId, accept=accept, contentType=contentType) response_body = json.loads(response.get('body').read()) # text print(response_body.get('completion'))

Beispiel für das Aufrufen eines Modells mit Streaming-Code

Anmerkung

Das AWS CLI unterstützt kein Streaming.

Das folgende Beispiel zeigt, wie die InvokeModelWithResponseStreamAPI verwendet wird, um Streaming-Text mit Python zu generieren, indem die Aufforderung write an essay for living on mars in 1000 words verwendet wird.

import boto3 import json brt = boto3.client(service_name='bedrock-runtime') body = json.dumps({ 'prompt': '\n\nHuman: write an essay for living on mars in 1000 words\n\nAssistant:', 'max_tokens_to_sample': 4000 }) response = brt.invoke_model_with_response_stream( modelId='anthropic.claude-v2', body=body ) stream = response.get('body') if stream: for event in stream: chunk = event.get('chunk') if chunk: print(json.loads(chunk.get('bytes').decode()))