Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Fai richieste di inferenza a un Embed model con InvokeModelÈ necessario l'ID del modello per il modello che si desidera utilizzare. Per ottenere l'ID del modello, consultaModelli di fondazione supportati in Amazon Bedrock.
Nota
Amazon Bedrock non supporta le risposte in streaming da Cohere Embed modelli.
Richiesta e risposta
Il Cohere Embed i modelli hanno i seguenti parametri di inferenza.
{
"texts":[string],
"input_type": "search_document|search_query|classification|clustering",
"truncate": "NONE|START|END",
"embedding_types": embedding_types
}
I seguenti sono parametri obbligatori.
-
text — Una serie di stringhe da incorporare nel modello. Per prestazioni ottimali, consigliamo di ridurre la lunghezza di ogni testo a meno di 512 token. 1 token corrisponde a circa 4 caratteri.
Di seguito sono riportati i limiti di testo per chiamata e di caratteri.
Testi per chiamata
Minimo Massimo 0 testi
96 testi
Personaggi
Minimo Massimo 0 caratteri
2048 caratteri
-
input_type — Aggiunge token speciali per differenziare ogni tipo l'uno dall'altro. Non conviene mischiare tipi diversi, tranne quelli per la ricerca e il recupero. In questo caso, incorpora il corpus con il tipo
search_document
e le query incorporate con il tiposearch_query
.-
search_document
: nei casi d'uso legati alla ricerca, utilizzasearch_document
per codificare i documenti per gli incorporamenti archiviati in un database vettoriale. -
search_query
: utilizzasearch_query
per interrogare il database vettoriale al fine di trovare i documenti pertinenti. -
classification
: utilizzaclassification
quando gli incorporamenti sono usati come input per un classificatore di testo. -
clustering
: utilizzaclustering
per raggruppare gli incorporamenti.
-
I seguenti sono parametri opzionali:
-
truncate: specifica in che modo l'API gestisce gli input più lunghi della lunghezza massima del token. Utilizzare una delle seguenti operazioni:
-
NONE
: (impostazione predefinita) restituisce un errore quando l'input supera la lunghezza massima del token di input. -
START
— Scarta l'inizio dell'input. -
END
: elimina la fine dell'input.
Se specifichi
START
oEND
, il modello elimina l'input finché quello rimanente non raggiunge esattamente la lunghezza massima del token di input per il modello. -
-
embedding_types: specifica i tipi di incorporamenti che si desidera vengano restituiti. Facoltativo e predefinito è
None
, che restituisce il tipo di risposta.Embed Floats
Può essere uno o più dei seguenti tipi:-
float
— Utilizzate questo valore per restituire gli incorporamenti float predefiniti. -
int8
— Utilizzate questo valore per restituire incorporamenti int8 firmati. -
uint8
— Utilizzate questo valore per restituire incorporamenti int8 non firmati. -
binary
— Utilizzate questo valore per restituire incorporamenti binari firmati. -
ubinary
— Utilizzate questo valore per restituire incorporamenti binari non firmati.
-
Per ulteriori informazioni, vedere https://docs.cohere.com/reference/embed
esempio di codice
Questo esempio mostra come chiamare Cohere Embed Englishmodello.
# 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()