

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.

# Modelle von TwelveLabs
<a name="model-parameters-twelvelabs"></a>

In diesem Abschnitt werden die Anforderungsparameter und Antwortfelder für Modelle von TwelveLabs beschrieben. Verwenden Sie diese Informationen, um Inferenzaufrufen an TwelveLabs-Modelle zu senden. Das TwelveLabs Pegasus 1.2 Modell unterstützt [InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html)und [InvokeModelWithResponseStream](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModelWithResponseStream.html)(Streaming-) Operationen. Die TwelveLabs Marengo Embed 3.0 Modelle TwelveLabs Marengo Embed 2.7 und unterstützen [StartAsyncInvoke](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_StartAsyncInvoke.html)Operationen. Dieser Abschnitt enthält auch Codebeispiele, die zeigen, wie TwelveLabs-Modelle aufgerufen werden. Sie benötigen die Modell-ID für das Modell, um ein Modell in einer Inferenzoperation verwenden zu können. Informationen zum Abrufen der Modell-ID finden Sie unter [Unterstützte Basismodelle in Amazon Bedrock](models-supported.md).

TwelveLabs ist ein führender Anbieter multimodaler KI-Modelle, der sich auf das Verständnis und die Analyse von Videos spezialisiert hat. Ihre fortschrittlichen Modelle ermöglichen mithilfe von state-of-the-art Computervision und natürlicher Sprachverarbeitung ausgefeilte Funktionen für die Videosuche, -analyse und -generierung.

Amazon Bedrock bietet drei TwelveLabs Modelle an:
+ TwelveLabs Pegasus 1.2bietet ein umfassendes Verständnis und eine umfassende Analyse von Videos.
+ TwelveLabs Marengo Embed 2.7generiert hochwertige Einbettungen für Video-, Text-, Audio- und Bildinhalte.
+ TwelveLabs Marengo Embed 3.0ist das neueste Einbettungsmodell mit verbesserter Leistung und erweiterten Funktionen.

Diese Modelle helfen Ihnen bei der Entwicklung von Anwendungen, die Videodaten in großem Maßstab verarbeiten, analysieren und Erkenntnisse daraus ableiten.

**TwelveLabs Pegasus 1.2**

Ein multimodales Modell, das umfassende Funktionen zum Verständnis und zur Analyse von Videos bietet, einschließlich Inhaltserkennung, Szenenerkennung und kontextuellem Verständnis. Das Modell kann Videoinhalte analysieren und Textbeschreibungen, Einblicke und Antworten auf Fragen zum Video generieren.

**TwelveLabs Marengo Embed 2.7**

Ein multimodales Einbettungsmodell, das hochwertige Vektordarstellungen von Video-, Text-, Audio- und Bildinhalten für die Ähnlichkeitssuche, Clustering und andere Machine-Learning-Aufgaben generiert. Das Modell unterstützt mehrere Eingabemodalitäten und bietet spezielle Einbettungen, die für verschiedene Anwendungsfälle optimiert sind.

**TwelveLabs Marengo Embed 3.0**

Ein verbessertes multimodales Einbettungsmodell, das die Funktionen von Marengo 2.7 um die Unterstützung der verschachtelten Text- und Bildeingabemodalität erweitert. Dieses Modell generiert hochwertige Vektordarstellungen von Video-, Text-, Audio-, Bild- und verschachtelten Text-Bild-Inhalten für die Ähnlichkeitssuche, Clustering und andere Aufgaben des maschinellen Lernens.

**Topics**
+ [TwelveLabs Pegasus 1.2](model-parameters-pegasus.md)
+ [TwelveLabs Marengo Embed 2.7](model-parameters-marengo.md)
+ [TwelveLabs Marengo Embed 3.0](model-parameters-marengo-3.md)

# TwelveLabs Pegasus 1.2
<a name="model-parameters-pegasus"></a>

Das Modell TwelveLabs Pegasus 1.2 bietet umfassende Funktionen zum Verständnis und zur Analyse von Videos. Es kann Videoinhalte analysieren und Textbeschreibungen, Einblicke und Antworten auf Fragen zum Video generieren.

Verwenden Sie diese Informationen, um Inferenzaufrufe an TwelveLabs Modelle mit den InvokeModel, InvokeModelWithResponseStream (Streaming-) Operationen durchzuführen.
+ Anbieter: – TwelveLabs
+ Kategorien – Videoverständnis, Inhaltsanalyse
+ Model ID: – `twelvelabs.pegasus-1-2-v1:0`
+ Eingabemodalität – Video
+ Ausgabemodalität – Text
+ Maximale Videogröße – Video mit einer Länge von 1 Stunde (< 2 GB Dateigröße)

## Anforderungsparameter von TwelveLabs Pegasus 1.2
<a name="model-parameters-pegasus-request"></a>

In der folgenden Tabelle werden die Eingabeparameter für das Modell TwelveLabs Pegasus 1.2 beschrieben:


**Anforderungsparameter von TwelveLabs Pegasus 1.2**  

| Feld | Typ | Erforderlich | Beschreibung | 
| --- | --- | --- | --- | 
| inputPrompt | Zeichenfolge | Ja | Prompt zur Analyse des Videos Max.: 2 000 Token | 
| temperature | double | Nein | Temperatur für das Modell Steuert die Zufälligkeit der Ausgabe Standard: 0,2, Min.: 0, Max.: 1 | 
| responseFormat | Objekt | Nein | Ermöglicht Benutzern die Angabe des strukturierten Ausgabeformats Unterstützt derzeit nur json\$1schema | 
| mediaSource | object | Ja | Beschreibt die Medienquelle Es muss entweder base64String oder s3Location angegeben werden. | 
| mediaSource.base64String | Zeichenfolge | Nein | Base64-codierte Bytezeichenfolge für das Video Maximal: 25 MB. | 
| mediaSource.s3Location.uri | Zeichenfolge | Nein | S3-URI, über den das Video heruntergeladen werden konnte Max.: Video mit einer Länge von 1 Stunde (< 2 GB Dateigröße) | 
| mediaSource.s3Location.bucketOwner | Zeichenfolge | Nein | Die AWS-Konto-ID des Bucket-Eigentümers | 
| maxOutputTokens | Ganzzahl | Nein | Die maximale Anzahl der zu generierenden Token Max.: 4 096 | 

