Cohere Command R and Command R+ Modelos da - Amazon Bedrock

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 R and Command R+ Modelos da

Você faz solicitações de inferência para Cohere Command R and Cohere Command R+ modelos 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.

dica

Para aplicativos de conversação, recomendamos que você use o Converse API. O Converse APIfornece um conjunto unificado de parâmetros que funcionam em todos os modelos que oferecem suporte a mensagens. Para obter mais informações, consulte Conduza uma conversa com o Converse Operações do API.

Solicitação e reposta

Request

A ferramenta Cohere Command os modelos têm os seguintes parâmetros de inferência.

{ "message": string, "chat_history": [ { "role":"USER or CHATBOT", "message": string } ], "documents": [ {"title": string, "snippet": string}, ], "search_queries_only" : boolean, "preamble" : string, "max_tokens": int, "temperature": float, "p": float, "k": float, "prompt_truncation" : string, "frequency_penalty" : float, "presence_penalty" : float, "seed" : int, "return_prompt" : boolean, "tools" : [ { "name": string, "description": string, "parameter_definitions": { "parameter name": { "description": string, "type": string, "required": boolean } } } ], "tool_results" : [ { "call": { "name": string, "parameters": { "parameter name": string } }, "outputs": [ { "text": string } ] } ], "stop_sequences": [string], "raw_prompting" : boolean }

Veja a seguir os parâmetros necessários.

  • message: (obrigatório) entrada de texto para o modelo responder.

