

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 Embedd 2.7
<a name="model-parameters-marengo"></a>

El modelo TwelveLabs Marengo Embed 2.7 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 machine learning.
+ Proveedor — TwelveLabs
+ ID de modelo: twelvelabs.marengo-embed-2-7-v1:0

El modelo TwelveLabs Marengo Embed 2.7 admite las operaciones de Tiempo de ejecución de Amazon Bedrock que se indican en la siguiente tabla. 
+ Para obtener más información sobre los casos de uso para los diferentes métodos de API, consulte [Realizar solicitudes de inferencia](inference.md).
+ Para obtener más información acerca de los tipos de modelos, consulte [Realizar solicitudes de inferencia](inference.md).
  + Para obtener una lista de los identificadores de modelo y ver los modelos y AWS regiones compatiblesTwelveLabs Marengo Embed 2.7, busque el modelo en la tabla de[Modelos fundacionales compatibles en Amazon Bedrock](models-supported.md).
  + Para obtener una lista completa de los ID de perfil de inferencia, consulte [Regiones y modelos compatibles con los perfiles de inferencia](inference-profiles-support.md). El ID del perfil de inferencia se basa en la AWS región.


****  

| Operación de la API | Tipos de modelos compatibles | Modalidades de entrada | Modalidades de salida | 
| --- | --- | --- | --- | 
| InvokeModel | [Perfiles de inferencia](inference-profiles-support.md) | Texto<br />Image | Incrustación | 
| StartAsyncInvoke | [Modelos base](models-supported.md) | Video<br />Audio<br />Image<br />Texto | Incrustación | 

**nota**  
Utilice `InvokeModel` para generar incrustaciones para la consulta de búsqueda. Utilice `StartAsyncInvoke` para generar incrustaciones de activos a gran escala.

Las siguientes cuotas se aplican a la entrada:


****  

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

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

