As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Cohere Command Modelos da
Você faz solicitações de inferência para um Cohere Command modelo com InvokeModelou InvokeModelWithResponseStream(streaming). É necessário o ID do modelo que deseja usar. Para obter o ID do modelo, consulte Modelos de base compatíveis no Amazon Bedrock.
Solicitação e reposta
- Request
-
A ferramenta Cohere Command os modelos têm os seguintes parâmetros de inferência.
{
"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"
}
Veja a seguir os parâmetros necessários.
Veja a seguir os parâmetros opcionais.
-
return_likelihoods: especifique como e se as probabilidades do token são retornadas com a resposta. É possível especificar as opções a seguir.
-
GENERATION
: somente as probabilidades de retorno dos tokens gerados.
-
ALL
: probabilidades de devolução de todos os tokens.
-
NONE
: (padrão) não retornar nenhuma probabilidade.
-
stream — (Obrigatório para suportar streaming) Especifique true
para retornar a resposta piece-by-piece em tempo real e false
retornar a resposta completa após a conclusão do processo.
-
logit_bias: evita que o modelo gere tokens indesejados ou incentiva o modelo a incluir os tokens desejados. O formato é {token_id: bias}
, em que o desvio é uma flutuação entre -10 e 10. Os tokens podem ser obtidos a partir de texto usando qualquer serviço de tokenização, como Coheredo Tokenize endpoint. Para ter mais informações, consulte Cohere documentação.
Padrão |
Mínimo |
Máximo |
N/D
|
-10 (para um desvio de token)
|
10 (para um desvio de token)
|
-
num_generations: o número máximo de gerações que o modelo deve retornar.
Padrão |
Mínimo |
Máximo |
1
|
1
|
5
|
-
truncate — Especifica como o API manipula entradas maiores do que o tamanho máximo do token. Use uma das seguintes opções:
-
NONE
: retorna um erro quando a entrada excede o tamanho máximo do token de entrada.
-
START
: descartar o início da entrada.
-
END
: (padrão) descartar o final da entrada.
Se você especificar START
ou END
, o modelo descartará a entrada até que a entrada restante tenha exatamente o tamanho máximo do token de entrada do modelo.
-
temperature: use um valor menor para reduzir a aleatoriedade na resposta.
Padrão |
Mínimo |
Máximo |
0.9
|
0
|
5
|
-
P: Top P. Use um valor menor para ignorar opções menos prováveis. Defina como 0 ou 1,0 para desabilitar. Se p
e k
estiverem habilitados, p
agirá depois de k
.
Padrão |
Mínimo |
Máximo |
0.75
|
0
|
1
|
-
k: Top K. Especifique o número de opções de token que o modelo usa para gerar o próximo token. Se p
e k
estiverem habilitados, p
agirá depois de k
.
Padrão |
Mínimo |
Máximo |
0
|
0
|
500
|
-
max_tokens: especifique o número máximo de tokens a serem usados na resposta gerada.
Padrão |
Mínimo |
Máximo |
20
|
1
|
4096
|
-
stop_sequences: configure até quatro sequências que o modelo reconhece. Depois de uma sequência de parada, o modelo para de gerar mais tokens. O texto retornado não contém a sequência de parada.
- Response
-
A resposta tem os campos possíveis a seguir:
{
"generations": [
{
"finish_reason": "COMPLETE | MAX_TOKENS | ERROR | ERROR_TOXIC",
"id": string,
"text": string,
"likelihood" : float,
"token_likelihoods" : [{"token" : string, "likelihood": float}],
"is_finished" : true | false,
"index" : integer
}
],
"id": string,
"prompt": string
}
generations
: uma lista dos resultados gerados junto com as probabilidades dos tokens solicitados. (Sempre devolvido). Cada objeto de geração na lista contém os campos a seguir.
id
: um identificador para a geração. (Sempre é retornado.)
likelihood
: a probabilidade da saída. O valor é a média das probabilidades do token em token_likelihoods
. Será retornado se você especificar o parâmetro de entrada return_likelihoods
.
token_likelihoods
: uma matriz de probabilidades por token. Será retornado se você especificar o parâmetro de entrada return_likelihoods
.
-
finish_reason
: o motivo pelo qual o modelo concluiu a geração de tokens. COMPLETE
: o modelo enviou de volta uma resposta finalizada. MAX_TOKENS
: a resposta foi cortada porque o modelo atingiu o número máximo de tokens para o tamanho do contexto. ERROR
: algo deu errado ao gerar a resposta. ERROR_TOXIC
: o modelo gerou uma resposta que foi considerada tóxica. finish_reason
é retornado somente quando is_finished
é igual a true
. (Nem sempre é retornado).
is_finished
: um campo booliano usado somente quando stream
é true
, indicando se há ou não tokens adicionais que serão gerados como parte da resposta de streaming. (Nem sempre é retornado)
text
o texto gerado.
-
index
: em uma resposta de streaming, use para determinar a qual geração um determinado token pertence. Quando apenas uma resposta é transmitida, todos os tokens pertencem à mesma geração e o índice não é retornado. Portanto, o index
só é retornado em uma solicitação de streaming com um valor de num_generations
maior que um.
prompt
: o prompt da solicitação de entrada (sempre é retornado).
id
: um identificador para a solicitação (sempre retornado).
Para obter mais informações, consulte Gerar no Cohere documentações.
Exemplo de código
Este exemplo mostra como chamar o Cohere Commandmodelo.
# 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()