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à.
CohereCommandmodelli
Si effettuano richieste di inferenza a un Cohere Command modello con InvokeModelo InvokeModelWithResponseStream(streaming). È necessario l'ID modello per il modello che desideri utilizzare. Per ottenere l'ID del modello, consultaID dei modelli Amazon Bedrock.
Richiesta e risposta
- Request
-
I Cohere Command modelli hanno i seguenti parametri di inferenza.
{
"prompt": string,
"temperature": float,
"p": float,
"k": float,
"max_tokens": int,
"stop_sequences": [string],
"return_likelihoods": "GENERATION|ALL|NONE",
"stream": boolean,
"num_generations": int,
"logit_bias": {token_id: bias},
"truncate": "NONE|START|END"
}
I seguenti sono parametri obbligatori.
I seguenti sono parametri opzionali.
-
return_likelihoods — Specificate come e se le verosimiglianze del token vengono restituite con la risposta. Puoi specificare le seguenti opzioni.
-
GENERATION
: restituisce solo le verosimiglianze per i token generati.
-
ALL
: restituisce le verosimiglianze per tutti i token.
-
NONE
: (impostazione predefinita) non restituisce nessuna verosimiglianza.
-
stream — (necessario per supportare lo streaming) true
Specificare di restituire la risposta piece-by-piece in tempo reale e di restituire la risposta completa false
al termine del processo.
-
logit_bias — Impedisce al modello di generare token indesiderati o incentiva il modello a includere i token desiderati. Il formato è {token_id: bias}
, dove bias è un numero a decimale mobile compreso tra -10 e 10. I token possono essere ottenuti dal testo utilizzando qualsiasi servizio di tokenizzazione, come Tokenize endpoint. Cohere Per ulteriori informazioni, consulta la documentazione. Cohere
Predefinita |
Minimo |
Massimo |
N/D
|
-10 (per un bias di token)
|
10 (per un bias di token)
|
-
num_generations — Il numero massimo di generazioni che il modello deve restituire.
Predefinita |
Minimo |
Massimo |
1
|
1
|
5
|
-
truncate: specifica in che modo l'API gestisce gli input più lunghi della lunghezza massima del token. Utilizzare una delle seguenti operazioni:
-
NONE
: restituisce un errore quando l'input supera la lunghezza massima del token di input.
-
START
: elimina l'inizio dell'input.
-
END
: (impostazione predefinita) 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.
-
temperatura: utilizza un valore più basso per ridurre la casualità nella risposta.
Predefinita |
Minimo |
Massimo |
0.9
|
0
|
5
|
-
p — Top P. Usa un valore più basso per ignorare le opzioni meno probabili. Imposta 0 o 1,0 per disabilitare questa funzionalità. Se p
e k
sono entrambi abilitati, p
agisce dopo k
.
Predefinita |
Minimo |
Massimo |
0.75
|
0
|
1
|
-
k — Top K. Specificate il numero di scelte di token utilizzate dal modello per generare il token successivo. Se p
e k
sono entrambi abilitati, p
agisce dopo k
.
Predefinita |
Minimo |
Massimo |
0
|
0
|
500
|
-
max_tokens — Specificate il numero massimo di token da utilizzare nella risposta generata.
Predefinita |
Minimo |
Massimo |
20
|
1
|
4096
|
-
stop_sequences — Configura fino a quattro sequenze riconosciute dal modello. Dopo una sequenza di arresto, il modello smette di generare altri token. Il testo restituito non contiene la sequenza di arresto.
- Response
-
La risposta ha i seguenti campi possibili:
{
"generations": [
{
"finish_reason": "COMPLETE | MAX_TOKENS | ERROR | ERROR_TOXIC",
"id": string,
"text": string,
"likelihood" : float,
"token_likelihoods" : [{"token" : float}],
"is_finished" : true | false,
"index" : integer
}
],
"id": string,
"prompt": string
}
generations
: un elenco dei risultati generati insieme alle verosimiglianze dei token richiesti. Viene restituito sempre. Ogni oggetto di generazione nell'elenco contiene i seguenti campi.
id
: un identificatore per la generazione. Viene restituito sempre.
likelihood
: la verosimiglianza dell'output. Il valore è la media delle verosimiglianze dei token in token_likelihoods
. Restituito se specifichi il parametro di input return_likelihoods
.
token_likelihoods
: un array di verosimiglianze dei token. Restituito se specifichi il parametro di input return_likelihoods
.
-
finish_reason
— Il motivo per cui il modello ha terminato la generazione di token. COMPLETE
- il modello ha restituito una risposta completa. MAX_TOKENS
— la risposta è stata interrotta perché il modello ha raggiunto il numero massimo di token per la lunghezza del contesto. ERROR
— qualcosa è andato storto durante la generazione della risposta. ERROR_TOXIC
— il modello ha generato una risposta ritenuta tossica. finish_reason
viene restituito solo quando is_finished
=true
. Non viene restituito sempre.
is_finished
: un campo booleano usato solo quando stream
è true
, a indicare se esistono o meno altri token che verranno generati come parte della risposta in streaming. Non viene restituito sempre.
text
: il testo generato.
-
index
: da utilizzare in una risposta in streaming per stabilire a quale generazione appartiene un determinato token. Se viene trasmessa una sola risposta, tutti i token appartengono alla stessa generazione e l'indice non viene restituito. Di conseguenza, index
viene restituito solo in una richiesta di streaming con un valore num_generations
maggiore di uno.
prompt
— Il prompt della richiesta di input (restituito sempre).
id
: un identificatore per la richiesta. Viene restituito sempre.
Per ulteriori informazioni, vedere https://docs.cohere.com/reference/generate nella Cohere documentazione.
esempio di codice
Questo esempio mostra come chiamare il CohereCommandmodello.
# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
# SPDX-License-Identifier: Apache-2.0
"""
Shows how to generate text using a Cohere model.
"""
import json
import logging
import boto3
from botocore.exceptions import ClientError
logger = logging.getLogger(__name__)
logging.basicConfig(level=logging.INFO)
def generate_text(model_id, body):
"""
Generate text using a Cohere 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 with Cohere model %s", model_id)
accept = 'application/json'
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 example.
"""
logging.basicConfig(level=logging.INFO,
format="%(levelname)s: %(message)s")
model_id = 'cohere.command-text-v14'
prompt = """Summarize this dialogue:
"Customer: Please connect me with a support agent.
AI: Hi there, how can I assist you today?
Customer: I forgot my password and lost access to the email affiliated to my account. Can you please help me?
AI: Yes of course. First I'll need to confirm your identity and then I can connect you with one of our support agents.
"""
try:
body = json.dumps({
"prompt": prompt,
"max_tokens": 200,
"temperature": 0.6,
"p": 1,
"k": 0,
"num_generations": 2,
"return_likelihoods": "GENERATION"
})
response = generate_text(model_id=model_id,
body=body)
response_body = json.loads(response.get('body').read())
generations = response_body.get('generations')
for index, generation in enumerate(generations):
print(f"Generation {index + 1}\n------------")
print(f"Text:\n {generation['text']}\n")
if 'likelihood' in generation:
print(f"Likelihood:\n {generation['likelihood']}\n")
print(f"Reason: {generation['finish_reason']}\n\n")
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 with Cohere model {model_id}.")
if __name__ == "__main__":
main()