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 TwelveLabs Marengo Embed 2.7 modelo gera incorporações a partir de entradas de vídeo, texto, áudio ou imagem. Essas incorporações podem ser usadas para pesquisa por similaridade, agrupamento e outras tarefas de aprendizado de máquina.

  • Fornecedor — TwelveLabs

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

O TwelveLabs Marengo Embed 2.7 modelo suporta as operações do Amazon Bedrock Runtime 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 à entrada:

Modalidade de entrada Máximo
Texto 77 fichas
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 base64, certifique-se de que a carga útil do corpo da solicitação não exceda a cota de invocação do modelo Amazon Bedrock de 25 MB.

TwelveLabs Marengo Embed 2.7parâmetros de solicitação

Quando você faz uma solicitação, o campo no qual a entrada específica do modelo é especificada depende da operação da 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 seções a seguir 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— Retorna um erro se o texto exceder o limite

  • Valor padrão: final

  • 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 mediaSource objeto 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

    { "s3Location": { "uri": "string", "bucketOwner": "string" } }
    • uri— O URI do S3 contendo a mídia.

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

Especifica quais tipos de incorporações 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 do áudio no vídeo.

  • Valor padrão: ["texto-visual”, “imagem-visual”, “áudio"]

  • Tipos de entrada compatíveis: Vídeo, Áudio

O momento 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 de startSec tempo, 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

Por exemplo:

  • StartSec: 5

  • Comprimento Sec: 20

  • Resultado: O clipe será processado das 0:05 às 0:20.

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 ou igual minClipSec a.

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

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

    • Áudio: dividido uniformemente e o mais próximo possível de 10. Por exemplo:

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

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

  • Tipos de entrada compatíveis: — Vídeo, Áudio

  • Notas: Deve ser maior ou igual minClipSec a.

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

  • Tipo: int

  • Obrigatório: não

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

  • Valor padrão: 4

  • Tipos de entrada compatíveis: Vídeo

  • Notas: Deve ser menor ou igual useFixedLengthSec a.

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 seus metadados associados.

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 seções a seguir para obter detalhes sobre os parâmetros de resposta:

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

  • Tipo: Lista de duplas

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 do á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 TwelveLabs Marengo Embed 2.7 modelo com diferentes tipos de entrada usando Python.

nota

Atualmente, InvokeModel só suporta entrada de texto e imagem.

Reúna seu código nas seguintes etapas:

1. Defina a entrada específica do modelo

Defina a entrada específica do modelo dependendo do seu 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 escolha.

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