

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á.

# Modelos Command da Cohere
<a name="model-parameters-cohere-command"></a>

Para solicitações de inferência a um modelo Command da Cohere, use [InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html) ou [InvokeModelWithResponseStream](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModelWithResponseStream.html) (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](models-supported.md). 

**Topics**
+ [Solicitação e reposta](#model-parameters-cohere-command-request-response)
+ [Exemplo de código](#api-inference-examples-cohere-command)

## Solicitação e reposta
<a name="model-parameters-cohere-command-request-response"></a>

------
#### [ Request ]

Os modelos Command da Cohere têm os parâmetros de inferência a seguir. 

```
{
    "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.
+ **prompt**: (obrigatório) o texto de entrada que serve como ponto de partida para gerar a resposta.

  Veja os limites de texto por chamada e por caracteres.

**Textos por chamada**  
    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/bedrock/latest/userguide/model-parameters-cohere-command.html)

**Caracteres**  
    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/bedrock/latest/userguide/model-parameters-cohere-command.html)

Veja a seguir os parâmetros opcionais.
+ **return\$1likelihoods**: 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 compatibilidade com streaming) especifique `true` para retornar a resposta fragmento por fragmento em tempo real e `false` para retornar a resposta completa após a conclusão do processo.
+ **logit\$1bias**: 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 de texto que usa qualquer serviço de tokenização, como o endpoint Tokenize da Cohere. Para obter mais informações, consulte a [documentação da Cohere](https://docs.cohere.com/docs).    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/bedrock/latest/userguide/model-parameters-cohere-command.html)
+  **num\$1generations**: o número máximo de gerações que o modelo deve retornar.     
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/bedrock/latest/userguide/model-parameters-cohere-command.html)
+  **truncate**: especifica como a API lida com entradas maiores 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 randomização na resposta.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/bedrock/latest/userguide/model-parameters-cohere-command.html)
+ **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`.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/bedrock/latest/userguide/model-parameters-cohere-command.html)
+ **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`.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/bedrock/latest/userguide/model-parameters-cohere-command.html)
+ **max\$1tokens**: especifique o número máximo de tokens a serem usados na resposta gerada.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/bedrock/latest/userguide/model-parameters-cohere-command.html)
+ **stop\$1sequences**: 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 [Generate](https://docs.cohere.com/reference/generate-1) na documentação da Cohere.

------

## Exemplo de código
<a name="api-inference-examples-cohere-command"></a>

Este exemplo mostra como chamar o modelo *Command da Cohere*.

```
# 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()
```