

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

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

Le modèle TwelveLabs Marengo Embed 2.7 génère des vectorisations à partir d’entrées vidéo, texte, audio ou image. Ces vectorisation peuvent être utilisées pour la recherche de similarités, le clustering et d’autres tâches de machine learning.
+ Fournisseur — TwelveLabs
+ ID du modèle : twelvelabs.marengo-embed-2-7-v1:0

Le modèle TwelveLabs Marengo Embed 2.7 prend en charge les opérations d’exécution d’Amazon Bedrock décrites dans le tableau suivant. 
+ Pour plus d’informations sur les cas d’utilisation, pour les différentes méthodes d’API, consultez [En savoir plus sur les cas d’utilisation des différentes méthodes d’inférence de modèleDifférentes méthodes d'inférence](inference-methods.md).
+ Pour plus d’informations sur les types de modèles, consultez [Fonctionnement de l’inférence dans Amazon BedrockFonctionnement de l’inférence](inference-how.md).
  + Pour obtenir la liste des modèles IDs et voir les modèles et AWS les TwelveLabs Marengo Embed 2.7 régions pris en charge, recherchez le modèle dans le tableau à l'adresse[Modèles de fondation pris en charge dans Amazon Bedrock](models-supported.md).
  + Pour une liste complète des profils d'inférence IDs, voir[Régions et modèles pris en charge pour les profils d'inférence](inference-profiles-support.md). L'ID du profil d'inférence est basé sur la AWS région.


****  

| Opération API | Types de nœuds pris en charge | Modalités d’entrée | Modalités de sortie | 
| --- | --- | --- | --- | 
|  InvokeModel  | [Profils d’inférence](inference-profiles-support.md) |  Texte Image  |  Intégration  | 
| StartAsyncInvoke | [Modèles de base](models-supported.md) |  Vidéo Audio Image Texte  |  Vectorisation  | 

**Note**  
Utilisez `InvokeModel` pour générer des vectorisations pour une requête de recherche. Utilisez `StartAsyncInvoke` pour générer des vectorisations pour des actifs à grande échelle.

Les quotas suivants s’appliquent à l’entrée :


****  

| Modalité d’entrée | Maximum | 
| --- | --- | 
| Texte | 77 jetons | 
| Image | 5 Mo | 
| Vidéo (S3) | 2 Go | 
| Audio (S3) | 2 Go | 

**Note**  
Si vous définissez l’audio ou la vidéo en ligne à l’aide du codage Base64, assurez-vous que les données utiles du corps de la demande ne dépassent pas le quota d’invocation du modèle Amazon Bedrock de 25 Mo.

