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 sonUSER
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 documentoen 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, esmax_tokens
posible que no se produzcan 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 el mensaje. 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 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 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 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; 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 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 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 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()