TwelveLabs Marengo Embed 2.7 - Amazon Bedrock

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

TwelveLabs Marengo Embed 2.7

Il modello TwelveLabs Marengo Embed 2.7 genera embedding da input video, testo, audio o immagini. Questi embedding possono essere utilizzati per la ricerca di similarità, il clustering e altre attività di machine learning.

  • Fornitore: TwelveLabs

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

Il modello TwelveLabs Marengo Embed 2.7 supporta le operazioni di runtime per Amazon Bedrock riportate nella tabella seguente.

Operazione API Tipi di modelli supportati Modalità di input Modalità di output

InvokeModel

Profili di inferenza

Testo

Immagine

Embedding

StartAsyncInvoke Modelli base

Video

Audio

Immagine

Testo

Embedding

Nota

Utilizzare InvokeModel per generare embedding per la query di ricerca. Utilizzare StartAsyncInvoke per generare embedding per risorse su larga scala.

All’input si applicano i seguenti limiti:

Modalità di input Massimo
Testo 77 gettoni
Immagine 5 MB
Video (S3) 2 GB
Audio (S3) 2 GB
Nota

Se si definiscono audio o video inline utilizzando la codifica base64, assicurarsi che il payload del corpo della richiesta non superi la quota di invocazione del modello Amazon Bedrock di 25 MB.

Parametri delle richieste di TwelveLabs Marengo Embed 2.7

Quando si effettua una richiesta, il campo in cui viene specificato l’input specifico del modello dipende dall’operazione dell’API:

Il formato dell’input del modello dipende dalla modalità di input:

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 }

Espandi le seguenti sezioni per ulteriori informazioni sui parametri di input:

Modalità per l’embedding.

  • Tipo: stringa

  • Obbligatorio:

  • Valori validi: video | text | audio | image

Testo da incorporare.

  • Tipo: stringa

  • Obbligatorio: sì (per i tipi di input compatibili)

  • Tipi di input compatibili: testo

Specifica in che modo la piattaforma tronca il testo.

  • Tipo: stringa

  • Obbligatorio: no

  • Valori validi:

    • end: tronca la fine del testo.

    • none: restituisce un errore se il testo supera il limite.

  • Valore predefinito: end

  • Tipi di input compatibili: testo

Contiene informazioni sull’origine multimediale.

  • Tipo: oggetto

  • Obbligatorio: sì (se il tipo è compatibile)

  • Tipi di input compatibili: immagine, video, audio

Il formato dell’oggetto mediaSource nel corpo della richiesta dipende se il file multimediale è definito come stringa codificata in Base64 o come posizione S3.

  • Stringa con codifica Base64

    { "mediaSource": { "base64String": "base64-encoded string" } }
    • base64String: stringa con codifica Base64 per il file multimediale.

  • Posizione S3: specifica l'URI S3 e il proprietario del bucket.

    { "s3Location": { "uri": "string", "bucketOwner": "string" } }
    • uri: URI S3 contenente il file multimediale.

    • bucketOwner— L'ID dell'AWSaccount del proprietario del bucket S3.

Specifica i tipi di embedding da recuperare.

  • Tipo: elenco

  • Obbligatorio: no

  • Valori validi per i membri dell’elenco:

    • visual-text: embedding visivi ottimizzati per la ricerca di testo.

    • visual-image: embedding visivi ottimizzati per la ricerca di immagine.

    • audio: embedding dell’audio nel video.

  • Valore predefinito: [“visual-text”, “visual-image”, “audio”]

  • Tipi di input compatibili: video, audio

Punto temporale in secondi del clip in cui deve iniziare l’elaborazione.

  • Tipo: numero a doppia precisione

  • Obbligatorio: no

  • Valore minimo: 0

  • Valore predefinito: 0

  • Tipi di input compatibili: video, audio

Tempo in secondi, contando a partire dal momento temporale startSec, dopo il quale l’elaborazione dovrebbe interrompersi.

  • Tipo: numero a doppia precisione

  • Obbligatorio: no

  • Valori validi: 0 - Durata del file multimediale

  • Valore predefinito: durata del file multimediale

  • Tipi di input compatibili: video, audio

Esempio:

  • startSec: 5

  • lengthSec: 20

  • Risultato: la clip viene elaborata da 0:05 a 0:25 (5 secondi + 20 secondi).

Durata di ogni clip per il quale il modello deve generare un embedding.

  • Tipo: numero a doppia precisione

  • Obbligatorio: no

  • Parametri del valore: 2 - 10. Deve essere maggiore o uguale a minClipSec.

  • Valore predefinito: dipende dal tipo di file multimediale:

    • Video: diviso dinamicamente mediante il rilevamento dei confini del colpo.

    • Audio: diviso in modo uniforme con segmenti il più vicini possibile a 10 secondi.

      Esempi:

      • Una clip di 50 secondi è divisa in 5 segmenti da 10 secondi.

      • Una clip di 16 secondi è divisa in 2 segmenti da 8 secondi.

  • Tipi di input compatibili: video, audio

  • Note: deve essere maggiore o uguale a minClipSec.

Imposta un valore minimo per ogni clip in secondi.

  • Type: int

  • Obbligatorio: no

  • Parametri del valore: intervallo: 1-5

  • Valore predefinito: 4

  • Tipi di input compatibili: video

  • Note: deve essere maggiore o uguale a useFixedLengthSec.

Risposta di TwelveLabs Marengo Embed 2.7

La posizione degli embedding di output e dei metadati associati dipende dal metodo di invocazione:

  • InvokeModel— Nel corpo della risposta.

  • StartAsyncInvoke— Nel bucket S3 definito ins3OutputDataConfig, dopo il completamento del processo di invocazione asincrona.

Se sono presenti più vettori di embedding, l’output è un elenco di oggetti, ciascuno contenente un vettore e i relativi metadati associati.

Il formato del vettore degli embedding di output è il seguente:

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

Espandere le seguenti sezioni per ulteriori informazioni sui parametri della risposta:

Rappresentazione dei vettori di embedding dell’input.

  • Tipo: elenco di numeri a doppia precisione

Tipo di embedding.

  • Tipo: stringa

  • Valori possibili:

    • visual-text: embedding visivi ottimizzati per la ricerca di testo.

    • visual-image: embedding visivi ottimizzati per la ricerca di immagine.

    • audio: embedding dell’audio nel video.

  • Tipi di input compatibili: video

Offset iniziale del clip.

  • Tipo: numero a doppia precisione

  • Tipi di input compatibili: video, audio

Offset finale del clip, in secondi.

  • Tipo: numero a doppia precisione

  • Tipi di input compatibili: video, audio

Esempi di codice di TwelveLabs Marengo Embed 2.7

Questa sezione mostra come utilizzare il modello TwelveLabs Marengo Embed 2.7 con diversi tipi di input utilizzando Python. Gli esempi mostrano come definire l'input specifico del modello ed eseguire le chiamate del modello.

Nota

InvokeModel supporta solo l'immissione di testo e immagini. Per l'ingresso video e audio, usa StartAsyncInvoke.

Assemblare il codice seguendo questa procedura:

1. Definisci l’input specifico del modello

Definire l’input specifico del modello in base al tipo di input:

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. Eseguire l’invocazione del modello utilizzando l’input del modello

Poi aggiungere il frammento di codice che corrisponde al metodo di invocazione del modello scelto.

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