Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Invia una sola richiesta con InvokeModel
L'inferenza viene eseguita su un singolo prompt utilizzando le operazioni InvokeModele InvokeModelWithResponseStreamAPI e specificando un modello. I modelli Amazon Bedrock si differenziano per l’accettazione di input di testo, immagini o video e per la possibilità di produrre output di testo, immagini o embedding. Alcuni modelli possono restituire la risposta in un flusso. Per controllare il supporto del modello per input, output e streaming, esegui una di queste operazioni:
I limiti per InvokeModel e InvokeModelWithResponseStream sono i seguenti:
Esegui l'inferenza del modello su un prompt inviando una InvokeModelWithResponseStreamrichiesta InvokeModelor con un endpoint di runtime Amazon Bedrock.
I seguenti campi sono obbligatori:
I seguenti campi sono facoltativi:
Invocare esempi di codice del modello
Questo argomento fornisce alcuni esempi di base per eseguire l'inferenza utilizzando un singolo prompt con l'InvokeModelAPI. Per altri esempi con modelli diversi, consulta le seguenti risorse:
Gli esempi seguenti presuppongono che tu abbia impostato l'accesso programmatico in modo da autenticarti automaticamente all' AWS CLI SDK for Python (Boto3) come impostazione predefinita quando esegui questi esempi. Regione AWS Per informazioni sulla configurazione dell’accesso alla programmazione, consulta Iniziare a utilizzare l’API.
Esamina i seguenti punti prima di provare gli esempi:
-
È possibile testare questi esempi nella Regione Stati Uniti orientali (Virginia settentrionale) (us-east-1), che supporta tutti i modelli utilizzati negli esempi.
-
Il parametro body può essere di grandi dimensioni, quindi per alcuni esempi di CLI, verrà chiesto di creare un file JSON e di passarlo all’argomento --body anziché specificarlo nella riga di comando.
-
Per gli esempi di immagini e video, verrà chiesto di utilizzare la propria immagine e il proprio video. Gli esempi presuppongono che il file di immagine abbia un nome image.png e che il file video abbia un nome. video.mp4
-
Potrebbe essere necessario convertire immagini o video in una stringa con codifica base64 o caricarli in una posizione Amazon S3. Negli esempi, è necessario sostituire i segnaposto con la stringa effettiva con codifica base64 o con la posizione S3.
Espandi una sezione per provare alcuni esempi di codice di base.
I seguenti esempi generano una risposta di testo a un prompt di testo utilizzando il modello Amazon Titan Text Premier. Scegli la scheda relativa al metodo che preferisci, quindi segui la procedura:
- CLI
-
Eseguite il seguente comando in un terminale e trovate la risposta generata in un file chiamatoinvoke-model-output.txt.
aws bedrock-runtime invoke-model \
--model-id amazon.titan-text-premier-v1:0 \
--body '{
"inputText": "Describe the purpose of a 'hello world' program in one line.",
"textGenerationConfig": {
"maxTokenCount": 512,
"temperature": 0.5
}
}' \
--cli-binary-format raw-in-base64-out \
invoke-model-output.txt
- Python
-
Esegui il codice Python di esempio per generare una risposta di testo:
# Use the native inference API to send a text message to Amazon Titan Text.
import boto3
import json
from botocore.exceptions import ClientError
# Create a Bedrock Runtime client in the AWS Region of your choice.
client = boto3.client("bedrock-runtime", region_name="us-east-1")
# Set the model ID, e.g., Titan Text Premier.
model_id = "amazon.titan-text-premier-v1:0"
# Define the prompt for the model.
prompt = "Describe the purpose of a 'hello world' program in one line."
# Format the request payload using the model's native structure.
native_request = {
"inputText": prompt,
"textGenerationConfig": {
"maxTokenCount": 512,
"temperature": 0.5,
},
}
# Convert the native request to JSON.
request = json.dumps(native_request)
try:
# Invoke the model with the request.
response = client.invoke_model(modelId=model_id, body=request)
except (ClientError, Exception) as e:
print(f"ERROR: Can't invoke '{model_id}'. Reason: {e}")
exit(1)
# Decode the response body.
model_response = json.loads(response["body"].read())
# Extract and print the response text.
response_text = model_response["results"][0]["outputText"]
print(response_text)
Gli esempi seguenti generano una risposta testuale a un prompt di testo utilizzando il modello OpenAI GPT con un livello di servizio per dare priorità alla richiesta. Scegli la scheda relativa al metodo che preferisci, quindi segui la procedura:
- CLI
-
Esegui il comando seguente in un terminale e convalida il livello di servizio nella risposta.
aws bedrock-runtime invoke-model \
--model-id openai.gpt-oss-120b-1:0 \
--body '{
"messages": [
{
"role": "user",
"content": "Describe the purpose of a '\''hello world'\'' program in one line."
}
],
"max_tokens": 512,
"temperature": 0.7
}' \
--content-type application/json \
--accept application/json \
--service-tier priority \
--cli-binary-format raw-in-base64-out
- Python
-
Esegui il seguente esempio di codice Python per generare una risposta testuale con livello di servizio:
import boto3
import json
# Create a Bedrock Runtime client
bedrock_runtime = boto3.client(
service_name="bedrock-runtime",
region_name="us-east-1"
)
# Define the model ID and request body
model_id = "openai.gpt-oss-120b-1:0"
body = json.dumps({
"messages": [
{
"role": "user",
"content": "Describe the purpose of a 'hello world' program in one line."
}
],
"max_tokens": 512,
"temperature": 0.7
})
# Make the request with service tier
response = bedrock_runtime.invoke_model(
modelId=model_id,
body=body,
contentType="application/json",
accept="application/json",
serviceTier="priority"
)
# Parse and print the response
response_body = json.loads(response["body"])
print(response_body)
I seguenti esempi di codice generano un’immagine utilizzando un prompt di testo con il modello Stable Diffusion XL 1.0. Scegli la scheda relativa al metodo che preferisci, quindi segui la procedura:
- CLI
-
Esegui il seguente comando in un terminale e trova la risposta generata in un file chiamatoinvoke-model-output.txt. I byte che rappresentano l’immagine si trovano nel campo base64 della risposta:
aws bedrock-runtime invoke-model \
--model-id stability.stable-diffusion-xl-v1 \
--body '{
"text_prompts": [{"text": "A stylized picture of a cute old steampunk robot."}],
"style_preset": "photographic",
"seed": 0,
"cfg_scale": 10,
"steps": 30
}' \
--cli-binary-format raw-in-base64-out \
invoke-model-output.txt
- Python
-
Esegui il seguente esempio di codice Python per generare un'immagine e trovare il file di stability_1.png immagine risultante in una cartella chiamata. output
# Use the native inference API to create an image with Amazon Titan Image Generator
import base64
import boto3
import json
import os
import random
# Create a Bedrock Runtime client in the AWS Region of your choice.
client = boto3.client("bedrock-runtime", region_name="us-east-1")
# Set the model ID, e.g., Titan Image Generator G1.
model_id = "amazon.titan-image-generator-v2:0"
# Define the image generation prompt for the model.
prompt = "A stylized picture of a cute old steampunk robot."
# Generate a random seed.
seed = random.randint(0, 2147483647)
# Format the request payload using the model's native structure.
native_request = {
"taskType": "TEXT_IMAGE",
"textToImageParams": {"text": prompt},
"imageGenerationConfig": {
"numberOfImages": 1,
"quality": "standard",
"cfgScale": 8.0,
"height": 512,
"width": 512,
"seed": seed,
},
}
# Convert the native request to JSON.
request = json.dumps(native_request)
# Invoke the model with the request.
response = client.invoke_model(modelId=model_id, body=request)
# Decode the response body.
model_response = json.loads(response["body"].read())
# Extract the image data.
base64_image_data = model_response["images"][0]
# Save the generated image to a local folder.
i, output_dir = 1, "output"
if not os.path.exists(output_dir):
os.makedirs(output_dir)
while os.path.exists(os.path.join(output_dir, f"titan_{i}.png")):
i += 1
image_data = base64.b64decode(base64_image_data)
image_path = os.path.join(output_dir, f"titan_{i}.png")
with open(image_path, "wb") as file:
file.write(image_data)
print(f"The generated image has been saved to {image_path}")
I seguenti esempi utilizzano il modello Amazon Titan Text Embeddings V2 per generare embedding binari per un input di testo. Scegli la scheda relativa al metodo che preferisci, quindi segui la procedura:
- CLI
-
Esegui il seguente comando in un terminale e trova la risposta generata in un file chiamatoinvoke-model-output.txt. Gli embedding risultanti si trovano nel campo binary.
aws bedrock-runtime invoke-model \
--model-id amazon.titan-embed-text-v2:0 \
--body '{
"inputText": "What are the different services that you offer?",
"embeddingTypes": ["binary"]
}' \
--cli-binary-format raw-in-base64-out \
invoke-model-output.txt
- Python
-
Esegui questo esempio di codice Python per generare embedding per il testo fornito:
# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
# SPDX-License-Identifier: Apache-2.0
"""
Shows how to generate an embedding with the Amazon Titan Text Embeddings V2 Model
"""
import json
import logging
import boto3
from botocore.exceptions import ClientError
logger = logging.getLogger(__name__)
logging.basicConfig(level=logging.INFO)
def generate_embedding(model_id, body):
"""
Generate an embedding with the vector representation of a text input using Amazon Titan Text Embeddings G1 on demand.
Args:
model_id (str): The model ID to use.
body (str) : The request body to use.
Returns:
response (JSON): The embedding created by the model and the number of input tokens.
"""
logger.info("Generating an embedding with Amazon Titan Text Embeddings V2 model %s", model_id)
bedrock = boto3.client(service_name='bedrock-runtime')
accept = "application/json"
content_type = "application/json"
response = bedrock.invoke_model(
body=body, modelId=model_id, accept=accept, contentType=content_type
)
response_body = json.loads(response.get('body').read())
return response_body
def main():
"""
Entrypoint for Amazon Titan Embeddings V2 - Text example.
"""
logging.basicConfig(level=logging.INFO,
format="%(levelname)s: %(message)s")
model_id = "amazon.titan-embed-text-v2:0"
input_text = "What are the different services that you offer?"
# Create request body.
body = json.dumps({
"inputText": input_text,
"embeddingTypes": ["binary"]
})
try:
response = generate_embedding(model_id, body)
print(f"Generated an embedding: {response['embeddingsByType']['binary']}") # returns binary embedding
print(f"Input text: {input_text}")
print(f"Input Token count: {response['inputTextTokenCount']}")
except ClientError as err:
message = err.response["Error"]["Message"]
logger.error("A client error occurred: %s", message)
print("A client error occured: " +
format(message))
else:
print(f"Finished generating an embedding with Amazon Titan Text Embeddings V2 model {model_id}.")
if __name__ == "__main__":
main()
I seguenti esempi utilizzano il modello Amazon Titan Multimodal Embeddings G1 per generare embedding per un’input immagine. Scegli la scheda relativa al metodo che preferisci, quindi segui la procedura:
- CLI
-
Apri il terminale ed esegui questo comando:
-
Converti un'immagine con un titolo image.png nella tua cartella corrente in una stringa con codifica base64 e scrivila in un file intitolato image.txt eseguendo il seguente comando:
base64 -i image.png -o image.txt
-
Crea un file JSON chiamato image-input-embeddings-output.json e incolla il seguente codice JSON, sostituendolo ${image-base64} con il contenuto del image.txt file (assicurati che non ci sia una nuova riga alla fine della stringa):
{
"inputImage": "${image-base64}",
"embeddingConfig": {
"outputEmbeddingLength": 256
}
}
-
Eseguite il comando seguente, specificando il image-input-embeddings-output.json file come corpo.
aws bedrock-runtime invoke-model \
--model-id amazon.titan-embed-image-v1 \
--body file://image-input-embeddings-output.json \
--cli-binary-format raw-in-base64-out \
invoke-model-output.txt
-
Trova gli incorporamenti risultanti nel invoke-model-output.txt file.
- Python
-
Nel seguente script Python, sostituisci /path/to/image con il percorso di un'immagine effettiva. Esegui lo script per generare gli embedding:
# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
# SPDX-License-Identifier: Apache-2.0
"""
Shows how to generate embeddings from an image with the Amazon Titan Multimodal Embeddings G1 model (on demand).
"""
import base64
import json
import logging
import boto3
from botocore.exceptions import ClientError
class EmbedError(Exception):
"Custom exception for errors returned by Amazon Titan Multimodal Embeddings G1"
def __init__(self, message):
self.message = message
logger = logging.getLogger(__name__)
logging.basicConfig(level=logging.INFO)
def generate_embeddings(model_id, body):
"""
Generate a vector of embeddings for an image input using Amazon Titan Multimodal Embeddings G1 on demand.
Args:
model_id (str): The model ID to use.
body (str) : The request body to use.
Returns:
response (JSON): The embeddings that the model generated, token information, and the
reason the model stopped generating embeddings.
"""
logger.info("Generating embeddings with Amazon Titan Multimodal Embeddings G1 model %s", model_id)
bedrock = boto3.client(service_name='bedrock-runtime')
accept = "application/json"
content_type = "application/json"
response = bedrock.invoke_model(
body=body, modelId=model_id, accept=accept, contentType=content_type
)
response_body = json.loads(response.get('body').read())
finish_reason = response_body.get("message")
if finish_reason is not None:
raise EmbedError(f"Embeddings generation error: {finish_reason}")
return response_body
def main():
"""
Entrypoint for Amazon Titan Multimodal Embeddings G1 example.
"""
logging.basicConfig(level=logging.INFO,
format="%(levelname)s: %(message)s")
# Read image from file and encode it as base64 string.
with open("/path/to/image", "rb") as image_file:
input_image = base64.b64encode(image_file.read()).decode('utf8')
model_id = 'amazon.titan-embed-image-v1'
output_embedding_length = 256
# Create request body.
body = json.dumps({
"inputImage": input_image,
"embeddingConfig": {
"outputEmbeddingLength": output_embedding_length
}
})
try:
response = generate_embeddings(model_id, body)
print(f"Generated image embeddings of length {output_embedding_length}: {response['embedding']}")
except ClientError as err:
message = err.response["Error"]["Message"]
logger.error("A client error occurred: %s", message)
print("A client error occured: " +
format(message))
except EmbedError as err:
logger.error(err.message)
print(err.message)
else:
print(f"Finished generating image embeddings with Amazon Titan Multimodal Embeddings G1 model {model_id}.")
if __name__ == "__main__":
main()
Scegli la scheda relativa al metodo che preferisci, quindi segui la procedura:
- CLI
-
L’esempio seguente utilizza il modello Anthropic Claude 3 Haiku per generare una risposta, sulla base di un’immagine e di un prompt di testo che chiede il contenuto dell’immagine stessa. Apri il terminale ed esegui questo comando:
-
Converte un'immagine con titolo image.png nella cartella corrente in una stringa con codifica base64 e scrivila in un file intitolato eseguendo il seguente comando: image.txt
base64 -i image.png -o image.txt
-
Crea un file JSON chiamato image-text-input.json e incolla il seguente codice JSON, sostituendolo ${image-base64} con il contenuto del image.txt file (assicurati che non ci sia una nuova riga alla fine della stringa):
{
"anthropic_version": "bedrock-2023-05-31",
"max_tokens": 1000,
"messages": [
{
"role": "user",
"content": [
{
"type": "image",
"source": {
"type": "base64",
"media_type": "image/png",
"data": "${image-base64}"
}
},
{
"type": "text",
"text": "What's in this image?"
}
]
}
]
}
-
Esegui il comando seguente per generare un output di testo, basato sull'immagine e sul prompt di testo che lo accompagna, in un file chiamato: invoke-model-output.txt
aws bedrock-runtime invoke-model \
--model-id anthropic.claude-3-haiku-20240307-v1:0 \
--body file://image-text-input.json \
--cli-binary-format raw-in-base64-out \
invoke-model-output.txt
-
Trova l'output nel invoke-model-output.txt file nella cartella corrente.
- Python
-
Nel seguente script python, sostituiscilo /path/to/image.png con il percorso effettivo dell'immagine prima di eseguire lo script:
# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
# SPDX-License-Identifier: Apache-2.0
"""
Shows how to run a multimodal prompt with Anthropic Claude (on demand) and InvokeModel.
"""
import json
import logging
import base64
import boto3
from botocore.exceptions import ClientError
logger = logging.getLogger(__name__)
logging.basicConfig(level=logging.INFO)
def run_multi_modal_prompt(bedrock_runtime, model_id, messages, max_tokens):
"""
Invokes a model with a multimodal prompt.
Args:
bedrock_runtime: The Amazon Bedrock boto3 client.
model_id (str): The model ID to use.
messages (JSON) : The messages to send to the model.
max_tokens (int) : The maximum number of tokens to generate.
Returns:
None.
"""
body = json.dumps(
{
"anthropic_version": "bedrock-2023-05-31",
"max_tokens": max_tokens,
"messages": messages
}
)
response = bedrock_runtime.invoke_model(
body=body, modelId=model_id)
response_body = json.loads(response.get('body').read())
return response_body
def main():
"""
Entrypoint for Anthropic Claude multimodal prompt example.
"""
try:
bedrock_runtime = boto3.client(service_name='bedrock-runtime')
model_id = 'anthropic.claude-3-sonnet-20240229-v1:0'
max_tokens = 1000
input_text = "What's in this image?"
input_image = "/path/to/image" # Replace with actual path to image file
# Read reference image from file and encode as base64 strings.
image_ext = input_image.split(".")[-1]
with open(input_image, "rb") as image_file:
content_image = base64.b64encode(image_file.read()).decode('utf8')
message = {
"role": "user",
"content": [
{
"type": "image",
"source": {
"type": "base64",
"media_type": f"image/{image_ext}",
"data": content_image
}
},
{
"type": "text",
"text": input_text
}
]
}
messages = [message]
response = run_multi_modal_prompt(
bedrock_runtime, model_id, messages, max_tokens)
print(json.dumps(response, indent=4))
except ClientError as err:
message = err.response["Error"]["Message"]
logger.error("A client error occurred: %s", message)
print("A client error occurred: " +
format(message))
if __name__ == "__main__":
main()
Gli esempi seguenti mostrano come generare una risposta con il modello Amazon Nova Lite, sulla base di un video caricato in un bucket S3 e di un prompt di testo associato.
Prerequisito: carica un video intitolato video.mp4 su un bucket Amazon S3 nel tuo account seguendo la procedura descritta in Uploading objects nella Amazon Simple Storage Service User Guide. Prendi nota dell’URI S3 del video.
Scegli la scheda relativa al metodo che preferisci, quindi segui la procedura:
- CLI
-
Apri un terminale ed esegui il comando seguente, sostituendolo s3://amzn-s3-demo-bucket/video.mp4 con la posizione S3 effettiva del tuo video:
aws bedrock-runtime invoke-model \
--model-id amazon.nova-lite-v1:0 \
--body '{
"messages": [
{
"role": "user",
"content": [
{
"video": {
"format": "mp4",
"source": {
"s3Location": {
"uri": "s3://amzn-s3-demo-bucket/video.mp4"
}
}
}
},
{
"text": "What happens in this video?"
}
]
}
]
}' \
--cli-binary-format raw-in-base64-out \
invoke-model-output.txt
Trova l'output nel invoke-model-output.txt file nella cartella corrente.
- Python
-
Nel seguente script Python, sostituiscilo s3://amzn-s3-demo-bucket/video.mp4 con la posizione S3 effettiva del tuo video. Esegui lo script.
# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
# SPDX-License-Identifier: Apache-2.0
"""
Shows how to run a multimodal prompt with Nova Lite (on demand) and InvokeModel.
"""
import json
import logging
import base64
import boto3
from botocore.exceptions import ClientError
logger = logging.getLogger(__name__)
logging.basicConfig(level=logging.INFO)
def run_multi_modal_prompt(bedrock_runtime, model_id, messages, max_tokens):
"""
Invokes a model with a multimodal prompt.
Args:
bedrock_runtime: The Amazon Bedrock boto3 client.
model_id (str): The model ID to use.
messages (JSON) : The messages to send to the model.
max_tokens (int) : The maximum number of tokens to generate.
Returns:
None.
"""
body = json.dumps(
{
"messages": messages,
"inferenceConfig": {
"maxTokens": max_tokens
}
}
)
response = bedrock_runtime.invoke_model(
body=body, modelId=model_id)
response_body = json.loads(response.get('body').read())
return response_body
def main():
"""
Entrypoint for Nova Lite video prompt example.
"""
try:
bedrock_runtime = boto3.client(service_name='bedrock-runtime')
model_id = "amazon.nova-lite-v1:0"
max_tokens = 1000
input_video_s3_uri = "s3://amzn-s3-demo-bucket/video.mp4" # Replace with real S3 URI
video_ext = input_video_s3_uri.split(".")[-1]
input_text = "What happens in this video?"
message = {
"role": "user",
"content": [
{
"video": {
"format": video_ext,
"source": {
"s3Location": {
"uri": input_video_s3_uri
}
}
}
},
{
"text": input_text
}
]
}
messages = [message]
response = run_multi_modal_prompt(
bedrock_runtime, model_id, messages, max_tokens)
print(json.dumps(response, indent=4))
except ClientError as err:
message = err.response["Error"]["Message"]
logger.error("A client error occurred: %s", message)
print("A client error occured: " +
format(message))
if __name__ == "__main__":
main()
Gli esempi seguenti mostrano come generare una risposta con il modello Amazon Nova Lite, sulla base di un video convertito con codifica base64 e di un prompt di testo associato. Scegli la scheda relativa al metodo che preferisci, quindi segui la procedura:
- CLI
-
Esegui questa operazione:
-
Convertite un video intitolato video.mp4 nella cartella corrente in base64 eseguendo il seguente comando:
base64 -i video.mp4 -o video.txt
-
Crea un file JSON chiamato video-text-input.json e incolla il seguente codice JSON, sostituendolo ${video-base64} con il contenuto del video.txt file (assicurati che non ci sia una nuova riga alla fine):
{
"messages": [
{
"role": "user",
"content": [
{
"video": {
"format": "mp4",
"source": {
"bytes": ${video-base64}
}
}
},
{
"text": "What happens in this video?"
}
]
}
]
}
-
Eseguite il comando seguente per generare un output di testo basato sul video e sul relativo messaggio di testo in un file chiamato: invoke-model-output.txt
aws bedrock-runtime invoke-model \
--model-id amazon.nova-lite-v1:0 \
--body file://video-text-input.json \
--cli-binary-format raw-in-base64-out \
invoke-model-output.txt
-
Trova l'output nel invoke-model-output.txt file nella cartella corrente.
- Python
-
Nel seguente script Python, sostituiscilo /path/to/video.mp4 con il percorso effettivo del video. Esegui lo script.
# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
# SPDX-License-Identifier: Apache-2.0
"""
Shows how to run a multimodal prompt with Nova Lite (on demand) and InvokeModel.
"""
import json
import logging
import base64
import boto3
from botocore.exceptions import ClientError
logger = logging.getLogger(__name__)
logging.basicConfig(level=logging.INFO)
def run_multi_modal_prompt(bedrock_runtime, model_id, messages, max_tokens):
"""
Invokes a model with a multimodal prompt.
Args:
bedrock_runtime: The Amazon Bedrock boto3 client.
model_id (str): The model ID to use.
messages (JSON) : The messages to send to the model.
max_tokens (int) : The maximum number of tokens to generate.
Returns:
None.
"""
body = json.dumps(
{
"messages": messages,
"inferenceConfig": {
"maxTokens": max_tokens
}
}
)
response = bedrock_runtime.invoke_model(
body=body, modelId=model_id)
response_body = json.loads(response.get('body').read())
return response_body
def main():
"""
Entrypoint for Nova Lite video prompt example.
"""
try:
bedrock_runtime = boto3.client(service_name='bedrock-runtime')
model_id = "amazon.nova-lite-v1:0"
max_tokens = 1000
input_video = "/path/to/video.mp4" # Replace with real path to video
video_ext = input_video.split(".")[-1]
input_text = "What happens in this video?"
# Read reference video from file and encode as base64 string.
with open(input_video, "rb") as video_file:
content_video = base64.b64encode(video_file.read()).decode('utf8')\
message = {
"role": "user",
"content": [
{
"video": {
"format": video_ext,
"source": {
"bytes": content_video
}
}
},
{
"text": input_text
}
]
}
messages = [message]
response = run_multi_modal_prompt(
bedrock_runtime, model_id, messages, max_tokens)
print(json.dumps(response, indent=4))
except ClientError as err:
message = err.response["Error"]["Message"]
logger.error("A client error occurred: %s", message)
print("A client error occured: " +
format(message))
if __name__ == "__main__":
main()
Invocazione del modello con un esempio di codice in streaming
Non AWS CLI supporta lo streaming.
L'esempio seguente mostra come utilizzare l'InvokeModelWithResponseStreamAPI per generare testo in streaming con Python utilizzando il prompt. write an essay for living on mars in 1000
words
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()))