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.
CohereCommand Ry Command R+ modelos
Realizas solicitudes de inferencia Cohere Command R y Cohere Command R+ modelas con InvokeModelo InvokeModelWithResponseStream (streaming). Necesitará el ID de modelo del modelo que desee utilizar. Para obtener el ID del modelo, consulteModelo Amazon Bedrock IDs.
sugerencia
Para las aplicaciones conversacionales, le recomendamos que utilice la API de Converse. La API de Converse proporciona un conjunto unificado de parámetros que funcionan en todos los modelos que admiten mensajes. Para obtener más información, consulte Usa la Converse API.
Solicitud y respuesta
- Request
-
Los Cohere Command 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 sonUSER
oCHATBOT
... tokens. -
message
— Contenido textual del mensaje.
A continuación se muestra un ejemplo de JSON para el
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: una 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 documentoen la documentación. Cohere A continuación, se muestra un ejemplo de JSON para el
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 las 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, la configuraciónmax_tokens
puede provocar que no haya generaciones completastools
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 la línea de comandos. Si seprompt_truncation
establece enAUTO_PRESERVE_ORDER
, se eliminarán algunos elementos dechat_history
y sedocuments
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. Conprompt_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 a
frequency_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 esfalse
. 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
), eltext
campo de la respuesta será""
y eltool_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, latool_calls
matriz estará vacía.Para obtener más información, consulte Uso de herramientas
en la Cohere documentación. sugerencia
Le recomendamos que utilice la API de Converse para integrar el uso de las herramientas en su aplicación. Para obtener más información, consulte Llame a una herramienta con Amazon Bedrock Tool (llamada de funciones).
El siguiente es un ejemplo de JSON para el
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 la Cohere documentación. -
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 usa
tool_results
, tambiéntools
debe aprobarse. Cada unotool_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 la Cohere documentación. A continuación, se muestra un ejemplo de JSON para el
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; demessage
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 identificadores de documentos que corresponden 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 se obtenga 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 la Cohere documentación. sugerencia
Le recomendamos que utilice la API de Converse para integrar el uso de las herramientas en su aplicación. Para obtener más información, consulte Llame a una herramienta con Amazon Bedrock Tool (llamada de funciones).
El siguiente es un ejemplo de JSON para el
tool_calls
campo.[ { "name": "top_song", "parameters": { "sign": "WZPZ" } } ]
-
meta: datos de uso de la API (solo existen para la transmisión).
-
api_version
— La versión de la API. La versión está en elversion
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 CohereCommand 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()