TwelveLabs Marengo Embed 2.7 - Amazon Bedrock

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

TwelveLabs Marengo Embed 2.7

El TwelveLabs Marengo Embed 2.7 modelo genera incrustaciones a partir de entradas de vídeo, texto, audio o imagen. Estas incrustaciones se pueden utilizar para la búsqueda de similitudes, la agrupación en clústeres y otras tareas de aprendizaje automático.

  • Proveedor: TwelveLabs

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

El TwelveLabs Marengo Embed 2.7 modelo admite las operaciones de Amazon Bedrock Runtime de la siguiente tabla.

Operación de la API Tipos de modelos compatibles Modalidades de entrada Modalidades de salida

InvokeModel

Perfiles de inferencia

Texto

Imagen

Incrustación

StartAsyncInvoke Modelos base

Video

Audio

Imagen

Texto

Incrustación

nota

Se utiliza InvokeModel para generar incrustaciones para la consulta de búsqueda. Se utiliza StartAsyncInvoke para generar incrustaciones de activos a gran escala.

Se aplican las siguientes cuotas a la entrada:

Modalidad de entrada Máximo
Texto 77 fichas
Imagen 5 MB
Vídeo (S3) 2 GB
Audio (S3) 2 GB
nota

Si define audio o vídeo en línea mediante la codificación base64, asegúrese de que la carga útil del cuerpo de la solicitud no supere la cuota de invocación del modelo Amazon Bedrock de 25 MB.

TwelveLabs Marengo Embed 2.7parámetros de solicitud

Al realizar una solicitud, el campo en el que se especifica la entrada específica del modelo depende de la operación de la API:

El formato de la entrada del modelo depende de la modalidad de entrada:

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 }

Amplíe las siguientes secciones para obtener detalles sobre los parámetros de entrada:

Modalidad de incrustación.

  • Tipo: cadena

  • Obligatorio: sí

  • Valores válidos: video | text | audio | image

Texto a incrustar.

  • Tipo: cadena

  • Obligatorio: Sí (para tipos de entrada compatibles)

  • Tipos de entrada compatibles: texto

Especifica cómo la plataforma trunca el texto.

  • Tipo: cadena

  • Obligatorio: no

  • Valores válidos:

    • end— Trunca el final del texto.

    • none— Devuelve un error si el texto supera el límite

  • Valor predeterminado: final

  • Tipos de entrada compatibles: texto

Contiene información sobre la fuente de medios.

  • Tipo: Objeto

  • Obligatorio: Sí (si el tipo es compatible)

  • Tipos de entrada compatibles: imagen, vídeo, audio

El formato del mediaSource objeto en el cuerpo de la solicitud depende de si el medio está definido como una cadena codificada en Base64 o como una ubicación S3.

  • Cadena codificada en base64

    { "mediaSource": { "base64String": "base64-encoded string" } }
    • base64String— La cadena codificada en Base64 del medio.

  • Ubicación de S3: especifique el URI de S3 y el

    { "s3Location": { "uri": "string", "bucketOwner": "string" } }
    • uri— El URI de S3 que contiene el contenido multimedia.

    • bucketOwner— El ID de AWS cuenta del propietario del bucket de S3.

Especifica los tipos de incrustaciones que se van a recuperar.

  • Tipo: lista

  • Obligatorio: no

  • Valores válidos para los miembros de la lista:

    • visual-text— Incrustaciones visuales optimizadas para la búsqueda de texto.

    • visual-image— Inserciones visuales optimizadas para la búsqueda de imágenes.

    • audio— Incrustaciones del audio en el vídeo.

  • Valor predeterminado: ["visual-text», «visual-image», «audio"]

  • Tipos de entradas compatibles: Vídeo, Audio

Punto temporal en segundos del clip en el que debe comenzar el procesamiento.

  • Tipo: Doble

  • Obligatorio: no

  • Valor mínimo: 0

  • Valor predeterminado: 0

  • Tipos de entradas compatibles: vídeo, audio

El tiempo en segundos, contado desde el punto startSec temporal, tras el cual debe detenerse el procesamiento.

  • Tipo: Doble

  • Obligatorio: no

  • Valores válidos: 0: Duración del contenido multimedia

  • Valor predeterminado: Duración del contenido multimedia

  • Tipos de entrada compatibles: vídeo, audio

Por ejemplo:

  • Sec de inicio: 5

  • Longitud (s): 20

  • Resultado: el clip se procesará entre las 0:05 y las 0:20.

La duración de cada clip durante el que el modelo debe generar una incrustación.

  • Tipo: Doble

  • Obligatorio: no

  • Parámetros de valor: 2 - 10. Debe ser mayor o igual aminClipSec.

  • Valor predeterminado: depende del tipo de medio:

    • Vídeo: dividido dinámicamente por la detección del límite del disparo

    • Audio: dividido de manera uniforme y lo más cerca posible de 10. Por ejemplo:

      • Un clip de 50 segundos se dividirá en 5 segmentos de 10 segundos.

      • Un clip de 16 segundos se dividirá en 2 segmentos de 8 segundos.

  • Tipos de entrada compatibles: — Vídeo, Audio

  • Notas: Debe ser mayor o igual aminClipSec.

Establece un valor mínimo para cada clip en segundos.

  • Tipo: int

  • Obligatorio: no

  • Parámetros de valor: Rango: 1-5

  • Valor predeterminado: 4

  • Tipos de entrada compatibles: vídeo

  • Notas: Debe ser inferior o igual auseFixedLengthSec.

Respuesta de TwelveLabs Marengo Embed 2.7

La ubicación de las incrustaciones de salida y los metadatos asociados depende del método de invocación:

  • InvokeModel— En el cuerpo de la respuesta.

  • StartAsyncInvoke— En el segmento S3 definido en els3OutputDataConfig, una vez finalizado el trabajo de invocación asíncrona.

Si hay varios vectores de incrustaciones, el resultado es una lista de objetos, cada uno de los cuales contiene un vector y sus metadatos asociados.

El formato del vector de incrustaciones de salida es el siguiente:

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

Amplíe las siguientes secciones para obtener detalles sobre los parámetros de respuesta:

Incrusta la representación vectorial de la entrada.

  • Tipo: Lista de dobles

El tipo de incrustaciones.

  • Tipo: cadena

  • Valores posibles:

    • visual-text— Incrustaciones visuales optimizadas para la búsqueda de texto.

    • visual-image— Inserciones visuales optimizadas para la búsqueda de imágenes.

    • audio— Incrustaciones del audio en el vídeo.

  • Tipos de entrada compatibles: vídeo

El desfase inicial del clip.

  • Tipo: Doble

  • Tipos de entradas compatibles: vídeo, audio

El desfase final del clip, en segundos.

  • Tipo: Doble

  • Tipos de entradas compatibles: vídeo, audio

Ejemplos de código de TwelveLabs Marengo Embed 2.7

Esta sección muestra cómo usar el TwelveLabs Marengo Embed 2.7 modelo con diferentes tipos de entrada usando Python.

nota

Actualmente, InvokeModel solo admite la entrada de texto e imagen.

Reúna el código en los siguientes pasos:

1. Defina la entrada específica del modelo

Defina la entrada específica del modelo en función del tipo de entrada:

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. Ejecute la invocación del modelo utilizando la entrada del modelo

A continuación, añada el fragmento de código que corresponda al método de invocación del modelo que prefiera.

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