TwelveLabs Marengo Embed 2.7 - Amazon Bedrock

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

TwelveLabs Marengo Embed 2.7

O modelo TwelveLabs Marengo Embed 2.7 gera incorporações com base em entradas de vídeo, texto, áudio ou imagem. Essas incorporações podem ser usadas para pesquisa por similaridade, agrupamento e outras tarefas de machine learning.

  • Fornecedor — TwelveLabs

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

O modelo TwelveLabs Marengo Embed 2.7 permite as operações do Amazon Bedrock Runtime descritas na tabela a seguir.

Operação de API Tipos de modelo compatíveis Modalidades de entrada Modalidades de saída

InvokeModel

Perfis de inferência

Texto

Imagem

Incorporação

StartAsyncInvoke Modelos básicos

Vídeo

Áudio

Imagem

Texto

Incorporação

nota

Use InvokeModel para gerar incorporações para consulta de pesquisa. Use StartAsyncInvoke para gerar incorporações para ativos em grande escala.

As seguintes cotas se aplicam à saída:

Modalidade de entrada Máximo
Texto 77 tokens
Imagem 5 MB
Vídeo (S3) 2 GB
Áudio (S3) 2 GB
nota

Se você definir áudio ou vídeo em linha usando a codificação em base64, a carga útil do corpo da solicitação não deve ultrapassar a cota de invocação de 25 MB do modelo do Amazon Bedrock.

Parâmetros de solicitação do TwelveLabs Marengo Embed 2.7

Quando você faz uma solicitação, o campo no qual a entrada específica do modelo é estipulada depende da operação de API:

O formato da entrada do modelo depende da modalidade 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 }

Expanda as seguintes seções para obter detalhes sobre os parâmetros de entrada:

Modalidade para a incorporação.

  • Tipo: string

  • Obrigatório: Sim

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

Texto a ser incorporado.

  • Tipo: string

  • Obrigatório: sim (para tipos de entrada compatíveis)

  • Tipos de entrada compatíveis: texto

Especifica como a plataforma trunca o texto.

  • Tipo: string

  • Obrigatório: não

  • Valores válidos:

    • end: trunca o final do texto.

    • none: exibe um erro se o texto exceder o limite.

  • Valor padrão: end

  • Tipos de entrada compatíveis: texto

Contém informações sobre a fonte de mídia.

  • Tipo: objeto

  • Obrigatório: sim (se for do tipo compatível)

  • Tipos de entrada compatíveis: imagem, vídeo, áudio

O formato do objeto mediaSource no corpo da solicitação depende se a mídia está definida como uma string codificada em base64 ou como um local do S3.

  • Cadeia de caracteres codificada em Base64

    { "mediaSource": { "base64String": "base64-encoded string" } }
    • base64String: a string codificada em base64 para a mídia.

  • Localização do S3 — especifique o URI do S3 e o proprietário do bucket.

    { "s3Location": { "uri": "string", "bucketOwner": "string" } }
    • uri: o URI do S3 que contém a mídia.

    • bucketOwner— O ID da AWS conta do proprietário do bucket S3.

Especifica quais tipos de incorporação devem ser recuperadas.

  • Tipo: lista

  • Obrigatório: não

  • Valores válidos para membros da lista:

    • visual-text: incorporações visuais otimizadas para pesquisa de texto.

    • visual-image: incorporações visuais otimizadas para pesquisa de imagens.

    • audio: incorporações de áudio no vídeo.

  • Valor padrão: [“visual-text”, “visual-image”, “audio”]

  • Tipos de entrada compatíveis: vídeo, áudio

O ponto no tempo em segundos do clipe em que o processamento deve começar.

  • Tipo: duplo

  • Obrigatório: não

  • Valor mínimo: 0

  • Valor padrão: 0

  • Tipos de entrada compatíveis: vídeo, áudio

O tempo em segundos, contado a partir do ponto startSec, após o qual o processamento deve ser interrompido.

  • Tipo: duplo

  • Obrigatório: não

  • Valores válidos: 0 (duração da mídia).

  • Valor padrão: duração da mídia.

  • Tipos de entrada compatíveis: vídeo, áudio

Exemplo:

  • startSec: 5

  • lengthSec: 20

  • Resultado: O clipe é processado de 0:05 a 0:25 (5 segundos + 20 segundos).

A duração de cada clipe para o qual o modelo deve gerar uma incorporação.

  • Tipo: duplo

  • Obrigatório: não

  • Parâmetros de valor: 2-10. Deve ser maior que ou igual a minClipSec.

  • Valor padrão: depende do tipo de mídia:

    • Vídeo: Dividido dinamicamente pela detecção do limite de disparo.

    • Áudio: dividido uniformemente com segmentos o mais próximo possível de 10 segundos.

      Exemplos:

      • Um clipe de 50 segundos é dividido em 5 segmentos de 10 segundos.

      • Um clipe de 16 segundos é dividido em 2 segmentos de 8 segundos.

  • Tipos de entrada compatíveis:: vídeo, áudio

  • Observações: deve ser maior que ou igual a minClipSec.

Define um valor mínimo para cada clipe em segundos.

  • Tipo: inteiro

  • Obrigatório: não

  • Parâmetros de valor: intervalo: 1-5

  • Valor padrão: 4

  • Tipos de entrada compatíveis: vídeo

  • Observações: deve ser menor que ou igual a useFixedLengthSec.

Resposta TwelveLabs Marengo Embed 2.7

A localização das incorporações de saída e dos metadados associados depende do método de invocação:

  • InvokeModel— No corpo da resposta.

  • StartAsyncInvoke— No bucket do S3 definido nos3OutputDataConfig, após a conclusão do trabalho de invocação assíncrona.

Se houver vários vetores de incorporação, a saída será uma lista de objetos, cada um contendo um vetor e os metadados correspondentes.

O formato do vetor de incorporações de saída é o seguinte:

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

Expanda as seguintes seções para obter detalhes sobre os parâmetros de resposta:

Representação vetorial de incorporações da entrada.

  • Tipo: lista de duplos

O tipo de incorporação.

  • Tipo: string

  • Valores possíveis:

    • visual-text: incorporações visuais otimizadas para pesquisa de texto.

    • visual-image: incorporações visuais otimizadas para pesquisa de imagens.

    • audio: incorporações de áudio no vídeo.

  • Tipos de entrada compatíveis: vídeo

O deslocamento inicial do clipe.

  • Tipo: duplo

  • Tipos de entrada compatíveis: vídeo, áudio

O deslocamento final do clipe, em segundos.

  • Tipo: duplo

  • Tipos de entrada compatíveis: vídeo, áudio

Exemplos de código do TwelveLabs Marengo Embed 2.7

Esta seção mostra como usar o modelo TwelveLabs Marengo Embed 2.7 com diferentes tipos de entrada usando Python. Os exemplos demonstram como definir a entrada específica do modelo e executar invocações do modelo.

nota

InvokeModel suporta somente entrada de texto e imagem. Para entrada de vídeo e áudio, use StartAsyncInvoke.

Organize seu código nas seguintes etapas:

1. Defina a entrada específica do modelo

Defina a entrada específica do modelo dependendo do 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. Execute a invocação do modelo usando a entrada do modelo

Em seguida, adicione o trecho de código que corresponde ao método de invocação do modelo de sua preferência.

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