## TwelveLabs Pegasus 1.2-Antwortfelder
<a name="model-parameters-pegasus-response"></a>

In der folgenden Tabelle werden die Ausgabefelder für das Modell TwelveLabs Pegasus 1.2 beschrieben:


**TwelveLabs Pegasus 1.2-Antwortfelder**  

| Feld | Typ | Description | 
| --- | --- | --- | 
| message | Zeichenfolge | Ausgabenachricht, die die Analyse des Videos durch das Modell enthält | 
| finishReason | Zeichenfolge | Stopp-Grund, der beschreibt, warum die Ausgabe beendet wurde Gültige Werte: stop (die API hat die vollständige Vervollständigungen zurückgegeben, ohne dass irgendwelche Limits erreicht wurden), length (die Generierung hat das max\$1tokens-Limit überschritten) | 

## Anforderung und Antwort von TwelveLabs Pegasus 1.2
<a name="model-parameters-pegasus-examples"></a>

Die folgenden Beispiele zeigen, wie das Modell TwelveLabs Pegasus 1.2 mit verschiedenen Eingabequellen verwendet wird.

------
#### [ Request ]

Die folgenden Beispiele veranschaulichen Anforderungsformate für das Modell TwelveLabs Pegasus 1.2.

**Verwenden von base64-codiertem Video:**

```
{
  "inputPrompt": "tell me about the video",
  "mediaSource": {
      "base64String": "<BASE64 STRING OF VIDEO FILE>"
  },
  "temperature": 0
}
```

**Verwenden von in S3 gespeichertem Video:**

```
{
    "inputPrompt": "Tell me about this video",
    "mediaSource": {
        "s3Location": {
            "uri": "s3://path-to-video-object-in-s3",
            "bucketOwner": "bucket-owner-account-id"
        }
    },
    "temperature": 0
}
```

**Verwenden des strukturierten Ausgabeformats:**

```
{
    "inputPrompt": "Analyze this video and provide a structured summary",
    "mediaSource": {
        "s3Location": {
            "uri": "s3://path-to-video-object-in-s3",
            "bucketOwner": "bucket-owner-account-id"
        }
    },
    "temperature": 0.2,
    "maxOutputTokens": 2048,
    "responseFormat": {
        "type": "json_schema",
        "json_schema": {
            "name": "video_analysis",
            "schema": {
                "type": "object",
                "properties": {
                    "summary": {"type": "string"},
                    "key_scenes": {"type": "array", "items": {"type": "string"}},
                    "duration": {"type": "string"}
                },
                "required": ["summary", "key_scenes"]
            }
        }
    }
}
```

------
#### [ Response ]

Die folgenden Beispiele veranschaulichen Antwortformate für das Modell TwelveLabs Pegasus 1.2.

**Standardantwort:**

```
{
  "message": "This video shows a person walking through a park during sunset. The scene includes trees, a walking path, and golden lighting from the setting sun. The person appears to be enjoying a peaceful evening stroll.",
  "finishReason": "stop"
}
```

**Antwort mit strukturierter Ausgabe:**

```
{
  "message": "{\"summary\": \"A peaceful evening walk through a park at sunset\", \"key_scenes\": [\"Person entering the park\", \"Walking along tree-lined path\", \"Sunset lighting through trees\", \"Person sitting on bench\"], \"duration\": \"Approximately 2 minutes\"}",
  "finishReason": "stop"
}
```

**Antwort, wenn die maximale Anzahl an Token erreicht wurde:**

```
{
  "message": "This video contains multiple scenes showing various activities. The first scene shows...",
  "finishReason": "length"
}
```

------

# TwelveLabs Marengo Embed 2.7
<a name="model-parameters-marengo"></a>

Das Modell TwelveLabs Marengo Embed 2.7 generiert Einbettungen aus Video-, Text-, Audio- oder Bildeingaben. Diese Einbettungen können für die Ähnlichkeitssuche, Clustering und andere Machine-Learning-Aufgaben verwendet werden.
+ Anbieter – TwelveLabs
+ Model ID: – twelvelabs.marengo-embed-2-7-v1:0

Das Modell TwelveLabs Marengo Embed 2.7 unterstützt die Laufzeitoperationen von Amazon Bedrock in der folgenden Tabelle. 
+ Weitere Informationen zu den Anwendungsfällen für verschiedene API-Methoden finden Sie unter [Hier erfahren Sie mehr über Anwendungsfälle für verschiedene ModellinferenzmethodenVerschiedene Inferenzmethoden](inference-methods.md).
+ Weitere Informationen zu den Modelltypen finden Sie unter [So funktioniert Inferenz in Amazon BedrockFunktionsweise der Inferenz](inference-how.md).
  + Eine Modellliste IDs sowie die Modelle und AWS Regionen, die TwelveLabs Marengo Embed 2.7 unterstützt werden, finden Sie in der Tabelle unter[Unterstützte Basismodelle in Amazon Bedrock](models-supported.md).
  + Eine vollständige Liste der Inferenzprofile finden Sie IDs unter[Unterstützte Regionen und Modelle für Inferenzprofile](inference-profiles-support.md). Die ID des Inferenzprofils basiert auf der AWS Region.


****  

| API-Operation | Unterstützte Modelltypen | Eingabemodalitäten | Ausgabemodalitäten | 
| --- | --- | --- | --- | 
|  InvokeModel  | [Inferenzprofile](inference-profiles-support.md) |  Text Image  |  Einbettung  | 
| StartAsyncInvoke | [Basismodelle](models-supported.md) |  Video Audio Image Text  |  Einbettung  | 

**Anmerkung**  
Verwenden Sie `InvokeModel`, um Einbettungen für Suchabfragen zu generieren. Verwenden Sie `StartAsyncInvoke`, um Einbettungen für Assets in großem Umfang zu generieren.

Die folgenden Kontingente gelten für die Eingabe:


****  

| Eingabemodalität | Maximum | 
| --- | --- | 
| Text | 77 Token | 
| Image | 5 MB | 
| Video (S3) | 2 GB | 
| Audio (S3) | 2 GB | 

**Anmerkung**  
Wenn Sie Audio oder Video inline mithilfe der base64-Kodierung definieren, stellen Sie sicher, dass die Nutzdaten des Anforderungstexts das Amazon-Bedrock-Modellaufrufkontingent von 25 MB nicht überschreitet.