Veja a seguir os parâmetros opcionais.

  • chat_history: uma lista de mensagens anteriores entre o usuário e o modelo, com o objetivo de oferecer contexto conversacional ao modelo para responder à mensagem do usuário.

    Estes campos são obrigatórios.

    • role: o perfil da mensagem. Os valores válidos são tokens USER ou CHATBOT.

    • message: o conteúdo do texto da mensagem.

    Veja a seguir um exemplo JSON para o chat_history campo

    "chat_history": [ {"role": "USER", "message": "Who discovered gravity?"}, {"role": "CHATBOT", "message": "The man who is widely credited with discovering gravity is Sir Isaac Newton"} ]
  • documents: uma lista de textos que o modelo pode citar para gerar uma resposta mais precisa. Cada documento é um dicionário de string-string. A geração resultante inclui citações que fazem referência a alguns desses documentos. É recomendável manter a contagem total de palavras das strings no dicionário abaixo de 300. Um campo _excludes (matriz de strings) pode ser fornecido para omitir a exibição de alguns pares de chave-valor no modelo. Para obter mais informações, consulte o guia do Modo de Documento no Cohere documentação.

    Veja a seguir um exemplo JSON para o documents campo.

    "documents": [ {"title": "Tall penguins", "snippet": "Emperor penguins are the tallest."}, {"title": "Penguin habitats", "snippet": "Emperor penguins only live in Antarctica."} ]
  • search_queries_only: assume false como padrão. Quando true, a resposta só conterá uma lista de consultas de pesquisa geradas, mas nenhuma pesquisa ocorrerá e nenhuma resposta do modelo para a message do usuário será gerada.

  • preamble: substitui o preâmbulo padrão para geração das consultas de pesquisa. Não tem efeito sobre as gerações de uso de ferramentas.

  • max_tokens: o número máximo de tokens que o modelo deve gerar como parte da resposta. A definição de um valor baixo pode acarretar gerações incompletas. A definição de max_tokens pode acarretar gerações incompletas ou inexistentes quando usado com os campos tools ou documents.

  • temperature: use um valor menor para reduzir a aleatoriedade na resposta. A randomização pode ser maximizada ainda mais aumentando o valor do parâmetro p.

    Padrão Mínimo Máximo

    0.3

    0

    1

  • P: Top P. Use um valor menor para ignorar opções menos prováveis.

    Padrão Mínimo Máximo

    0.75

    0,01

    0,99

  • k: Top K. Especifique o número de opções de token que o modelo usa para gerar o próximo token.

    Padrão Mínimo Máximo

    0

    0

    500

  • prompt_truncation: assume OFF como padrão. Determina como o prompt é construído. Com prompt_truncation definido como AUTO_PRESERVE_ORDER, alguns elementos de chat_history e documents serão descartados para construir um prompt que se encaixe no limite de comprimento do contexto do modelo. Durante esse processo, a ordem dos documentos e o histórico do chat serão preservados. Com prompt_truncation definido como OFF, nenhum elemento será descartado.

  • frequency_penalty: usado para reduzir a repetitividade dos tokens gerados. Quanto maior for o valor, mais forte será a penalidade aplicada aos tokens presentes anteriormente, proporcional a quantas vezes eles já apareceram no prompt ou na geração anterior.

    Padrão Mínimo Máximo

    0

    0

    1

  • presence_penalty: usado para reduzir a repetitividade dos tokens gerados. Semelhante a frequency_penalty, exceto por essa penalidade ser aplicada igualmente a todos os tokens que já apareceram, independentemente das frequências exatas.

    Padrão Mínimo Máximo

    0

    0

    1

  • seed: se especificado, o backend fará o possível para amostrar tokens de maneira determinística, de modo que solicitações repetidas com a semente e os parâmetros iguais retornem o mesmo resultado. No entanto, o determinismo não pode ser totalmente garantido.

  • return_prompt: especifique true para retornar o prompt completo que foi enviado ao modelo. O valor padrão é false. Na resposta, o prompt no campo prompt.

  • tools: uma lista de ferramentas (funções) disponíveis que o modelo pode sugerir fazendo uma invocação antes de produzir uma resposta de texto. Quando tools for passado (sem tool_results), o campo text na resposta será "" e o campo tool_calls na resposta será preenchido com uma lista de chamadas de ferramenta que precisam ser feitas. Se nenhuma chamada precisar ser feita, a matriz tool_calls permanecerá vazia.

    Para obter mais informações, consulte Uso de ferramentas no Cohere documentação.

    dica

    Recomendamos que você use o Converse APIpara integrar o uso da ferramenta em seu aplicativo. Para obter mais informações, consulte Use uma ferramenta para concluir uma resposta do modelo do Amazon Bedrock.

    Veja a seguir um exemplo JSON para o tools campo.

    [ { "name": "top_song", "description": "Get the most popular song played on a radio station.", "parameter_definitions": { "sign": { "description": "The call sign for the radio station for which you want the most popular song. Example calls signs are WZPZ and WKRP.", "type": "str", "required": true } } } ]

    Para obter mais informações, consulte Uso da ferramenta em uma única etapa (chamada de função) no Cohere documentação.

  • tools_results: uma lista de resultados das ferramentas de invocação recomendadas pelo modelo no turno de chat anterior. Os resultados são usados para produzir uma resposta textual e são referidos em citações. Durante o uso de tool_results, tools também deve ser passado. Cada tool_result contém informações sobre como foi invocado, bem como uma lista de saídas em forma de dicionários. A lógica de citação exclusiva e refinada do Cohere exige que a saída seja uma lista. Se a saída for apenas um item, como {"status": 200}, você ainda deverá envolvê-la em uma lista.

    Para obter mais informações, consulte Uso de ferramentas no Cohere documentação.

    Veja a seguir um exemplo JSON para o tools_results campo.

    [ { "call": { "name": "top_song", "parameters": { "sign": "WZPZ" } }, "outputs": [ { "song": "Elemental Hotel" } ] } ]
  • stop_sequences: uma lista de sequências de parada. Depois que uma sequência de parada for detectada, o modelo deixará de gerar mais tokens.

  • raw_prompting: especifique true para enviar message do usuário ao modelo sem nenhum pré-processamento; do contrário, falso.

Response

A resposta tem os campos possíveis a seguir:

