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.
CohereEmbedmodèles
Vous envoyez des demandes d'inférence à un Embed modèle avec InvokeModelVous avez besoin de l'ID du modèle que vous souhaitez utiliser. Pour obtenir l'ID du modèle, voirIdentifiants de modèles Amazon Bedrock.
Amazon Bedrock ne prend pas en charge les réponses en streaming des Cohere Embed modèles.
Demande et réponse
- Request
-
Les Cohere Embed modèles possèdent les paramètres d'inférence suivants.
{
"texts":[string],
"input_type": "search_document|search_query|classification|clustering",
"truncate": "NONE|START|END",
"embedding_types": embedding_types
}
Les paramètres suivants sont obligatoires.
-
textes — Tableau de chaînes que le modèle doit intégrer. Pour des performances optimales, nous recommandons de réduire la longueur de chaque texte à moins de 512 jetons. Un jeton contient environ quatre caractères.
Vous trouverez ci-dessous le texte par appel et les limites de caractères.
Textes par appel
Minimum |
Maximum |
0 textes
|
96 textes
|
Personnages
Minimum |
Maximum |
0 caractère
|
2048 caractères
|
-
input_type — Ajoute des jetons spéciaux pour différencier chaque type les uns des autres. Vous ne devez pas mélanger différents types, sauf à des fins de recherche et de récupération. Dans ce cas, intégrez votre corpus avec le type search_document
et les requêtes intégrées avec le type search_query
.
-
search_document
: dans les cas d’utilisation de la recherche, utilisez search_document
lorsque vous codez des documents que vous stockez dans une base de données vectorielles pour les intégrations.
-
search_query
: utilisez search_query
lorsque vous interrogez la base de données vectorielles pour trouver les documents pertinents.
-
classification
: utilisez classification
lorsque vous optez pour des intégrations comme entrée dans un classificateur de texte.
-
clustering
: utilisez clustering
pour regrouper les intégrations.
Les paramètres suivants sont facultatifs :
-
tronquer — Spécifie la manière dont l'API gère les entrées supérieures à la longueur maximale du jeton. Utilisez l'une des options suivantes :
-
NONE
: (par défaut) renvoie une erreur lorsque l’entrée dépasse la longueur maximale du jeton d’entrée.
-
START
— Supprime le début de l'entrée.
-
END
: supprime la fin de l’entrée.
Si vous spécifiez START
ou END
, le modèle supprime l'entrée jusqu'à ce que l'entrée restante atteigne exactement la longueur maximale du jeton d'entrée correspondant au modèle.
-
embedding_types — Spécifie les types d'intégrations que vous souhaitez renvoyer. Facultatif et la valeur par défaut estNone
, ce qui renvoie le type de Embed Floats
réponse. Il peut s'agir d'un ou de plusieurs des types suivants :
-
float
— Utilisez cette valeur pour renvoyer les intégrations flottantes par défaut.
-
int8
— Utilisez cette valeur pour renvoyer des intégrations int8 signées.
-
uint8
— Utilisez cette valeur pour renvoyer des intégrations int8 non signées.
-
binary
— Utilisez cette valeur pour renvoyer des intégrations binaires signées.
-
ubinary
— Utilisez cette valeur pour renvoyer des intégrations binaires non signées.
Pour plus d'informations, consultez https://docs.cohere.com/reference/embed dans la Cohere documentation.
- Response
-
Voici la réponse body
d’un appel InvokeModel
:
{
"embeddings": [
[ <array of 1024 floats>
]
],
"id": string,
"response_type" : "embeddings_floats,
"texts": [string]
}
La réponse body
inclut les champs suivants :
-
id : identifiant de la réponse.
-
response_type — Type de réponse. Cette valeur est toujours embeddings_floats
.
-
embeddings : tableau d’intégrations dans lequel chaque intégration est un tableau de flottants avec 1 024 éléments. La longueur du tableau embeddings
est la même que celle du tableau texts
d’origine.
-
texts : tableau contenant les entrées de texte pour lesquelles les intégrations ont été renvoyées.
Pour plus d'informations, consultez https://docs.cohere.com/reference/embed.
Exemple de code
Cet exemple montre comment appeler le CohereEmbed Englishmodèle.
# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
# SPDX-License-Identifier: Apache-2.0
"""
Shows how to generate text embeddings using the Cohere Embed English model.
"""
import json
import logging
import boto3
from botocore.exceptions import ClientError
logger = logging.getLogger(__name__)
logging.basicConfig(level=logging.INFO)
def generate_text_embeddings(model_id, body):
"""
Generate text embedding by using the Cohere Embed model.
Args:
model_id (str): The model ID to use.
body (str) : The reqest body to use.
Returns:
dict: The response from the model.
"""
logger.info(
"Generating text emdeddings with the Cohere Embed model %s", model_id)
accept = '*/*'
content_type = 'application/json'
bedrock = boto3.client(service_name='bedrock-runtime')
response = bedrock.invoke_model(
body=body,
modelId=model_id,
accept=accept,
contentType=content_type
)
logger.info("Successfully generated text with Cohere model %s", model_id)
return response
def main():
"""
Entrypoint for Cohere Embed example.
"""
logging.basicConfig(level=logging.INFO,
format="%(levelname)s: %(message)s")
model_id = 'cohere.embed-english-v3'
text1 = "hello world"
text2 = "this is a test"
input_type = "search_document"
embedding_types = ["int8", "float"]
try:
body = json.dumps({
"texts": [
text1,
text2],
"input_type": input_type,
"embedding_types": embedding_types}
)
response = generate_text_embeddings(model_id=model_id,
body=body)
response_body = json.loads(response.get('body').read())
print(f"ID: {response_body.get('id')}")
print(f"Response type: {response_body.get('response_type')}")
print("Embeddings")
for i, embedding in enumerate(response_body.get('embeddings')):
print(f"\tEmbedding {i}")
print(*embedding)
print("Texts")
for i, text in enumerate(response_body.get('texts')):
print(f"\tText {i}: {text}")
except ClientError as err:
message = err.response["Error"]["Message"]
logger.error("A client error occurred: %s", message)
print("A client error occured: " +
format(message))
else:
print(
f"Finished generating text embeddings with Cohere model {model_id}.")
if __name__ == "__main__":
main()