TwelveLabs Marengo Embed 2.7 - Amazon Bedrock

TwelveLabs Marengo Embed 2.7

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.

API-Operation Unterstützte Modelltypen Eingabemodalitäten Ausgabemodalitäten

InvokeModel

Inferenzprofile

Text

Image

Einbettung

StartAsyncInvoke Basismodelle

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.

Anforderungsparameter von TwelveLabs Marengo Embed 2.7

Wenn Sie eine Anforderung stellen, hängt das Feld, in dem die modellspezifische Eingabe angegeben wird, von der API-Operation ab:

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:

Modalität für die Einbettung

  • Typ: Zeichenfolge

  • Erforderlich: Ja

  • Zulässige Werte: video | text | audio | image

Text, der eingebettet werden soll

  • Typ: Zeichenfolge

  • Erforderlich: Ja (für kompatible Eingabetypen)

  • Kompatible Eingabetypen: Text

Gibt an, wie die Plattform Text kürzt

  • Typ: Zeichenfolge

  • Required: No

  • Gültige Werte:

    • end – Kürzt das Textende

    • none – Gibt einen Fehler zurück, wenn der Text das Limit überschreitet

  • Standardwert: Ende

  • Kompatible Eingabetypen: Text

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-Speicherort – Geben Sie den S3-URI und den Bucket-Eigentümer an.

    { "s3Location": { "uri": "string", "bucketOwner": "string" } }
    • uri – Der S3-URI, der das Medium enthält

    • bucketOwner – Die AWS-Konto-ID des S3-Bucket-Eigentümers

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

Der Zeitpunkt in Sekunden des Clips, zu dem die Verarbeitung beginnen soll

  • Type: Double

  • Required: No

  • Mindestwert 0

  • Standardwert: 0

  • Kompatible Eingabetypen: Video, Audio

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

Zum Beispiel:

  • startSec: 5

  • lengthSec: 20

  • Ergebnis: Der Clip wird von 0:05 bis 0:20 bearbeitet.

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 geteilt durch Erkennung von Aufnahmegrenzen

    • Audio: gleichmäßig aufgeteilt und so nah wie möglich an 10 Zum Beispiel:

      • Ein 50-Sekunden-Clip wird in 5 10-Sekunden-Segmente unterteilt.

      • Ein 16-Sekunden-Clip wird in 2 8-Sekunden-Segmente unterteilt.

  • Kompatible Eingabetypen: – Video, Audio

  • Hinweis: Der Wert muss gleich oder größer als minClipSec sein.

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

Der Speicherort der Ausgabeeinbettungen und der zugehörigen Metadaten hängt von der Aufrufmethode ab:

  • InvokeModel – im Antworttext

  • StartAsyncInvoke – in dem S3-Bucket, der in s3OutputDataConfig definiert ist, nachdem der asynchrone Aufrufauftrag 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:

Darstellung des Einbettungsvektors der Eingabe

  • Typ: Liste von Double-Werten

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

Der Startversatz des Clips

  • Type: Double

  • Kompatible Eingabetypen: Video, Audio

Der Endversatz des Clips in Sekunden

  • Type: Double

  • Kompatible Eingabetypen: Video, Audio

TwelveLabs Marengo Embed 2.7Codebeispiele für

In diesem Abschnitt wird gezeigt, wie Sie das Modell TwelveLabs Marengo Embed 2.7 mit verschiedenen Eingabetypen mithilfe von Python verwenden.

Anmerkung

Derzeit unterstützt InvokeModel nur Text- und Bildeingaben.

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}")