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 TwelveLabs Marengo Embed 2.7 modello genera incorporamenti da input video, testo, audio o immagini. Questi incorporamenti possono essere utilizzati per la ricerca di similarità, il clustering e altre attività di apprendimento automatico.

  • Fornitore: TwelveLabs

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

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

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

InvokeModel

Profili di inferenza

Testo

Immagine

Incorporamento

StartAsyncInvoke Modelli base

Video

Audio

Immagine

Testo

Incorporamento

Nota

Utilizzato InvokeModel per generare incorporamenti per le query di ricerca. StartAsyncInvokeUtilizzato per generare incorporamenti per risorse su larga scala.

Le seguenti quote si applicano all'input:

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

Se definisci audio o video in linea utilizzando la codifica base64, assicurati che il payload del corpo della richiesta non superi la quota di invocazione del modello Amazon Bedrock di 25 MB.

TwelveLabs Marengo Embed 2.7parametri di richiesta

Quando si effettua una richiesta, il campo in cui viene specificato l'input specifico del modello dipende dal funzionamento 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 i dettagli sui parametri di input:

Modalità di incorporamento.

  • Tipo: stringa

  • Campo obbligatorio: sì

  • 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

  • Required: 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 sulla fonte multimediale.

  • Tipo: oggetto

  • Richiesto: Sì (se il tipo è compatibile)

  • Tipi di input compatibili: immagine, video, audio

Il formato dell'mediaSourceoggetto nel corpo della richiesta dipende dal fatto che il supporto sia definito come una stringa codificata in Base64 o come posizione S3.

  • Stringa codificata in Base64

    { "mediaSource": { "base64String": "base64-encoded string" } }
    • base64String— La stringa con codifica Base64 per il supporto.

  • Posizione S3: specifica l'URI S3 e il

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

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

Speciifica quali tipi di incorporamenti recuperare.

  • Tipo: Elenco

  • Required: No

  • Valori validi per i membri della lista:

    • visual-text— Incorporamenti visivi ottimizzati per la ricerca di testo.

    • visual-image— Incorporamenti visivi ottimizzati per la ricerca di immagini.

    • audio— Incorporamenti dell'audio nel video.

  • Valore predefinito: ["visual-text», «visual-image», «audio"]

  • Tipi di input compatibili: Video, Audio

Il punto temporale in secondi del clip in cui deve iniziare l'elaborazione.

  • Tipo: double

  • Required: No

  • Valore minimo: 0

  • Valore predefinito: 0

  • Tipi di input compatibili: video, audio

Il tempo in secondi, contando a partire dal startSec momento temporale, dopo il quale l'elaborazione dovrebbe interrompersi.

  • Tipo: double

  • Required: No

  • Valori validi: 0 - Durata del file multimediale

  • Valore predefinito: durata del file multimediale

  • Tipi di input compatibili: video, audio

Ad esempio:

  • StartSec: 5

  • Lunghezza Sec: 20

  • Risultato: la clip verrà elaborata dalle 0:05 alle 0:20.

La durata di ogni clip per la quale il modello deve generare un incorporamento.

  • Tipo: double

  • Required: No

  • Parametri di valore: 2 - 10. Deve essere maggiore o uguale aminClipSec.

  • Valore predefinito: dipende dal tipo di supporto:

    • Video: diviso dinamicamente in base al rilevamento dei confini del colpo

    • Audio: diviso in modo uniforme e il più vicino possibile a 10. Ad esempio:

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

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

  • Tipi di ingresso compatibili: — Video, audio

  • Note: Deve essere maggiore o uguale aminClipSec.

Imposta un valore minimo per ogni clip in secondi.

  • Tipo: int

  • Required: No

  • Parametri di valore: Intervallo: 1-5

  • Valore predefinito: 4

  • Tipi di input compatibili: Video

  • Note: deve essere inferiore o uguale auseFixedLengthSec.

Risposta TwelveLabs Marengo Embed 2.7

La posizione degli incorporamenti 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 incorporamento, l'output è un elenco di oggetti, ciascuno contenente un vettore e i relativi metadati associati.

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

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

Espandi le seguenti sezioni per i dettagli sui parametri di risposta:

Incorpora la rappresentazione vettoriale dell'input.

  • Tipo: Elenco dei doppi

Il tipo di incorporamenti.

  • Tipo: stringa

  • Valori possibili:

    • visual-text— Incorporamenti visivi ottimizzati per la ricerca di testo.

    • visual-image— Incorporamenti visivi ottimizzati per la ricerca di immagini.

    • audio— Incorporamenti dell'audio nel video.

  • Tipi di input compatibili: Video

L'offset iniziale della clip.

  • Tipo: double

  • Tipi di ingresso compatibili: video, audio

L'offset finale della clip, in secondi.

  • Tipo: double

  • Tipi di input compatibili: video, audio

Esempi di codice TwelveLabs Marengo Embed 2.7

Questa sezione mostra come usare il TwelveLabs Marengo Embed 2.7 modello con diversi tipi di input usando Python.

Nota

Attualmente supporta InvokeModel solo l'immissione di testo e immagini.

Compila il codice nei seguenti passaggi:

1. Definisci l'input specifico del modello

Definite 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. Esegui l'invocazione del modello utilizzando l'input del modello

Quindi, aggiungi 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}")