Cohere Command R y Command R+ Modelos de   - Amazon Bedrock

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Cohere Command R y Command R+ Modelos de  

Realiza solicitudes de inferencia a Cohere Command R y Cohere Command R+ modelos con InvokeModelo InvokeModelWithResponseStream(streaming). Necesitará el ID de modelo del modelo que desee utilizar. Para obtener el ID del modelo, consulte Modelos fundacionales compatibles en Amazon Bedrock.

sugerencia

Para aplicaciones conversacionales, le recomendamos que utilice el Converse API. El Converse APIproporciona un conjunto unificado de parámetros que funcionan en todos los modelos que admiten mensajes. Para obtener más información, consulte Mantenga una conversación con el Converse Operaciones de API.

Solicitud y respuesta

Request

La Cohere Command los modelos tienen los siguientes parámetros de inferencia.

{ "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 }

Los siguientes parámetros son obligatorios.

  • message: (obligatorio) entrada de texto a la que debe responder el modelo.

Los siguientes son parámetros opcionales.

  • chat_history: lista de los mensajes anteriores entre el usuario y el modelo, que debe proporcionar al modelo un contexto conversacional para responder al mensaje del usuario.

    Los siguientes campos son obligatorios.

    • role: es el rol para el mensaje. Los valores válidos son los tokens USER o CHATBOT.

    • message: contenido del texto del mensaje.

    El siguiente es un JSON ejemplo del campo chat_history

    "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: lista de textos que el modelo puede citar para generar una respuesta más precisa. Cada documento es un diccionario de cadena con cadena. La generación resultante incluye citas que hacen referencia a algunos de estos documentos. Le recomendamos que mantenga el recuento total de palabras de las cadenas del diccionario por debajo de 300 palabras. Opcionalmente, se puede proporcionar un campo _excludes (matriz de cadenas) para omitir que algunos pares clave-valor se muestren en el modelo. Para obtener más información, consulte la guía del modo de documento en la Cohere .

    El siguiente es un JSON ejemplo del 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: el valor predeterminado es false. Si es true, la respuesta solo contendrá una lista de las consultas de búsqueda generadas, pero no se realizará ninguna búsqueda ni se generará ninguna respuesta del modelo al message del usuario.

  • preamble: anula el preámbulo predeterminado para la generación de consultas de búsqueda. No afecta a las generaciones de uso de herramientas.

  • max_tokens: cantidad máxima de tokens que el modelo debe generar para la respuesta. Tenga en cuenta que establecer un valor bajo puede provocar generaciones incompletas. Si establece max_tokens, las generaciones pueden ser incompletas o nulas al usarse con los campos tools o documents.

  • temperature: utilice un valor bajo para reducir la asignación al azar de la respuesta. La asignación al azar se puede maximizar aún más aumentando el valor del parámetro p.

    Predeterminado/a Mínimo Máximo

    0.3

    0

    1

  • p: P superior. Utilice un valor bajo para ignorar las opciones menos probables.

    Predeterminado/a Mínimo Máximo

    0.75

    0.01

    0.99

  • k: K superior. Especifique el número de opciones de token que el modelo utiliza para generar el siguiente token.

    Predeterminado/a Mínimo Máximo

    0

    0

    500

  • prompt_truncation: el valor predeterminado es OFF. Determina cómo se construye la petición. Si prompt_truncation se establece en AUTO_PRESERVE_ORDER, se eliminarán algunos elementos de chat_history y documents para crear una petición que se ajuste al límite de longitud del contexto del modelo. Durante este proceso, se conservará el orden de los documentos y el historial de chat. Si prompt_truncation se establece en OFF, no se eliminará ningún elemento.

  • frequency_penalty: se usa para reducir la repetitividad de los tokens generados. Cuanto mayor sea el valor, mayor será la penalización que se aplicará a los tokens presentados anteriormente, proporcionalmente al número de veces que ya hayan aparecido en la petición o en la generación anterior.

    Predeterminado/a Mínimo Máximo

    0

    0

    1

  • presence_penalty: se usa para reducir la repetitividad de los tokens generados. Es similar a frequency_penalty, excepto que esta penalización se aplica por igual a todos los tokens que ya han aparecido, independientemente de su frecuencia exacta.

    Predeterminado/a Mínimo Máximo

    0

    0

    1

  • seed: si se especifica, el backend hará todo lo posible para sacar muestras de los tokens de forma determinista, para que las solicitudes repetidas con la misma semilla y los mismos parámetros devuelvan el mismo resultado. Sin embargo, no se puede garantizar que sea totalmente determinista.

  • return_prompt: especifique true para que se devuelva la petición completa que se ha enviado al modelo. El valor predeterminado es false. En la respuesta, observe el valor del campo prompt.

  • tools: lista de las herramientas (funciones) disponibles que el modelo puede sugerir que se invoquen antes de generar una respuesta de texto. Cuando se pasa tools (sin tool_results), el campo text de la respuesta será "" y el campo tool_calls de la respuesta se rellenará con una lista de las llamadas a las herramientas que se deben realizar. Si no es necesario realizar ninguna llamada, la matriz tool_calls estará vacía.

    Para obtener más información, consulte Uso de herramientas en el Cohere .

    sugerencia

    Le recomendamos que utilice el Converse APIpara integrar el uso de la herramienta en su aplicación. Para obtener más información, consulte Uso de una herramienta para completar una respuesta modelo de Amazon Bedrock.

    El siguiente es un JSON ejemplo del 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 obtener más información, consulte Uso de herramientas en un solo paso (llamada a funciones) en el Cohere .

  • tools_results: lista de los resultados de la invocación de las herramientas recomendados por el modelo en el turno de chat anterior. Los resultados se utilizan para producir una respuesta de texto. Además, se hace referencia a ellos en las citas. Cuando se usa tool_results, también se debe pasar tools. Cada tool_result contiene información sobre cómo se ha invocado, así como una lista de resultados en forma de diccionarios. La lógica de citas única y detallada de Cohere requiere que el resultado tenga forma de lista. En caso de que el resultado sea de solo un elemento, por ejemplo {"status": 200}, deberá incluirlo igualmente en una lista.

    Para obtener más información, consulte Uso de herramientas en la Cohere .

    A continuación se muestra JSON un ejemplo del tools_results campo.

    [ { "call": { "name": "top_song", "parameters": { "sign": "WZPZ" } }, "outputs": [ { "song": "Elemental Hotel" } ] } ]
  • stop_sequences: lista de secuencias de parada. Tras una secuencia de parada, el modelo deja de generar más tokens.

  • raw_prompting: especifique true si desea enviar el message del usuario al modelo sin preprocesamiento; de lo contrario, será falso.

Response

La respuesta tiene los siguientes campos posibles:

{ "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 único para completar el chat.

  • text: respuesta del modelo a la entrada de un mensaje de chat.

  • generation_id: identificador único para completar el chat, que se utiliza con el punto de conexión Feedback en la plataforma de Cohere.

  • citations: conjunto de citas en línea y metadatos asociados a la respuesta generada. Contiene los siguientes campos:

    • start: índice en el que comienza la cita, empezando por 0.

    • final: índice tras el que termina la cita, empezando por 0.

    • text: texto al que pertenece la cita.

    • document_ids: matriz de documentos IDs que corresponde a los documentos que se citan para el texto.

  • prompt: petición completa enviada al modelo. Especifique el campo return_prompt para devolverlo.

  • finish_reason: motivo por el que el modelo ha dejado de generar resultados. Puede ser una de los siguientes:

    • complete: la finalización ha alcanzado el token del final de la generación. Asegúrese de que este sea el motivo de finalización para obtener el mejor rendimiento.

    • error_toxic: no se ha podido completar la generación debido a nuestros filtros de contenido.

    • error_limit: no se ha podido completar la generación porque se ha alcanzado el límite de contexto del modelo.

    • error: no se ha podido completar la generación debido a un error.

    • user_cancel: no se ha podido completar la generación porque el usuario la ha detenido.

    • max_tokens: no se ha podido completar la generación porque el usuario ha especificado un límite max_tokens en la solicitud y se ha alcanzado dicho límite. Es posible que no se obtenga el mejor rendimiento.

  • tool_calls: lista de las herramientas adecuadas para las llamadas. Solo se devuelve si se especifica el campo de entrada tools.

    Para obtener más información, consulte Uso de herramientas en el Cohere .

    sugerencia

    Le recomendamos que utilice el Converse APIpara integrar el uso de la herramienta en su aplicación. Para obtener más información, consulte Uso de una herramienta para completar una respuesta modelo de Amazon Bedrock.

    El siguiente es un JSON ejemplo del tool_calls campo.

    [ { "name": "top_song", "parameters": { "sign": "WZPZ" } } ]
  • metadatos: datos API de uso (solo existen para la transmisión).

    • api_version— La API versión. La versión está en el campo version.

    • billed_units: unidades facturadas. Los valores posibles son los siguientes:

      • input_tokens: número de tokens de entrada que se ha facturado.

      • output_tokens: número de tokens de salida que se ha facturado.

Ejemplo de código

En este ejemplo se muestra cómo llamar al 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()