

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.

# Führen Sie Amazon Bedrock API-Beispielanfragen über das AWS SDK for Python (Boto3)
<a name="getting-started-api-ex-python"></a>

Dieser Abschnitt führt Sie durch das Ausprobieren einiger gängiger Vorgänge in Amazon Bedrock, AWS Python um zu testen, ob Ihre Berechtigungen und Authentifizierung ordnungsgemäß eingerichtet sind. Bevor Sie die folgenden Beispiele ausführen, sollten Sie sich vergewissern, dass 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. Führen Sie andernfalls die Schritte unter [Erste Schritte mit der API](getting-started-api.md) aus.
+ Sie haben die Authentifizierung für das AWS SDK for Python (Boto3) installiert und eingerichtet. Um Boto3 zu installieren, befolgen Sie die Schritte unter [Schnellstart](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html) in der Boto3-Dokumentation. Überprüfen Sie, ob Sie Ihre Anmeldeinformationen für die Verwendung von Boto3 gemäß den Schritten unter [Einholen von Anmeldeinformationen, um programmgesteuerten Zugriff zu gewähren](getting-started-api.md#gs-grant-program-access) konfiguriert haben.

Testen Sie, ob Ihre Berechtigungen für Amazon Bedrock ordnungsgemäß konfiguriert sind, indem Sie einen Benutzer oder eine Rolle verwenden, den bzw. die Sie mit den richtigen Berechtigungen konfiguriert haben. 

Die Dokumentation zu Amazon Bedrock enthält auch Codebeispiele für andere Programmiersprachen. Weitere Informationen finden Sie unter [Codebeispiele für Amazon Bedrock mit AWS SDKs](service_code_examples.md).

**Topics**
+ [

## Auflisten der Basismodelle, die Amazon Bedrock zu bieten hat
](#getting-started-api-ex-python-listfm)
+ [

## Senden Sie eine Textaufforderung an ein Modell und generieren Sie eine Textantwort mit InvokeModel
](#getting-started-api-ex-python-invoke-text)
+ [

## Senden eines Text-Prompts an ein Modell und Generieren einer Textantwort mit Converse
](#getting-started-api-ex-python-converse)

## Auflisten der Basismodelle, die Amazon Bedrock zu bieten hat
<a name="getting-started-api-ex-python-listfm"></a>

Im folgenden Beispiel wird der [ListFoundationModels](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_ListFoundationModels.html)Vorgang 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 [ListFoundationModels](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_ListFoundationModels.html)Vorgang 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 Basismodelle zurück, die in Amazon Bedrock verfügbar sind.

## Senden Sie eine Textaufforderung an ein Modell und generieren Sie eine Textantwort mit InvokeModel
<a name="getting-started-api-ex-python-invoke-text"></a>

Im folgenden Beispiel wird der [InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html)Vorgang mit einem Amazon Bedrock-Client ausgeführt. `InvokeModel`ermöglicht es Ihnen, eine Aufforderung zur Generierung einer Modellantwort einzureichen. Führen Sie das folgende Skript des SDK für Python aus, um einen Laufzeit-Client für Amazon Bedrock zu erstellen und eine Textantwort mit der Operation `` 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 den Prompt generiert wurde.

## Senden eines Text-Prompts an ein Modell und Generieren einer Textantwort mit Converse
<a name="getting-started-api-ex-python-converse"></a>

Im folgenden Beispiel wird die Operation [Converse](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Converse.html) mit einem Amazon-Bedrock-Client ausgeführt. Wir empfehlen, die Operation `Converse` anstatt `InvokeModel` zu verwenden, sofern dies unterstützt wird, da sie die Inferenzanforderung für alle Amazon-Bedrock-Modelle vereinheitlicht und die Verwaltung von Multi-Turn-Konversationen vereinfacht. Führen Sie das folgende Skript des SDK für Python aus, um einen Laufzeit-Client für Amazon Bedrock zu erstellen und eine Textantwort mit der Operation `Converse` 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 den Prompt generiert wurde.