{ "response_id": string, "text": string, "generation_id": string, "citations": [ { "start": int, "end": int, "text": "string", "document_ids": [ "string" ] } ], "finish_reason": string, "tool_calls": [ { "name": string, "parameters": { "parameter name": string } } ], { "meta": { "api_version": { "version": string }, "billed_units": { "input_tokens": int, "output_tokens": int } } }
  • response_id: identificador exclusivo para conclusão do chat

  • text: a resposta do modelo para entrada da mensagem de chat.

  • generation_id: identificador exclusivo para conclusão do chat, usado com o endpoint de feedback na plataforma da Cohere.

  • citations: uma matriz de citações em linha e metadados associados para a resposta gerada. Contém os seguintes campos:

    • start: o índice no qual a citação começa, começando em 0.

    • end: o índice após o qual a citação termina, começando em 0.

    • text: o texto ao qual a citação pertence.

    • document_ids — Uma matriz de documentos IDs que corresponde aos documentos citados para o texto.

  • prompt: o prompt completo que foi enviado ao modelo. Especifique o campo return_prompt para retorná-lo.

  • finish_reason: o motivo pelo qual o modelo deixou de gerar saída. Pode ser qualquer um dos seguintes:

    • complete: a conclusão atingiu o final do token de geração; verifique se esse é o motivo final do melhor desempenho.

    • error_toxic: não foi possível concluir a geração por causa de nossos filtros de conteúdo.

    • error_limit: não foi possível concluir a geração porque o limite de contexto do modelo foi atingido.

    • error: não foi possível concluir a geração por causa de um erro.

    • user_cancel: não foi possível concluir a geração porque ela foi interrompida pelo usuário.

    • max_tokens: não foi possível concluir a geração porque o usuário especificou um limite max_tokens na solicitação e esse limite foi atingido. Isso talvez não acarrete o melhor desempenho.

  • tool_calls: uma lista de ferramentas indicadas para chamadas. Só retornado caso você especifique o campo de entrada tools.

    Para obter mais informações, consulte Uso de ferramentas no Cohere documentação.

    dica

    Recomendamos que você use o Converse APIpara integrar o uso da ferramenta em seu aplicativo. Para obter mais informações, consulte Use uma ferramenta para concluir uma resposta do modelo do Amazon Bedrock.

    Veja a seguir um exemplo JSON para o tool_calls campo.

    [ { "name": "top_song", "parameters": { "sign": "WZPZ" } } ]
  • meta — dados de API uso (só existem para streaming).

    • api_version— A API versão. A versão está no campo version.

    • billed_units: as unidades faturadas. Os valores possíveis são:

      • input_tokens: o número dos tokens de entrada faturados.

      • output_tokens: o número dos tokens de saída faturados.

Exemplo de código

Este exemplo mostra como chamar o Cohere Command Rmodelo.

# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. # SPDX-License-Identifier: Apache-2.0 """ Shows how to use the Cohere Command R 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 Command R 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) bedrock = boto3.client(service_name='bedrock-runtime') response = bedrock.invoke_model( body=body, modelId=model_id ) logger.info( "Successfully generated text with Cohere Command R 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-r-v1:0' chat_history = [ {"role": "USER", "message": "What is an interesting new role in AI if I don't have an ML background?"}, {"role": "CHATBOT", "message": "You could explore being a prompt engineer!"} ] message = "What are some skills I should have?" try: body = json.dumps({ "message": message, "chat_history": chat_history, "max_tokens": 2000, "temperature": 0.6, "p": 0.5, "k": 250 }) response = generate_text(model_id=model_id, body=body) response_body = json.loads(response.get('body').read()) response_chat_history = response_body.get('chat_history') print('Chat history\n------------') for response_message in response_chat_history: if 'message' in response_message: print(f"Role: {response_message['role']}") print(f"Message: {response_message['message']}\n") print("Generated text\n--------------") print(f"Stop reason: {response_body['finish_reason']}") print(f"Response text: \n{response_body['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 with Cohere model {model_id}.") if __name__ == "__main__": main()