Cohere Command R y Command R+ modelos - 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

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 identificador del modelo, consulteModelo Amazon Bedrock IDs.

sugerencia

Para aplicaciones conversacionales, le recomendamos que utilice ConverseAPI. Converse API proporciona un conjunto unificado de parámetros que funcionan en todos los modelos que admiten mensajes. Para obtener más información, consulte Mantén una conversación con las operaciones de Converse 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.

  • mensaje: entrada de texto (obligatoria) a la que debe responder el modelo.

Los siguientes son parámetros opcionales.

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

    Los siguientes campos son obligatorios.

    • role— La función del mensaje. Los valores válidos son USER oCHATBOT... tokens.

    • message— Contenido textual del mensaje.

    El siguiente es un JSON ejemplo del 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"} ]
  • documentos: lista de textos que el modelo puede citar para generar una respuesta más precisa. Cada documento es un diccionario de cadenas de caracteres. 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 _excludes campo (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 sobre el modo de documento en 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 Cuandotrue, 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 a la del usuario. message

  • preámbulo: 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: la cantidad máxima de tokens que el modelo debe generar como parte de la respuesta. Tenga en cuenta que establecer un valor bajo puede provocar generaciones incompletas. Si se utiliza con los campos o, si se utiliza con los documents campos o, es max_tokens posible que no se produzcan generaciones completas tools o que no se produzcan.

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

    Predeterminado Mínimo Máximo

    0.3

    0

    1

  • p — Top P. Use un valor más bajo para ignorar las opciones menos probables.

    Predeterminado Mínimo Máximo

    0.75

    0.01

    0.99

  • k — Top K. Especifique el número de opciones de token que el modelo utilizará para generar el siguiente token.

    Predeterminado Mínimo Máximo

    0

    0

    500

  • prompt_truncation: el valor predeterminado es. OFF Determina cómo se construye el mensaje. Si se prompt_truncation establece enAUTO_PRESERVE_ORDER, se eliminarán algunos elementos de chat_history y se documents eliminarán para crear un mensaje 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. Con prompt_truncation `establecido enOFF, no se eliminará ningún elemento.

  • frequency_penalty: se usa para reducir la repetitividad de las fichas generadas. Cuanto más alto sea el valor, más fuerte será la penalización que se aplicará a las fichas presentadas anteriormente, proporcional al número de veces que ya hayan aparecido en el mensaje o en la generación anterior.

    Predeterminado Mínimo Máximo

    0

    0

    1

  • presence_penalty: se usa para reducir la repetitividad de las fichas generadas. Similar afrequency_penalty, excepto que esta penalización se aplica por igual a todas las fichas que ya han aparecido, independientemente de su frecuencia exacta.

    Predeterminado Mínimo Máximo

    0

    0

    1

  • semilla: si se especifica, el backend hará todo lo posible por muestrear los tokens de forma determinista, de modo que las solicitudes repetidas con la misma semilla y los mismos parámetros arrojen el mismo resultado. Sin embargo, no se puede garantizar totalmente el determinismo.

  • return_prompt: especifique true que se devuelva el mensaje completo que se envió al modelo. El valor predeterminado es false. En la respuesta, el mensaje del campo. prompt

  • herramientas: una lista de las herramientas (funciones) disponibles que el modelo puede sugerir invocar antes de generar una respuesta de texto. Cuando tools se pasa (sin ellatool_results), el text campo de la respuesta será "" y el tool_calls campo 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 tool_calls matriz estará vacía.

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

    sugerencia

    Le recomendamos que utilice Converse API para integrar el uso de la herramienta en su aplicación. Para obtener más información, consulte Utilice 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: una lista de los resultados de la invocación de las herramientas recomendadas por el modelo en el turno de chat anterior. Los resultados se utilizan para producir una respuesta de texto y se hace referencia a ellos en las citas. Cuando se usatool_results, también tools debe aprobarse. Cada uno tool_result contiene información sobre cómo se invocó, así como una lista de resultados en forma de diccionarios. La lógica de citas única y detallada de Cohere requiere que el resultado sea una lista. En el caso de que el resultado sea solo un elemento, por ejemplo{"status": 200}, deberías incluirlo dentro de una lista.

    Para obtener más información, consulte Uso de herramientas en el 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_sequence: una lista de secuencias de paradas. Una vez detectada una secuencia de parada, el modelo deja de generar más fichas.

  • raw_prompting: especifique true si desea enviar el del usuario al modelo sin preprocesamiento; de message lo contrario, es 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: la 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 final Feedback en la plataforma de Cohere.

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

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

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

    • texto: el texto al que pertenece la cita.

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

  • indicador: el mensaje completo que se envió al modelo. Especifique el return_prompt campo para devolverlo.

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

    • completo: al finalizar el token se alcanzó el 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 pudo completar la generación debido a nuestros filtros de contenido.

    • error_limit — No se pudo completar la generación porque se alcanzó el límite de contexto del modelo.

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

    • user_cancel — No se pudo completar la generación porque el usuario la detuvo.

    • max_tokens: no se pudo completar la generación porque el usuario especificó un max_tokens límite en la solicitud y este límite se alcanzó. Es posible que no dé como resultado el mejor rendimiento.

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

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

    sugerencia

    Le recomendamos que utilice Converse API para integrar el uso de la herramienta en su aplicación. Para obtener más información, consulte Utilice 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 version campo.

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

      • input_tokens— El número de fichas de entrada que se facturaron.

      • output_tokens— El número de fichas de salida que se facturaron.

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