**Topics**
+ [TwelveLabs Marengo Embed 2.7 parámetros de solicitud](#model-parameters-marengo-async-request)
+ [TwelveLabs Marengo Embed 2.7 response](#model-parameters-marengo-response)
+ [TwelveLabs Marengo Embed 2.7 ejemplos de código](#model-parameters-marengo-examples)

## TwelveLabs Marengo Embed 2.7 parámetros de solicitud
<a name="model-parameters-marengo-async-request"></a>

Al realizar una solicitud, el campo en el que se especifica la entrada específica del modelo depende del funcionamiento de la API:
+ [InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html)— En la solicitud. `body`
+ [StartAsyncInvoke](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_StartAsyncInvoke.html)— En el `modelInput` campo del cuerpo de la solicitud.

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:

### inputType
<a name="model-parameters-marengo-inputType"></a>

Modalidad de incrustación.
+ **Tipo:** cadena
+ **Obligatorio**: sí
+ **Valores válidos**: `video` \| `text` \| `audio` \| `image`

### inputText
<a name="model-parameters-marengo-inputText"></a>

Texto que se va a incrustar.
+ **Tipo:** cadena
+ **Obligatorio:** sí (para tipos de entrada compatibles)
+ **Tipos de entrada compatibles:** texto

### textTruncate
<a name="model-parameters-marengo-textTruncate"></a>

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

### mediaSource
<a name="model-parameters-marengo-mediaSource"></a>

Contiene información sobre el origen del contenido multimedia.
+ **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 Base64-encoded cadena o como una ubicación de S3.
+ **Base64-encoded string**

  ```
  {
      "mediaSource": {
          "base64String": "base64-encoded string"
      }
  }
  ```
  + `base64String`— La Base64-encoded cadena del contenido multimedia.
+ **Ubicación de S3**: especifique el URI de S3 y el propietario del bucket.

  ```
  {
      "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.

### embeddingOption
<a name="model-parameters-marengo-embeddingOption"></a>

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`: incrustaciones 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 entrada compatibles:** vídeo, audio

### startSec
<a name="model-parameters-marengo-startSec"></a>

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 entrada compatibles:** vídeo, audio

### lengthSec
<a name="model-parameters-marengo-lengthSec"></a>

El tiempo en segundos, contado desde el punto temporal `startSec`, 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

Ejemplo:
+ startSec: 5
+ lengthSec: 20
+ Resultado: el clip se procesa entre las 0:05 y las 0:25 (5 segundos \+ 20 segundos).

### uso FixedLengthSec
<a name="model-parameters-marengo-useFixedLengthSec"></a>

La duración de cada clip para el que el modelo debe generar una incrustación.
+ **Tipo**: Doble
+ **Obligatorio**: no
+ **Parámetros de valor:** 2 - 10. Debe ser mayor o igual que `minClipSec`.
+ **Valor predeterminado:** depende del tipo de contenido multimedia:
  + **Vídeo:** Dividido dinámicamente por la detección del límite del tiro.
  + **Audio:** dividido en partes iguales con segmentos lo más próximos posible a 10 segundos.

    Ejemplos:
    + Un clip de 50 segundos se divide en 5 segmentos de 10 segundos.
    + Un clip de 16 segundos se divide en 2 segmentos de 8 segundos.
+ **Tipos de entrada compatibles:** vídeo, audio
+ **Notas:** Debe ser mayor o igual que `minClipSec`.

### 1 minuto ClipSec
<a name="model-parameters-marengo-minClipSec"></a>

Establece un valor mínimo para cada clip en segundos.
+ **Tipo:** int
+ **Obligatorio**: no
+ **Parámetros de valor:** intervalo: 1-5
+ **Valor predeterminado:** 4
+ **Tipos de entrada compatibles:** vídeo
+ **Notas:** Debe ser menor o igual que `useFixedLengthSec`.

## TwelveLabs Marengo Embed 2.7 response
<a name="model-parameters-marengo-response"></a>

La ubicación de las incrustaciones de salida y los metadatos asociados depende del método de invocación:
+ [InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html)— En el cuerpo de respuesta.
+ [StartAsyncInvoke](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_StartAsyncInvoke.html)— En el segmento S3 definido en el`s3OutputDataConfig`, una vez finalizado el trabajo de invocación asíncrona.

Si hay varios vectores de incrustaciones, la salida 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:

### Incrustación
<a name="model-parameters-marengo-embedding"></a>

Representación vectorial de la incrustaciones de entrada.
+ **Tipo**: lista de valores double

### embeddingOption
<a name="model-parameters-marengo-embeddingOption"></a>

El tipo de incrustaciones.
+ **Tipo:** cadena
+ **Valores posibles:**
  + `visual-text`: incrustaciones visuales optimizadas para la búsqueda de texto.
  + `visual-image`: incrustaciones visuales optimizadas para la búsqueda de imágenes.
  + `audio`: incrustaciones del audio en el vídeo.
+ **Tipos de entrada compatibles:** vídeo

### startSec
<a name="model-parameters-marengo-startSec"></a>

El desplazamiento inicial del clip.
+ **Tipo**: Doble
+ **Tipos de entrada compatibles:** vídeo, audio

### endSec
<a name="model-parameters-marengo-endSec"></a>

El desplazamiento final del clip, en segundos.
+ **Tipo**: Doble
+ **Tipos de entrada compatibles:** vídeo, audio

## TwelveLabs Marengo Embed 2.7 ejemplos de código
<a name="model-parameters-marengo-examples"></a>

En esta sección se muestra cómo utilizar el modelo TwelveLabs Marengo Embed 2.7 con diferentes tipos de entrada mediante Python. Los ejemplos muestran cómo definir la entrada específica del modelo y cómo ejecutar las invocaciones del modelo.

**nota**  
InvokeModel solo admite la entrada de texto e imagen. Para la entrada de vídeo y audio, utilice StartAsyncInvoke.

Reúna su código con 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}")
```

------