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.
Dieser Abschnitt führt Sie durch das Ausprobieren einiger gängiger Operationen in Amazon Bedrock mit dem AWS Python um zu testen, ob Ihre Berechtigungen und Ihre Authentifizierung ordnungsgemäß eingerichtet sind. Bevor Sie die folgenden Beispiele ausführen, sollten Sie überprüfen, ob Sie die folgenden Voraussetzungen erfüllt haben:
Voraussetzungen
-
Sie haben einen AWS-Konto und einen Benutzer oder eine Rolle mit eingerichteter Authentifizierung und den erforderlichen Berechtigungen für Amazon Bedrock. Andernfalls folgen Sie den Schritten unterErste Schritte mit der -API.
-
Sie haben Zugriff auf das angefordert Amazon Titan Text G1 - Express Modell. Andernfalls folgen Sie den Schritten unterZugriff auf ein Amazon Bedrock Foundation-Modell anfordern.
-
Sie haben die Authentifizierung für das AWS SDK for Python (Boto3) installiert und eingerichtet. Um Boto3 zu installieren, folgen Sie den Schritten unter Schnellstart
in der Boto3-Dokumentation. Stellen Sie sicher, dass Sie Ihre Anmeldeinformationen für die Verwendung von Boto3 eingerichtet haben, indem Sie die Schritte unter ausführen. Besorgen Sie sich Anmeldeinformationen, um programmatischen Zugriff zu gewähren
Testen Sie, ob Ihre Berechtigungen für Amazon Bedrock ordnungsgemäß eingerichtet sind, indem Sie einen Benutzer oder eine Rolle verwenden, die Sie mit den richtigen Berechtigungen eingerichtet haben.
Die Amazon Bedrock-Dokumentation enthält auch Codebeispiele für andere Programmiersprachen. Weitere Informationen finden Sie unter Codebeispiele für Amazon Bedrock mit AWS SDKs.
Themen
Listen Sie die Fundamentmodelle auf, die Amazon Bedrock zu bieten hat
Im folgenden Beispiel wird der ListFoundationModelsVorgang mit einem Amazon Bedrock-Client ausgeführt. ListFoundationModels
listet die Foundation-Modelle (FMs) auf, die in Amazon Bedrock in Ihrer Region verfügbar sind. Führen Sie das folgende SDK für Python-Skript aus, um einen Amazon Bedrock-Client zu erstellen und den ListFoundationModelsVorgang zu testen:
"""
Lists the available Amazon Bedrock models in an AWS Region.
"""
import logging
import json
import boto3
from botocore.exceptions import ClientError
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
def list_foundation_models(bedrock_client):
"""
Gets a list of available Amazon Bedrock foundation models.
:return: The list of available bedrock foundation models.
"""
try:
response = bedrock_client.list_foundation_models()
models = response["modelSummaries"]
logger.info("Got %s foundation models.", len(models))
return models
except ClientError:
logger.error("Couldn't list foundation models.")
raise
def main():
"""Entry point for the example. Change aws_region to the AWS Region
that you want to use."""
aws_region = "us-east-1"
bedrock_client = boto3.client(service_name="bedrock", region_name=aws_region)
fm_models = list_foundation_models(bedrock_client)
for model in fm_models:
print(f"Model: {model["modelName"]}")
print(json.dumps(model, indent=2))
print("---------------------------\n")
logger.info("Done.")
if __name__ == "__main__":
main()
Wenn das Skript erfolgreich ist, gibt die Antwort eine Liste der Foundation-Modelle zurück, die in Amazon Bedrock verfügbar sind.
Senden Sie eine Textaufforderung an ein Modell und generieren Sie eine Textantwort mit InvokeModel
Im folgenden Beispiel wird der InvokeModelVorgang mit einem Amazon Bedrock-Client ausgeführt. InvokeModel
ermöglicht es Ihnen, eine Aufforderung zur Generierung einer Modellantwort einzureichen. Führen Sie das folgende SDK für Python-Skript aus, um einen Amazon Bedrock Runtime-Client zu erstellen und eine Textantwort mit dem Vorgang zu generieren:
# Use the native inference API to send a text message to Amazon Titan Text G1 - Express.
import boto3
import json
from botocore.exceptions import ClientError
# Create an Amazon Bedrock Runtime client.
brt = boto3.client("bedrock-runtime")
# Set the model ID, e.g., Amazon Titan Text G1 - Express.
model_id = "amazon.titan-text-express-v1"
# 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,
"topP": 0.9
},
}
# Convert the native request to JSON.
request = json.dumps(native_request)
try:
# Invoke the model with the request.
response = brt.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)
Wenn der Befehl erfolgreich ist, gibt die Antwort den Text zurück, der vom Modell als Antwort auf die Aufforderung generiert wurde.
Senden Sie eine Textaufforderung an ein Modell und generieren Sie mit Converse eine Textantwort
Im folgenden Beispiel wird der Converse-Vorgang mit einem Amazon Bedrock-Client ausgeführt. Wir empfehlen, Converse
Operation Over zu verwenden, InvokeModel
sofern dies unterstützt wird, da es die Inferenzanforderung für alle Amazon Bedrock-Modelle vereinheitlicht und die Verwaltung von Multi-Turn-Konversationen vereinfacht. Führen Sie das folgende SDK für Python-Skript aus, um einen Amazon Bedrock Runtime-Client zu erstellen und eine Textantwort mit dem Converse
Vorgang zu generieren:
# Use the Conversation API to send a text message to Amazon Titan Text G1 - Express.
import boto3
from botocore.exceptions import ClientError
# Create an Amazon Bedrock Runtime client.
brt = boto3.client("bedrock-runtime")
# Set the model ID, e.g., Amazon Titan Text G1 - Express.
model_id = "amazon.titan-text-express-v1"
# Start a conversation with the user message.
user_message = "Describe the purpose of a 'hello world' program in one line."
conversation = [
{
"role": "user",
"content": [{"text": user_message}],
}
]
try:
# Send the message to the model, using a basic inference configuration.
response = brt.converse(
modelId=model_id,
messages=conversation,
inferenceConfig={"maxTokens": 512, "temperature": 0.5, "topP": 0.9},
)
# Extract and print the response text.
response_text = response["output"]["message"]["content"][0]["text"]
print(response_text)
except (ClientError, Exception) as e:
print(f"ERROR: Can't invoke '{model_id}'. Reason: {e}")
exit(1)
Wenn der Befehl erfolgreich ist, gibt die Antwort den Text zurück, der vom Modell als Antwort auf die Aufforderung generiert wurde.