TwelveLabs Marengo Embed 2.7 - Amazon Bedrock

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

TwelveLabs Marengo Embed 2.7

Le TwelveLabs Marengo Embed 2.7 modèle génère des intégrations à partir d'entrées vidéo, texte, audio ou image. Ces intégrations peuvent être utilisées pour la recherche de similarités, le clustering et d'autres tâches d'apprentissage automatique.

  • Fournisseur — TwelveLabs

  • Identifiant du modèle — twelvelabs.marengo-embed-2-7-v1:0

Le TwelveLabs Marengo Embed 2.7 modèle prend en charge les opérations Amazon Bedrock Runtime décrites dans le tableau suivant.

Opération API Types de modèles pris en charge Modalités de saisie Modalités de sortie

InvokeModel

Profils d'inférence

Texte

Image

Intégration

StartAsyncInvoke Modèles de base

Vidéo

Audio

Image

Texte

Intégration

Note

InvokeModelÀ utiliser pour générer des intégrations pour une requête de recherche. StartAsyncInvokeÀ utiliser pour générer des intégrations pour des actifs à grande échelle.

Les quotas suivants s'appliquent à l'entrée :

Modalité de saisie Maximum
Texte 77 jetons
Image 5 Mo
Vidéo (S3) 2 Go
Audio (S3) 2 Go
Note

Si vous définissez l'audio ou la vidéo en ligne à l'aide du codage base64, assurez-vous que la charge utile du corps de la demande ne dépasse pas le quota d'invocation du modèle Amazon Bedrock de 25 Mo.

TwelveLabs Marengo Embed 2.7paramètres de demande

Lorsque vous faites une demande, le champ dans lequel l'entrée spécifique au modèle est spécifiée dépend du fonctionnement de l'API :

Le format de l'entrée du modèle dépend de la modalité de saisie :

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 }

Développez les sections suivantes pour plus de détails sur les paramètres d'entrée :

Modalité d'intégration.

  • Type : chaîne

  • Obligatoire : oui

  • Valeurs valides : video | text | audio | image

Texte à intégrer.

  • Type : chaîne

  • Obligatoire : Oui (pour les types d'entrée compatibles)

  • Types de saisie compatibles : Texte

Spécifie la manière dont la plateforme tronque le texte.

  • Type : chaîne

  • Obligatoire : non

  • Valeurs valides:

    • end— Tronque la fin du texte.

    • none— Renvoie une erreur si le texte dépasse la limite

  • Valeur par défaut : fin

  • Types de saisie compatibles : Texte

Contient des informations sur la source multimédia.

  • Type : Objet

  • Obligatoire : Oui (si le type est compatible)

  • Types d'entrées compatibles : image, vidéo, audio

Le format de l'mediaSourceobjet dans le corps de la demande varie selon que le média est défini comme une chaîne codée en Base64 ou comme un emplacement S3.

  • Chaîne codée en Base64

    { "mediaSource": { "base64String": "base64-encoded string" } }
    • base64String— Chaîne codée en Base64 pour le média.

  • Emplacement S3 — Spécifiez l'URI S3 et le

    { "s3Location": { "uri": "string", "bucketOwner": "string" } }
    • uri— L'URI S3 contenant le média.

    • bucketOwner— L'ID de AWS compte du propriétaire du compartiment S3.

Spécifie les types d'intégrations à récupérer.

  • Type : liste

  • Obligatoire : non

  • Valeurs valides pour les membres de la liste :

    • visual-text— Intégrations visuelles optimisées pour la recherche de texte.

    • visual-image— Intégrations visuelles optimisées pour la recherche d'images.

    • audio— Intégration de l'audio dans la vidéo.

  • Valeur par défaut : ["visual-text », « visual-image », « audio"]

  • Types d'entrées compatibles : vidéo, audio

Point temporel du clip, en secondes, auquel le traitement doit commencer.

  • Type : double

  • Obligatoire : non

  • Valeur minimale : 0

  • Valeur par défaut : 0

  • Types d'entrées compatibles : vidéo, audio

Durée en secondes, à compter du point de départ, après laquelle le startSec traitement doit s'arrêter.

  • Type : double

  • Obligatoire : non

  • Valeurs valides : 0 - Durée du média

  • Valeur par défaut : Durée du média

  • Types d'entrées compatibles : vidéo, audio

Exemples :

  • Sec de démarrage : 5

  • Durée (sec) : 20

  • Résultat : Le clip sera traité de 0h05 à 0h20.

Durée de chaque clip pour lequel le modèle doit générer une intégration.

  • Type : double

  • Obligatoire : non

  • Paramètres de valeur : 2 à 10. Doit être supérieur ou égal àminClipSec.

  • Valeur par défaut : dépend du type de média :

    • Vidéo : divisée dynamiquement par la détection des limites de prise de vue

    • Audio : Divisé uniformément et aussi près que possible de 10. Exemples :

      • Un clip de 50 secondes sera divisé en 5 segments de 10 secondes.

      • Un clip de 16 secondes sera divisé en 2 segments de 8 secondes.

  • Types d'entrées compatibles : — Vidéo, Audio

  • Remarques : Doit être supérieur ou égal àminClipSec.

Définit une valeur minimale pour chaque clip en secondes.

  • Type : int

  • Obligatoire : non

  • Paramètres de valeur : plage : 1 à 5

  • Valeur par défaut : 4

  • Types d'entrées compatibles : Vidéo

  • Remarques : Doit être inférieur ou égal àuseFixedLengthSec.

Réponse de TwelveLabs Marengo Embed 2.7

L'emplacement des intégrations de sortie et des métadonnées associées dépend de la méthode d'appel :

  • InvokeModel— Dans le corps de réponse.

  • StartAsyncInvoke— Dans le compartiment S3 défini dans les3OutputDataConfig, une fois la tâche d'invocation asynchrone terminée.

S'il existe plusieurs vecteurs d'intégration, le résultat est une liste d'objets, chacun contenant un vecteur et les métadonnées associées.

Le format du vecteur d'intégration en sortie est le suivant :

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

Développez les sections suivantes pour plus de détails sur les paramètres de réponse :

Embeddings : représentation vectorielle de l'entrée.

  • Type : Liste des chambres doubles

Le type d'intégration.

  • Type : chaîne

  • Valeurs possibles :

    • visual-text— Intégrations visuelles optimisées pour la recherche de texte.

    • visual-image— Intégrations visuelles optimisées pour la recherche d'images.

    • audio— Intégration de l'audio dans la vidéo.

  • Types d'entrées compatibles : Vidéo

Le décalage de départ du clip.

  • Type : double

  • Types d'entrées compatibles : vidéo, audio

Le décalage final du clip, en secondes.

  • Type : double

  • Types d'entrées compatibles : vidéo, audio

Exemples de code TwelveLabs Marengo Embed 2.7

Cette section explique comment utiliser le TwelveLabs Marengo Embed 2.7 modèle avec différents types d'entrées à l'aide de Python.

Note

Actuellement, InvokeModel seule la saisie de texte et d'image est prise en charge.

Composez votre code en procédant comme suit :

1. Définir une entrée spécifique au modèle

Définissez l'entrée spécifique au modèle en fonction de votre type d'entrée :

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. Exécuter l'invocation du modèle à l'aide de l'entrée du modèle

Ajoutez ensuite l'extrait de code correspondant à la méthode d'invocation du modèle que vous avez choisie.

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