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.
CohereEmbedmodelos
Realiza solicitudes de inferencia a un Embed modelo con InvokeModelNecesita el ID del modelo que desea usar. Para obtener el ID del modelo, consulteID de modelo de Amazon Bedrock.
Amazon Bedrock no admite las respuestas de las Cohere Embed modelos en streaming.
Solicitud y respuesta
- Request
-
Los Cohere Embed modelos tienen los siguientes parámetros de inferencia.
{
"texts":[string],
"input_type": "search_document|search_query|classification|clustering",
"truncate": "NONE|START|END",
"embedding_types": embedding_types
}
Los siguientes parámetros son obligatorios.
-
textos: matriz de cadenas para que el modelo las incruste. Para un rendimiento óptimo, recomendamos reducir la longitud de cada texto a menos de 512 tokens. 1 token tiene unos 4 caracteres.
Los siguientes son los límites de texto por llamada y caracteres.
Textos por llamada
Mínimo |
Máximo |
0 textos
|
96 textos
|
Personajes
Mínimo |
Máximo |
0 caracteres
|
2048 caracteres
|
-
input_type: antepone fichas especiales para diferenciar cada tipo entre sí. No se deben mezclar tipos diferentes, excepto cuando se mezclan tipos para la búsqueda y la recuperación. En este caso, incruste el corpus con el tipo search_document
y las consultas incrustadas con el tipo search_query
.
-
search_document
: en los casos de uso de búsquedas, use search_document
cuando codifique documentos para incrustarlos y guardarlos en una base de datos vectorial.
-
search_query
: use search_query
al consultar su base de datos vectorial para encontrar documentos relevantes.
-
classification
: use classification
cuando utilice incrustaciones como entrada a un clasificador de texto.
-
clustering
: use clustering
para agrupar las incrustaciones.
Los siguientes son parámetros opcionales:
-
truncar: especifica cómo gestiona la API las entradas que superen la longitud máxima del token. Utilice una de las siguientes:
-
NONE
: (predeterminado) devuelve un error cuando la entrada supera la longitud máxima del token de entrada.
-
START
— Descarta el inicio de la entrada.
-
END
: descarta el final de la entrada.
Si especifica START
oEND
, el modelo descarta la entrada hasta que la entrada restante tenga exactamente la longitud máxima del token de entrada para el modelo.
-
embedding_types: especifica los tipos de incrustaciones que desea que se devuelvan. Opcional y por defecto es, que devuelve el tipo de respuesta. None
Embed Floats
Puede ser de uno o más de los siguientes tipos:
-
float
— Utilice este valor para devolver las incrustaciones flotantes predeterminadas.
-
int8
— Utilice este valor para devolver las incrustaciones int8 firmadas.
-
uint8
— Utilice este valor para devolver incrustaciones de int8 sin firmar.
-
binary
— Utilice este valor para devolver incrustaciones binarias firmadas.
-
ubinary
— Utilice este valor para devolver incrustaciones binarias sin firmar.
Para obtener más información, consulte https://docs.cohere.com/reference/embed en la documentación. Cohere
- Response
-
La respuesta body
de una llamada a InvokeModel
es la siguiente:
{
"embeddings": [
[ <array of 1024 floats>
]
],
"id": string,
"response_type" : "embeddings_floats,
"texts": [string]
}
La respuesta body
tiene los siguientes campos posibles:
-
id: identificador de la respuesta.
-
response_type: el tipo de respuesta. Este valor siempre es embeddings_floats
.
-
incrustaciones: una matriz de incrustaciones, en la que cada incrustación es una matriz de elementos flotantes con 1024 elementos. La longitud de la matriz embeddings
será la misma que la longitud de la matriz texts
original.
-
textos: una matriz que contiene las entradas de texto para las que se devolvieron las incrustaciones.
Para obtener más información, consulte https://docs.cohere.com/reference/embed.
Ejemplo de código
En este ejemplo se muestra cómo llamar al modelo. CohereEmbed English
# 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()