TwelveLabs Marengo Embed 2.7 - Amazon Bedrock

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.

TwelveLabs Marengo Embed 2.7

Das TwelveLabs Marengo Embed 2.7 Modell generiert Einbettungen aus Video-, Text-, Audio- oder Bildeingaben. Diese Einbettungen können für die Ähnlichkeitssuche, Clustering und andere Aufgaben des maschinellen Lernens verwendet werden.

  • Anbieter — TwelveLabs

  • Modell-ID — twelvelabs.marengo-embed-2-7-v1:0

Das TwelveLabs Marengo Embed 2.7 Modell unterstützt die Amazon Bedrock Runtime-Operationen 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

Wird verwendetInvokeModel, um Einbettungen für Suchabfragen zu generieren. Wird verwendetStartAsyncInvoke, um Einbettungen für Assets in großem Umfang zu generieren.

Für die Eingabe gelten die folgenden Kontingente:

Eingabemodalität Maximum
Text 77 Spielmarken
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 Nutzlast des Anforderungstexts das Amazon Bedrock-Modellaufrufkontingent von 25 MB nicht überschreitet.

TwelveLabs Marengo Embed 2.7Anforderungsparameter

Wenn Sie eine Anfrage 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 }

Weitere Informationen zu den Eingabeparametern finden Sie in den folgenden Abschnitten:

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

  • Zulässige Werte:

    • end— Schneidet das Ende des Textes ab.

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

  • Standardwert: Ende

  • Kompatible Eingabetypen: Text

Enthält Informationen über die Medienquelle.

  • Typ: Objekt

  • Erforderlich: Ja (falls kompatibler Typ)

  • Kompatible Eingangstypen: 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

    { "s3Location": { "uri": "string", "bucketOwner": "string" } }
    • uri— Die S3-URI, die das Medium enthält.

    • bucketOwner— Die AWS Konto-ID des S3-Bucket-Besitzers.

Gibt an, welche Arten von Einbettungen abgerufen werden sollen.

  • Typ: Liste

  • Required: No

  • Gültige Werte für Listenmitglieder:

    • visual-text— Visuelle Einbettungen, optimiert für die Textsuche.

    • visual-image— Visuelle Einbettungen, optimiert für die Bildsuche.

    • audio— Einbettungen des Audios in das Video.

  • Standardwert: ["visueller Text“, „visuelles Bild“, „Audio"]

  • Kompatible Eingangstypen: Video, Audio

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

  • Type: Double

  • Required: No

  • Mindestwert: 0

  • Standardwert: 0

  • Kompatible Eingangstypen: 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 Eingangstypen: Video, Audio

Beispiel:

  • StartSec: 5

  • Länge Sek.: 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. Muss größer als oder gleich seinminClipSec.

  • Standardwert: Hängt vom Medientyp ab:

    • Video: Dynamisch geteilt durch Erkennung von Schussgrenzen

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

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

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

  • Kompatible Eingangstypen: — Video, Audio

  • Hinweise: Muss größer oder gleich seinminClipSec.

Legt für jeden Clip einen Mindestwert in Sekunden fest.

  • Typ: int

  • Required: No

  • Wertparameter: Bereich: 1-5

  • Standardwert: 4

  • Kompatible Eingangstypen: Video

  • Hinweise: Muss kleiner oder gleich seinuseFixedLengthSec.

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— Im S3-Bucket, der in definiert ists3OutputDataConfig, nachdem der asynchrone Aufruf-Job abgeschlossen ist.

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

Das Format des Ausgabe-Einbettungsvektors lautet wie folgt:

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

Weitere Informationen zu den Antwortparametern finden Sie in den folgenden Abschnitten:

Einbettet die Vektordarstellung der Eingabe.

  • Typ: Liste der Doppelgänger

Die Art der Einbettungen.

  • Typ: Zeichenfolge

  • Mögliche Werte:

    • visual-text— Visuelle Einbettungen, optimiert für die Textsuche.

    • visual-image— Visuelle Einbettungen, optimiert für die Bildsuche.

    • audio— Einbettungen des Audios in das Video.

  • Kompatible Eingangstypen: Video

Der Start-Offset des Clips.

  • Type: Double

  • Kompatible Eingangstypen: Video, Audio

Der Endoffset des Clips in Sekunden.

  • Type: Double

  • Kompatible Eingangstypen: Video, Audio

TwelveLabs Marengo Embed 2.7-Codebeispiele

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

Anmerkung

Unterstützt derzeit InvokeModel nur Text- und Bildeingaben.

Stellen Sie Ihren Code in den folgenden Schritten zusammen:

1. Definieren Sie modellspezifische Eingaben

Definieren Sie die modellspezifische Eingabe abhängig von Ihrem Eingangstyp:

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. Führen Sie den Modellaufruf mithilfe der Modelleingabe aus

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