**Topics**
+ [Paramètres de demande TwelveLabs Marengo Embed 2.7](#model-parameters-marengo-async-request)
+ [Réponse de TwelveLabs Marengo Embed 2.7](#model-parameters-marengo-response)
+ [Exemples de code pour l’TwelveLabs Marengo Embed 2.7](#model-parameters-marengo-examples)

## Paramètres de demande TwelveLabs Marengo Embed 2.7
<a name="model-parameters-marengo-async-request"></a>

Lorsque vous faites une demande, le champ dans lequel l’entrée spécifique au modèle est spécifiée dépend du fonctionnement de l’API :
+ [InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html)— Dans la demande`body`.
+ [StartAsyncInvoke](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_StartAsyncInvoke.html)— Dans le `modelInput` champ du corps de la demande.

Le format de l’entrée du modèle dépend de la modalité d’entrée :

------
#### [ 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
}
```

------

Développez les sections suivantes pour obtenir des détails sur les paramètres d’entrée :

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

Modalité de la vectorisation.
+ **Type** : chaîne
+ **Obligatoire** : oui
+ **Valeurs valides** : `video` \$1 `text` \$1 `audio` \$1 `image`

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

Texte à vectoriser.
+ **Type** : chaîne
+ **Obligatoire :** oui (pour les types d’entrée compatibles)
+ **Types d’entrée compatibles :** texte

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

Spécifie la manière dont la plateforme tronque le texte.
+ **Type** : chaîne
+ **Obligatoire** : non
+ **Valeurs valides**:
  + `end` : tronque la fin du texte.
  + `none` : renvoie une erreur si le texte dépasse la limite
+ **Valeur par défaut :** fin
+ **Types d’entrée compatibles :** texte

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

Contient des informations concernant la source du média.
+ **Type :** objet
+ **Obligatoire :** oui (si le type est compatible)
+ **Types d’entrées compatibles :** image, vidéo, audio

Le format de l’objet `mediaSource` dans le corps de la demande varie selon que le média est défini comme une chaîne codée en Base64 ou comme un emplacement S3.
+ **Chaîne codée en Base64**

  ```
  {
      "mediaSource": {
          "base64String": "base64-encoded string"
      }
  }
  ```
  + `base64String` : chaîne codée en Base64 pour le média.
+ **Emplacement S3** — Spécifiez l'URI S3 et le propriétaire du compartiment.

  ```
  {
      "s3Location": {
          "uri": "string",
          "bucketOwner": "string"
      }
  }
  ```
  + `uri` : URI S3 contenant le média.
  + `bucketOwner`— L'ID de AWS compte du propriétaire du compartiment S3.

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

Spécifie les types de vectorisations à extraire.
+ **Type** : liste
+ **Obligatoire** : non
+ **Valeurs valides pour les membres de la liste :**
  + `visual-text` : vectorisations visuelles optimisées pour la recherche de texte.
  + `visual-image` : vectorisations visuelles optimisées pour la recherche d’images.
  + `audio` : vectorisation de l’audio dans la vidéo.
+ **Valeur par défaut :** ["visual-text", "visual-image", "audio"]
+ **Types d’entrées compatibles :** vidéo, audio

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

Point temporel du clip, en secondes, auquel le traitement doit commencer.
+ **Type** : double
+ **Obligatoire** : non
+ **Valeur minimale** : 0
+ **Valeur par défaut :** 0
+ **Types d’entrées compatibles :** vidéo, audio

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

Durée en secondes, à compter du point de départ `startSec`, au terme duquel le traitement doit s’arrêter.
+ **Type** : double
+ **Obligatoire** : non
+ **Valeurs valides :** 0 - durée du média
+ **Valeur par défaut :** durée du média
+ **Types d’entrées compatibles :** vidéo, audio

Exemple :
+ startSec : 5
+ lengthSec : 20
+ Résultat : Le clip est traité de 0:05 à 0:25 (5 secondes \$1 20 secondes).

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

Durée de chaque clip pour lequel le modèle doit générer une vectorisation.
+ **Type** : double
+ **Obligatoire** : non
+ **Paramètres de valeur :** 2 à 10. Il doit être supérieur ou égal à `minClipSec`.
+ **Valeur par défaut :** dépend du type de média :
  + **Vidéo :** divisée dynamiquement par la détection des limites de prise de vue.
  + **Audio :** divisé uniformément avec des segments aussi proches que possible de 10 secondes.

    Exemples :
    + Un clip de 50 secondes est divisé en 5 segments de 10 secondes.
    + Un clip de 16 secondes est divisé en 2 segments de 8 secondes.
+ **Types d’entrées compatibles :** vidéo, audio
+ **Remarque :** doit être supérieur ou égal à `minClipSec`.

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

Définit une valeur minimale pour chaque clip en secondes.
+ **Type :** int
+ **Obligatoire** : non
+ **Paramètres de valeur :** plage de valeurs : de 1 à 5
+ **Valeur par défaut :** 4
+ **Types d’entrées compatibles :** vidéo
+ **Remarques :** Doit être inférieur ou égal à `useFixedLengthSec`.

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

L’emplacement des vectorisations de sortie et des métadonnées associées dépend de la méthode d’invocation :
+ [InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html)— Dans le corps de réponse.
+ [StartAsyncInvoke](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_StartAsyncInvoke.html)— Dans le compartiment S3 défini dans le`s3OutputDataConfig`, une fois la tâche d'invocation asynchrone terminée.

S’il existe plusieurs vecteurs, le résultat est une liste d’objets, chacun contenant un vecteur et les métadonnées associées.

Le format du vecteur de vectorisation en sortie est le suivant :

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

Développez les sections suivantes pour obtenir des détails sur les paramètres de réponse :

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

Vectorisation : représentation vectorielle de l’entrée.
+ **Type** : liste de doubles

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

Type des vectorisations.
+ **Type** : chaîne
+ **Valeurs possibles :**
  + `visual-text` : vectorisations visuelles optimisées pour la recherche de texte.
  + `visual-image` : vectorisations visuelles optimisées pour la recherche d’images.
  + `audio` : vectorisation de l’audio dans la vidéo.
+ **Types d’entrées compatibles :** Vidéo

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

Décalage de départ du clip.
+ **Type** : double
+ **Types d’entrées compatibles :** vidéo, audio

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

Décalage de fin du clip, en secondes.
+ **Type** : double
+ **Types d’entrées compatibles :** vidéo, audio

## Exemples de code pour l’TwelveLabs Marengo Embed 2.7
<a name="model-parameters-marengo-examples"></a>

Cette section explique comment utiliser le modèle TwelveLabs Marengo Embed 2.7 avec différents types d’entrées à l’aide de Python. Les exemples montrent comment définir une entrée spécifique au modèle et exécuter des invocations de modèle.

**Note**  
InvokeModel prend uniquement en charge la saisie de texte et d'image. Pour les entrées vidéo et audio, utilisez StartAsyncInvoke.

Composez votre code en procédant comme suit :

**1. Définir une entrée spécifique au modèle**  
Définissez l’entrée spécifique au modèle en fonction de votre type d’entrée :

------
#### [ 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. Exécuter l’invocation du modèle à l’aide de l’entrée du modèle**  
Ajoutez ensuite le fragment de code correspondant à la méthode d’invocation du modèle que vous avez choisie.

------
#### [ 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}")
```

------