**Topics**
+ [Anforderungsparameter von TwelveLabs Marengo Embed 2.7](#model-parameters-marengo-async-request)
+ [TwelveLabs Marengo Embed 2.7-Antwort](#model-parameters-marengo-response)
+ [TwelveLabs Marengo Embed 2.7-Codebeispiele](#model-parameters-marengo-examples)

## Anforderungsparameter von TwelveLabs Marengo Embed 2.7
<a name="model-parameters-marengo-async-request"></a>

Wenn Sie eine Anforderung stellen, hängt das Feld, in dem die modellspezifische Eingabe angegeben wird, von der API-Operation ab:
+ [InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html)— In der Anfrage`body`.
+ [StartAsyncInvoke](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_StartAsyncInvoke.html)— Im `modelInput` Feld des Hauptteils der Anfrage.

Das Format der Modelleingabe hängt von der Eingabemodalität ab:

------
#### [ Text ]

```
{
    "inputType": "text",
    "inputText": "string",
    "textTruncate": "string
}
```

------
#### [ Inline image ]

```
{
     "inputType": "image",
     "mediaSource": {
          "base64String": "base64-encoded string"
     }
}
```

------
#### [ S3 image ]

```
{
    "inputType": "image",
    "mediaSource": {
        "s3Location": {
            "uri": "string",
            "bucketOwner": "string"
        }
    }
}
```

------
#### [ Inline video ]

```
{
    "inputType": "video",
    "mediaSource": {
        "s3Location": {
            "base64String": "base64-encoded string"
        }
    },
    "startSec": double,
    "lengthSec": double,
    "useFixedLengthSec": double,
    "embeddingOption": "visual-text" | "visual-image" | "audio"
}
```

------
#### [ S3 video ]

```
{
    "inputType": "image",
    "mediaSource": {
        "s3Location": {
           "uri": "string",
           "bucketOwner": "string"
        }
    },
    "startSec": double,
    "lengthSec": double,
    "useFixedLengthSec": double,
    "minClipSec": int,
    "embeddingOption": ["string"]
}
```

------
#### [ Inline audio ]

```
{
    "inputType": "audio", 
    "mediaSource": { 
        "base64String": "base64-encoded string"
    },
    "startSec": double,
    "lengthSec": double,
    "useFixedLengthSec": double
}
```

------
#### [ S3 audio ]

```
{
    "inputType": "audio",
    "mediaSource": {
        "s3Location": {
           "uri": "string",
           "bucketOwner": "string"
        }
    },
    "startSec": double,
    "lengthSec": double,
    "useFixedLengthSec": double
}
```

------

Erweitern Sie die folgenden Abschnitte, um ausführliche Informationen zu den Eingabeparametern zu erhalten:

### inputType
<a name="model-parameters-marengo-inputType"></a>

Modalität für die Einbettung
+ **Typ:** Zeichenfolge
+ **Erforderlich**: Ja
+ **Zulässige Werte**: `video` \$1 `text` \$1 `audio` \$1 `image`

### inputText
<a name="model-parameters-marengo-inputText"></a>

Text, der eingebettet werden soll
+ **Typ:** Zeichenfolge
+ **Erforderlich:** Ja (für kompatible Eingabetypen)
+ **Kompatible Eingabetypen:** Text

### textTruncate
<a name="model-parameters-marengo-textTruncate"></a>

Gibt an, wie die Plattform Text kürzt
+ **Typ:** Zeichenfolge
+ **Required**: No
+ **Zulässige Werte**:
  + `end` – Kürzt das Textende
  + `none` – Gibt einen Fehler zurück, wenn der Text das Limit überschreitet
+ **Standardwert:** Ende
+ **Kompatible Eingabetypen:** Text

### mediaSource
<a name="model-parameters-marengo-mediaSource"></a>

Enthält Informationen zur Medienquelle
+ **Typ:** Objekt
+ **Erforderlich:** Ja (falls kompatibler Typ)
+ **Kompatible Eingabetypen:** Bild, Video, Audio

Das Format des `mediaSource`-Objekts im Anforderungstext hängt davon ab, ob das Medium als Base64-kodierte Zeichenfolge oder als S3-Speicherort definiert ist.
+ **Base64-kodierte Zeichenfolge**

  ```
  {
      "mediaSource": {
          "base64String": "base64-encoded string"
      }
  }
  ```
  + `base64String` – Die Base64-kodierte Zeichenfolge für das Medium
+ **S3-Standort** — Geben Sie den S3-URI und den Bucket-Besitzer an.

  ```
  {
      "s3Location": {
          "uri": "string",
          "bucketOwner": "string"
      }
  }
  ```
  + `uri` – Der S3-URI, der das Medium enthält
  + `bucketOwner`— Die AWS Konto-ID des S3-Bucket-Besitzers.

### embeddingOption
<a name="model-parameters-marengo-embeddingOption"></a>

Gibt an, welche Arten von Einbettungen abgerufen werden sollen.
+ **Typ**: Liste
+ **Required**: No
+ **Gültige Werte für Listenmitglieder:**
  + `visual-text` – Visuelle Einbettungen, die für die Textsuche optimiert sind
  + `visual-image` – Visuelle Einbettungen, die für die Bildsuche optimiert sind
  + `audio` – Einbettungen des Audios in das Video
+ **Standardwert:** [„visual-text“, „visual-image“, „audio"]
+ **Kompatible Eingabetypen:** Video, Audio

### startSec
<a name="model-parameters-marengo-startSec"></a>

Der Zeitpunkt in Sekunden des Clips, zu dem die Verarbeitung beginnen soll
+ **Type**: Double
+ **Required**: No
+ **Mindestwert** 0
+ **Standardwert:** 0
+ **Kompatible Eingabetypen:** Video, Audio

### lengthSec
<a name="model-parameters-marengo-lengthSec"></a>

Die Zeit in Sekunden, gerechnet ab dem `startSec`-Zeitpunkt, nach dem die Verarbeitung beendet werden soll
+ **Type**: Double
+ **Required**: No
+ **Gültige Werte:** 0 – Dauer des Mediums
+ **Standardwert:** Dauer des Mediums
+ **Kompatible Eingabetypen:** Video, Audio

Beispiel:
+ startSec: 5
+ lengthSec: 20
+ Ergebnis: Der Clip wird von 0:05 bis 0:25 (5 Sekunden \$1 20 Sekunden) verarbeitet.

### useFixedLengthSekunde
<a name="model-parameters-marengo-useFixedLengthSec"></a>

Die Dauer jedes Clips, für den das Modell eine Einbettung generieren soll
+ **Type**: Double
+ **Required**: No
+ **Wertparameter:** 2–10. Der Wert muss gleich oder größer als `minClipSec` sein.
+ **Standardwert:** Hängt vom Medientyp ab:
  + **Video:** Dynamisch aufgeteilt durch Erkennung von Schussgrenzen.
  + **Audio:** Gleichmäßig aufgeteilt mit Segmenten, die so nah wie möglich an 10 Sekunden heranreichen.

    Beispiele:
    + Ein 50-Sekunden-Clip ist in 5 10-Sekunden-Segmente unterteilt.
    + Ein 16-Sekunden-Clip ist in 2 8-Sekunden-Segmente unterteilt.
+ **Kompatible Eingabetypen:** – Video, Audio
+ **Hinweis:** Der Wert muss gleich oder größer als `minClipSec` sein.

### minClipSec
<a name="model-parameters-marengo-minClipSec"></a>

Legt für jeden Clip einen Mindestwert in Sekunden fest
+ **Typ:** int
+ **Required**: No
+ **Wertparameter:** Wertebereich: 1–5
+ **Standardwert**: 4
+ **Kompatible Eingabetypen:** Video
+ **Hinweis:** Der Wert muss gleich oder kleiner als `useFixedLengthSec` sein.

## TwelveLabs Marengo Embed 2.7-Antwort
<a name="model-parameters-marengo-response"></a>

Der Speicherort der Ausgabeeinbettungen und der zugehörigen Metadaten hängt von der Aufrufmethode ab:
+ [InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html)— Im Antworttext.
+ [StartAsyncInvoke](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_StartAsyncInvoke.html)— Im S3-Bucket, der in definiert ist`s3OutputDataConfig`, nachdem der asynchrone Aufruf-Job abgeschlossen ist.

Wenn es mehrere Einbettungsvektoren gibt, besteht die Ausgabe aus einer Liste von Objekten, die jeweils einen Vektor und die zugehörigen Metadaten enthalten.

Das Format des Einbettungsvektors der Ausgabe lautet wie folgt:

```
{
    "embedding": ["string"],
    "embeddingOption": "visual-text" | "visual-image" | "audio",
    "startSec": double,
    "endsec": double
}
```

Erweitern Sie die folgenden Abschnitte, um ausführliche Informationen zu den Antwortparametern zu erhalten:

### embedding
<a name="model-parameters-marengo-embedding"></a>

Darstellung des Einbettungsvektors der Eingabe
+ **Typ**: Liste von Double-Werten

### embeddingOption
<a name="model-parameters-marengo-embeddingOption"></a>

Die Art der Einbettungen
+ **Typ:** Zeichenfolge
+ **Mögliche Werte:**
  + `visual-text` – Visuelle Einbettungen, die für die Textsuche optimiert sind
  + `visual-image` – Visuelle Einbettungen, die für die Bildsuche optimiert sind
  + `audio` – Einbettungen des Audios in das Video
+ **Kompatible Eingabetypen:** Video

### startSec
<a name="model-parameters-marengo-startSec"></a>

Der Startversatz des Clips
+ **Type**: Double
+ **Kompatible Eingabetypen:** Video, Audio

### endSec
<a name="model-parameters-marengo-endSec"></a>

Der Endversatz des Clips in Sekunden
+ **Type**: Double
+ **Kompatible Eingabetypen:** Video, Audio

## TwelveLabs Marengo Embed 2.7-Codebeispiele
<a name="model-parameters-marengo-examples"></a>

In diesem Abschnitt wird gezeigt, wie Sie das Modell TwelveLabs Marengo Embed 2.7 mit verschiedenen Eingabetypen mithilfe von Python verwenden. Die Beispiele zeigen, wie modellspezifische Eingaben definiert und Modellaufrufe ausgeführt werden.

**Anmerkung**  
InvokeModel unterstützt nur Text- und Bildeingaben. Verwenden Sie für die Video- und Audioeingabe StartAsyncInvoke.

Stellen Sie Ihren Code in den folgenden Schritten zusammen:

**1. Definieren der modellspezifische Eingabe**  
Definieren Sie die modellspezifische Eingabe abhängig von Ihrem Eingabetyp:

------
#### [ Text ]

```
# Create the model-specific input
model_id = "twelvelabs.marengo-embed-2-7-v1:0"
# Replace the us prefix depending on your region
inference_profile_id = "us.twelvelabs.marengo-embed-2-7-v1:0"
                            
model_input = {
  "inputType": "text",
  "inputText": "man walking a dog"
}
```

------
#### [ Inline image ]

```
# Create the model-specific input
model_id = "twelvelabs.marengo-embed-2-7-v1:0"
# Replace the us prefix depending on your region
inference_profile_id = "us.twelvelabs.marengo-embed-2-7-v1:0"

model_input = {
   "inputType": "image",
   "mediaSource": {
      "base64String": "example-base64-image"
   }
}
```

------
#### [ S3 image ]

```
# Create the model-specific input
model_id = "twelvelabs.marengo-embed-2-7-v1:0"
# Replace the us prefix depending on your region
inference_profile_id = "us.twelvelabs.marengo-embed-2-7-v1:0"

model_input = {
     "inputType": "image",
     "mediaSource": {
          "s3Location": {
               "uri": "s3://amzn-s3-demo-bucket/my_image.png",
               "bucketOwner": "123456789012"
          }
     }
}
```

------
#### [ Inline video ]

```
# Create the model-specific input
model_id = "twelvelabs.marengo-embed-2-7-v1:0"
# Replace the us prefix depending on your region
inference_profile_id = "us.twelvelabs.marengo-embed-2-7-v1:0"

model_input = {
    "inputType": "video",
    "mediaSource": {
        "base64String": "base_64_encoded_string_of_video"
    },
    "startSec": 0,
    "lengthSec": 13,
    "useFixedLengthSec": 5,
    "embeddingOption": [
        "visual-text", 
        "audio"
    ]
}
```

------
#### [ S3 video ]

```
# Create the model-specific input
model_id = "twelvelabs.marengo-embed-2-7-v1:0"
# Replace the us prefix depending on your region
inference_profile_id = "us.twelvelabs.marengo-embed-2-7-v1:0"

model_input = {
    "inputType": "video",
    "mediaSource": {
        "s3Location": {
            "uri": "amzn-s3-demo-bucket/my-video.mp4",
            "bucketOwner": "123456789012"
        }
    },
    "startSec": 0,
    "lengthSec": 13,
    "useFixedLengthSec": 5,
    "embeddingOption": [
        "visual-text", 
        "audio"
    ]
}
```

------
#### [ Inline audio ]

```
# Create the model-specific input
model_id = "twelvelabs.marengo-embed-2-7-v1:0"
# Replace the us prefix depending on your region
inference_profile_id = "us.twelvelabs.marengo-embed-2-7-v1:0"

model_input = {
    "inputType": "audio", 
    "mediaSource": { 
        "base64String": "base_64_encoded_string_of_audio"
    },
    "startSec": 0,
    "lengthSec": 13,
    "useFixedLengthSec": 10
}
```

------
#### [ S3 audio ]

```
# Create the model-specific input
model_id = "twelvelabs.marengo-embed-2-7-v1:0"
# Replace the us prefix depending on your region
inference_profile_id = "us.twelvelabs.marengo-embed-2-7-v1:0"

model_input = {
    "inputType": "audio",
    "mediaSource": {  
        "s3Location": { 
            "uri": "s3://amzn-s3-demo-bucket/my-audio.wav", 
            "bucketOwner": "123456789012" 
        }
    },
    "startSec": 0,
    "lengthSec": 13,
    "useFixedLengthSec": 10
}
```

------

**2. Ausführen des Modellaufrufs mithilfe der Modelleingabe**  
Fügen Sie dann den Codeausschnitt hinzu, der der Methode Ihrer Wahl für den Modellaufruf entspricht.

------
#### [ InvokeModel ]

```
# Run model invocation with InvokeModel
import boto3
import json

# Initialize the Bedrock Runtime client
client = boto3.client('bedrock-runtime')

# Make the request
response = client.invoke_model(
    modelId=inference_profile_id,
    body=json.dumps(model_input)
)

# Print the response body
response_body = json.loads(response['body'].read().decode('utf-8'))

print(response_body)
```

------
#### [ StartAsyncInvoke ]

```
# Run model invocation asynchronously
import boto3
import json

# Initalize the Bedrock Runtime client.
client = boto3.client("bedrock-runtime")

try:
    # Start the asynchronous job
    invocation = client.start_async_invoke(
        modelId=model_id,
        modelInput=model_input,
        outputDataConfig={
            "s3OutputDataConfig": {
                "s3Uri": "s3://&example-s3-destination-bucket;"
            }
        }
    )

    # Print the response JSON
    print("Response:")
    print(json.dumps(invocation, indent=2, default=str))

except Exception as e:
    # Implement error handling here.
    message = e.response["Error"]["Message"]
    print(f"Error: {message}")
```

------

# TwelveLabs Marengo Embed 3.0
<a name="model-parameters-marengo-3"></a>

Das TwelveLabs Marengo Embed 3.0 Modell generiert verbesserte Einbettungen aus Video-, Text-, Audio- oder Bildeingaben. Diese neueste Version bietet verbesserte Leistung und Genauigkeit für Ähnlichkeitssuche, Clustering und andere Aufgaben des maschinellen Lernens.
+ Anbieter – TwelveLabs
+ Model ID: – twelvelabs.marengo-embed-3-0-v1:0

Marengo Embed 3.0 bietet mehrere wichtige Verbesserungen:
+ **Erweiterte Videoverarbeitungskapazität** — Verarbeiten Sie bis zu 4 Stunden Video- und Audioinhalte. Dateien können bis zu 6 GB groß sein, was der doppelten Kapazität früherer Versionen entspricht. Dadurch eignet es sich ideal für die Analyse kompletter Sportveranstaltungen, umfangreicher Trainingsvideos und kompletter Filmproduktionen.
+ **Verbesserte Sportanalyse** — Das Modell bietet erhebliche Verbesserungen. Es ermöglicht ein besseres Verständnis der Spieldynamik, der Spielerbewegungen und der Erkennung von Ereignissen.
+ **Weltweiter mehrsprachiger Support** — Erweiterte Sprachfunktionen von 12 auf 36 Sprachen. Dies ermöglicht es globalen Unternehmen, einheitliche Such- und Abrufsysteme aufzubauen, die in verschiedenen Regionen und Märkten reibungslos funktionieren.
+ **Multimodale Suchgenauigkeit** — Kombinieren Sie Bilder und beschreibenden Text in einer einzigen Einbettungsanfrage. Dadurch wird visuelle Ähnlichkeit mit semantischem Verständnis kombiniert, um genauere und kontextrelevantere Suchergebnisse zu erzielen.
+ **Reduzierte Einbettungsgröße** — Von 1024 auf 512 reduziert, was zur Senkung der Speicherkosten beitragen kann.

Das Modell TwelveLabs Marengo Embed 3.0 unterstützt die Laufzeitoperationen von Amazon Bedrock in der folgenden Tabelle. 
+ Weitere Informationen zu den Anwendungsfällen für verschiedene API-Methoden finden Sie unter [Hier erfahren Sie mehr über Anwendungsfälle für verschiedene ModellinferenzmethodenVerschiedene Inferenzmethoden](inference-methods.md).
+ Weitere Informationen zu den Modelltypen finden Sie unter [So funktioniert Inferenz in Amazon BedrockFunktionsweise der Inferenz](inference-how.md).
  + Eine Liste der Modelle IDs und die unterstützten Modelle und AWS Regionen finden Sie in der Tabelle unter[Unterstützte Basismodelle in Amazon Bedrock](models-supported.md). TwelveLabs Marengo Embed 3.0
  + Eine vollständige Liste der Inferenzprofile finden Sie IDs unter[Unterstützte Regionen und Modelle für Inferenzprofile](inference-profiles-support.md). Die ID des Inferenzprofils basiert auf der AWS Region.


****  

| API-Operation | Unterstützte Modelltypen | Eingabemodalitäten | Ausgabemodalitäten | 
| --- | --- | --- | --- | 
|  InvokeModel  |  USA Ost (Nord-Virginia) — [Basismodelle](models-supported.md) und [Inferenzprofile](inference-profiles-support.md) Europa (Irland) — [Inferenzprofile](inference-profiles-support.md) Asien-Pazifik (Seoul) - [Basismodelle](models-supported.md)  |  Text Image **Hinweis:** Die Verschachtelung von Text und Bild wird ebenfalls unterstützt.  |  Einbettung  | 
| StartAsyncInvoke | [Basismodelle](models-supported.md) |  Video Audio Image Text **Hinweis:** Die Verschachtelung von Text und Bild wird ebenfalls unterstützt.  |  Einbettung  | 

**Anmerkung**  
Verwenden Sie `InvokeModel`, um Einbettungen für Suchabfragen zu generieren. Verwenden Sie `StartAsyncInvoke`, um Einbettungen für Assets in großem Umfang zu generieren.

Die folgenden Kontingente gelten für die Eingabe:


****  

| Eingabemodalität | Maximum | 
| --- | --- | 
| Text | 500 Tokens | 
| Image | 5 MB pro Bild | 
| Video (S3) | 6 GB, Länge 4 Stunden | 
| Audio (S3) | 6 GB, Länge 4 Stunden | 

**Anmerkung**  
Wenn Sie Audio oder Video inline mithilfe der base64-Kodierung definieren, stellen Sie sicher, dass die Nutzdaten des Anforderungstexts das Amazon-Bedrock-Modellaufrufkontingent von 25 MB nicht überschreitet.

**Topics**
+ [Anforderungsparameter von TwelveLabs Marengo Embed 3.0](#model-parameters-marengo-3-async-request)
+ [TwelveLabs Marengo Embed 3.0-Antwort](#model-parameters-marengo-3-response)
+ [TwelveLabs Marengo Embed 3.0-Codebeispiele](#model-parameters-marengo-3-examples)

## Anforderungsparameter von TwelveLabs Marengo Embed 3.0
<a name="model-parameters-marengo-3-async-request"></a>

Wenn Sie eine Anforderung stellen, hängt das Feld, in dem die modellspezifische Eingabe angegeben wird, von der API-Operation ab:
+ [InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html)— In der Anfrage`body`.
+ [StartAsyncInvoke](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_StartAsyncInvoke.html)— Im `modelInput` Feld des Hauptteils der Anfrage.

Das Format der Modelleingabe hängt von der Eingabemodalität ab:

------
#### [ Text ]

```
{
    "inputType": "text",
    "text": {
        "inputText": "string"
    }
}
```

------
#### [ Image ]

```
{
  "inputType": "image",
  "image": {
    "mediaSource": {
      "base64String": "base64-encoded string", // base64String OR s3Location, exactly one
      "s3Location": {
        "uri": "s3://amzn-s3-demo-bucket/folder/dog.jpg",
        "bucketOwner": "123456789012"
      }
    }
  }
}
```

------
#### [ Text & image ]

```
{
  "inputType": "text_image",
  "text_image": {
    "inputText": "man walking a dog",
    "mediaSource": {
      "base64String": "base64-encoded string", // base64String OR s3Location, exactly one
      "s3Location": {
        "uri": "s3://amzn-s3-demo-bucket/folder/dog.jpg",
        "bucketOwner": "123456789012"
      }
    }
  }
}
```

------
#### [ Audio ]

```
{
  "inputType": "audio",
  "audio": {
    "mediaSource": {
      "base64String": "base64-encoded string", // base64String OR s3Location, exactly one
      "s3Location": {
        "uri": "s3://amzn-s3-demo-bucket/audio/a.wav",
        "bucketOwner": "123456789012"
      }
    },
    "startSec": 0,
    "endSec": 6,
    "segmentation": {
      "method": "fixed", 
      "fixed": {
        "durationSec": 6
      }
    },
    "embeddingOption": [
      "audio",
      "transcription"
    ], // optional, default=both
    "embeddingScope": [
      "clip",
      "asset"
    ] // optional, one or both
  }
}
```

------
#### [ Video ]

```
{
  "inputType": "video",
  "video": {
    "mediaSource": {
      "base64String": "base64-encoded string", // base64String OR s3Location, exactly one
      "s3Location": {
        "uri": "s3://amzn-s3-demo-bucket/video/clip.mp4",
        "bucketOwner": "123456789012"
      }
    },
    "startSec": 0,
    "endSec": 6,
    "segmentation": {
      "method": "dynamic", // dynamic OR fixed, exactly one
      "dynamic": {
        "minDurationSec": 4
      }
      "method": "fixed",
      "fixed": {
        "durationSec": 6
      }
    },
    "embeddingOption": [
      "visual",
      "audio", 
      "transcription"
    ], // optional, default=all
    "embeddingScope": [
      "clip",
      "asset"
    ] // optional, one or both
  },
  "inferenceId": "some inference id"
}
```

------

Erweitern Sie die folgenden Abschnitte, um ausführliche Informationen zu den Eingabeparametern zu erhalten:

### inputType
<a name="model-parameters-marengo-3-inputType"></a>

Modalität für die Einbettung
+ **Typ:** Zeichenfolge
+ **Erforderlich**: Ja
+ **Zulässige Werte**: `text` \$1 `image` \$1 `text_image` \$1 `audio` \$1 `video`

### inputText
<a name="model-parameters-marengo-3-inputText"></a>

Text, der eingebettet werden soll
+ **Typ:** Zeichenfolge
+ **Erforderlich:** Ja (für kompatible Eingabetypen)
+ **Kompatible Eingabetypen:** Text

### mediaSource
<a name="model-parameters-marengo-3-mediaSource"></a>

Enthält Informationen zur Medienquelle
+ **Typ:** Objekt
+ **Erforderlich:** Ja (falls kompatibler Typ)
+ **Kompatible Eingabetypen:** Bild, Video, Audio

Das Format des `mediaSource`-Objekts im Anforderungstext hängt davon ab, ob das Medium als Base64-kodierte Zeichenfolge oder als S3-Speicherort definiert ist.
+ **Base64-kodierte Zeichenfolge**

  ```
  {
      "mediaSource": {
          "base64String": "base64-encoded string"
      }
  }
  ```
  + `base64String` – Die Base64-kodierte Zeichenfolge für das Medium
+ **S3-Standort** — Geben Sie den S3-URI und den Bucket-Besitzer an.

  ```
  {
      "s3Location": {
          "uri": "string",
          "bucketOwner": "string"
      }
  }
  ```
  + `uri` – Der S3-URI, der das Medium enthält
  + `bucketOwner`— Die AWS Konto-ID des S3-Bucket-Besitzers.

### embeddingOption
<a name="model-parameters-marengo-3-embeddingOption"></a>

Gibt an, welche Arten von Einbettungen abgerufen werden sollen.
+ **Typ**: Liste
+ **Required**: No
+ **Gültige Werte für Listenmitglieder:**
  + `visual`— Visuelle Einbettungen aus dem Video.
  + `audio` – Einbettungen des Audios in das Video
  + `transcription`— Einbettungen des transkribierten Textes.
+ **Vorgabewert:**
  + Video: ["visuell“, „Audio“, „Transkription"]
  + Audio: ["Audio“, „Transkription"]
+ **Kompatible Eingabetypen:** Video, Audio

### Geltungsbereich einbetten
<a name="model-parameters-marengo-3-embeddingScope"></a>

Gibt den Bereich der abzurufenden Einbettungen an.
+ **Typ**: Liste
+ **Required**: No
+ **Gültige Werte für Listenmitglieder:**
  + `clip`— Gibt Einbettungen für jeden Clip zurück.
  + `asset`— Gibt Einbettungen für das gesamte Asset zurück.
+ **Kompatible Eingabetypen:** Video, Audio

### startSec
<a name="model-parameters-marengo-3-startSec"></a>

Der Zeitpunkt in Sekunden des Clips, zu dem die Verarbeitung beginnen soll
+ **Type**: Double
+ **Required**: No
+ **Mindestwert** 0
+ **Standardwert**: 0
+ **Kompatible Eingabetypen:** Video, Audio

### endSec
<a name="model-parameters-marengo-3-endSec"></a>

Der Zeitpunkt in Sekunden, zu dem die Verarbeitung enden soll.
+ **Type**: Double
+ **Required**: No
+ **Mindestwert:** StartSec \$1 Segmentlänge
+ **Höchstwert:** Dauer des Mediums
+ **Standardwert:** Dauer des Mediums
+ **Kompatible Eingabetypen:** Video, Audio

### Segmentierung
<a name="model-parameters-marengo-3-segmentation"></a>

Definiert, wie die Medien für die Generierung der Einbettung in Segmente unterteilt werden.
+ **Typ:** Objekt
+ **Required**: No
+ **Kompatible Eingabetypen:** Video, Audio

Das Segmentierungsobjekt enthält ein `method` Feld und methodenspezifische Parameter:
+ `method`— Die zu verwendende Segmentierungsmethode. Zulässige Werte: `dynamic` \$1 `fixed`
+ `dynamic`— Nutzt bei Videos die Erkennung von Aufnahmegrenzen, um Inhalte dynamisch zu unterteilen. Enthält:
  + `minDurationSec`— Mindestdauer für jedes Segment in Sekunden. Typ: Ganzzahl. Bereich: 1-5. Standard: 4.
+ `fixed`— Unterteilt den Inhalt in Segmente gleicher Dauer. Enthält:
  + `durationSec`— Dauer jedes Segments in Sekunden. Typ: Ganzzahl. Bereich: 1-10. Standard: 6.

**Standardverhalten:**
+ Video: Verwendet dynamische Segmentierung mit Erkennung von Schussgrenzen.
+ Audio: Verwendet eine feste Segmentierung. Der Inhalt wird so gleichmäßig wie möglich mit Segmenten von fast 10 Sekunden aufgeteilt.

### Inferenz-ID
<a name="model-parameters-marengo-3-inferenceId"></a>

Eindeutiger Bezeichner für die Inferenzanforderung.
+ **Typ:** Zeichenfolge
+ **Required**: No

## TwelveLabs Marengo Embed 3.0-Antwort
<a name="model-parameters-marengo-3-response"></a>

Der Speicherort der Ausgabeeinbettungen und der zugehörigen Metadaten hängt von der Aufrufmethode ab:
+ InvokeModel — Im Antworttext.
+ StartAsyncInvoke — In dem in definierten S3-Bucket`s3OutputDataConfig`, nachdem der asynchrone Aufruf-Job abgeschlossen wurde.

Wenn es mehrere Einbettungsvektoren gibt, besteht die Ausgabe aus einer Liste von Objekten, die jeweils einen Vektor und die zugehörigen Metadaten enthalten.

Das Format des Einbettungsvektors der Ausgabe lautet wie folgt:

```
{
  "data": {
    "embedding": [
    0.111, 0.234, ...
    ],
    "embeddingOption": ["visual", "audio", "transcription" (for video input) | "audio", "transcription" (for audio input)],
    "embeddingScope": ["asset" | "clip"],
    "startSec": 0,
    "endSec": 4.2
  }
}
```

Die Einbettungen werden als Array von Floats zurückgegeben.

Wo Sie diese Antwort sehen, hängt von der verwendeten API-Methode ab:
+ InvokeModel — Erscheint im Antworttext.
+ StartAsyncInvoke — Erscheint an dem S3-Standort, den Sie in der Anfrage angegeben haben. Die Antwort gibt eine zurück`invocationArn`. Sie können dies verwenden, um Metadaten über den asynchronen Aufruf abzurufen. Dazu gehören der Status und der S3-Speicherort, an den die Ergebnisse geschrieben werden.

Erweitern Sie die folgenden Abschnitte, um ausführliche Informationen zu den Antwortparametern zu erhalten:

### embedding
<a name="model-parameters-marengo-3-embedding"></a>

Darstellung des Einbettungsvektors der Eingabe
+ **Typ**: Liste von Double-Werten

### embeddingOption
<a name="model-parameters-marengo-3-embeddingOption-response"></a>

Die Art der Einbettungen
+ **Typ:** Zeichenfolge
+ **Mögliche Werte:**
  + visuell — Visuelle Einbettungen aus dem Video.
  + Audio — Einbettungen des Audios in das Video.
  + Transkription — Einbettungen des transkribierten Textes.
+ **Kompatible Eingabetypen:** Video, Audio

### Umfang einbetten
<a name="model-parameters-marengo-3-embeddingScope"></a>

Gibt den Bereich der abzurufenden Einbettungen an.
+ **Typ:** Zeichenfolge

Sie können einen oder mehrere der folgenden Werte angeben:
+ Clip: Gibt Einbettungen für jeden Clip zurück.
+ Asset: Gibt Einbettungen für das gesamte Asset zurück.

### startSec
<a name="model-parameters-marengo-3-startSec-response"></a>

Der Startversatz des Clips
+ **Type**: Double
+ **Kompatible Eingabetypen:** Video, Audio

### endSec
<a name="model-parameters-marengo-3-endSec-response"></a>

Der Endversatz des Clips. Gilt nicht für Text-, Bild- und Text\$1Image-Einbettungen.
+ **Type**: Double
+ **Kompatible Eingabetypen:** Video, Audio

## TwelveLabs Marengo Embed 3.0-Codebeispiele
<a name="model-parameters-marengo-3-examples"></a>

In diesem Abschnitt wird gezeigt, wie Sie das Modell TwelveLabs Marengo Embed 3.0 mit verschiedenen Eingabetypen mithilfe von Python verwenden. Die Beispiele zeigen, wie modellspezifische Eingaben definiert und Modellaufrufe ausgeführt werden.

**Anmerkung**  
InvokeModel unterstützt Text, Bild und Text mit verschachtelter Bildeingabe. Verwenden Sie für die Video- und Audioeingabe. StartAsyncInvoke

Stellen Sie Ihren Code in den folgenden Schritten zusammen:

**1. Definieren der modellspezifische Eingabe**  
Definieren Sie die modellspezifische Eingabe abhängig von Ihrem Eingabetyp:

------
#### [ Text ]

```
# Create the model-specific input
model_id = "twelvelabs.marengo-embed-3-0-v1:0"
# Replace the us prefix depending on your region
inference_profile_id = "us.twelvelabs.marengo-embed-3-0-v1:0"

model_input = {
    "inputType": "text",
    "text": {
        "inputText": "man walking a dog"
    }
}
```

------
#### [ Image ]

```
# Create the model-specific input
model_id = "twelvelabs.marengo-embed-3-0-v1:0"
# Replace the us prefix depending on your region
inference_profile_id = "us.twelvelabs.marengo-embed-3-0-v1:0"

model_input = {
    "inputType": "image",
    "image": {
        "mediaSource": {
            "s3Location": {
                "uri": "s3://amzn-s3-demo-bucket/my_image.png",
                "bucketOwner": "123456789012"
            }
        }
    }
}
```

------
#### [ Text & image ]

```
# Create the model-specific input
model_id = "twelvelabs.marengo-embed-3-0-v1:0"
# Replace the us prefix depending on your region
inference_profile_id = "us.twelvelabs.marengo-embed-3-0-v1:0"

model_input = {
    "inputType": "text_image",
    "text_image": {
        "inputText": "man walking a dog",
        "mediaSource": {
            "s3Location": {
                "uri": "s3://amzn-s3-demo-bucket/my_image.jpg",
                "bucketOwner": "123456789012"
            }
        }
    }
}
```

------
#### [ Audio ]

```
# Create the model-specific input
model_id = "twelvelabs.marengo-embed-3-0-v1:0"
# Replace the us prefix depending on your region
inference_profile_id = "us.twelvelabs.marengo-embed-3-0-v1:0"
 
model_input = {
    "inputType": "audio",
    "audio": {
        "mediaSource": {  
            "s3Location": { 
                "uri": "s3://amzn-s3-demo-bucket/my-audio.wav", 
                "bucketOwner": "123456789012" 
            }
        },
        "startSec": 0,
        "endSec": 5,
        "segmentation": {
            "method": "fixed",
            "fixed": {
                "durationSec": 5
            }
        },
        "embeddingScope": ["clip", "asset"],
        "embeddingOption": ["audio"]
    }
}
```

------
#### [ Video ]

```
# Create the model-specific input
model_id = "twelvelabs.marengo-embed-3-0-v1:0"
# Replace the us prefix depending on your region
inference_profile_id = "us.twelvelabs.marengo-embed-3-0-v1:0"
 
model_input = {
    "inputType": "video",
    "video": {
        "mediaSource": {
            "s3Location": {
                "uri": "s3://amzn-s3-demo-bucket/my-video.mp4",
                "bucketOwner": "123456789012"
            }
        },
        "startSec": 10,
        "endSec": 20,
        "segmentation": {
            "method": "fixed",
            "fixed": {
                "durationSec": 5
            }
        },
        "embeddingOption": [
            "visual", 
            "audio"
        ],
        "embeddingScope": [
            "clip",
            "asset"
        ]
    }
}
```

------

**2. Ausführen des Modellaufrufs mithilfe der Modelleingabe**  
Fügen Sie dann den Codeausschnitt hinzu, der der Methode Ihrer Wahl für den Modellaufruf entspricht.

------
#### [ InvokeModel ]

```
# Run model invocation with InvokeModel
import boto3
import json

# Initialize the Bedrock Runtime client
client = boto3.client('bedrock-runtime')

# Make the request
response = client.invoke_model(
    modelId=inference_profile_id,
    body=json.dumps(model_input)
)

# Print the response body
response_body = json.loads(response['body'].read().decode('utf-8'))

print(response_body)
```

------
#### [ StartAsyncInvoke ]

```
# Run model invocation asynchronously
import boto3
import json

# Initalize the Bedrock Runtime client.
client = boto3.client("bedrock-runtime")

try:
    # Start the asynchronous job
    invocation = client.start_async_invoke(
        modelId=model_id,
        modelInput=model_input,
        outputDataConfig={
            "s3OutputDataConfig": {
                "s3Uri": "s3://amzn-s3-demo-bucket"
            }
        }
    )

    # Print the response JSON
    print("Response:")
    print(json.dumps(invocation, indent=2, default=str))

except Exception as e:
    # Implement error handling here.
    message = e.response["Error"]["Message"]
    print(f"Error: {message}")
```

------