Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
CohereCommand Ret Command R+ modèles
Vous envoyez des demandes d'inférence Cohere Command R et des Cohere Command R+ modèles avec InvokeModelou InvokeModelWithResponseStream (streaming). Vous avez besoin de l’ID du modèle que vous voulez utiliser. Pour obtenir l'ID du modèle, voirModèle Amazon Bedrock IDs.
Astuce
Pour les applications conversationnelles, nous vous recommandons d'utiliser l'API Converse. L'API Converse fournit un ensemble unifié de paramètres qui fonctionnent sur tous les modèles prenant en charge les messages. Pour plus d’informations, consultez Utilisez la Converse API.
Rubriques
Demande et réponse
- Request
-
Les Cohere Command modèles possèdent les paramètres d'inférence suivants.
{ "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 }Les paramètres suivants sont obligatoires.
-
message — (Obligatoire) Saisie de texte à laquelle le modèle doit répondre.
Les paramètres suivants sont facultatifs.
-
chat_history — Liste des messages précédents échangés entre l'utilisateur et le modèle, destinée à donner au modèle le contexte conversationnel dans lequel il doit répondre au message de l'utilisateur.
Les champs suivants sont obligatoires.
-
role
— Le rôle du message. Les valeurs valides sontUSER
ouCHATBOT
. tokens. -
message
— Contenu textuel du message.
Voici un exemple de JSON pour le
chat_history
champ"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 — Liste de textes que le modèle peut citer pour générer une réponse plus précise. Chaque document est un dictionnaire de chaînes de caractères. La génération qui en résulte inclut des citations qui font référence à certains de ces documents. Nous vous recommandons de limiter le nombre total de mots des chaînes du dictionnaire à moins de 300 mots. Un
_excludes
champ (tableau de chaînes) peut être éventuellement fourni pour empêcher l'affichage de certaines paires clé-valeur dans le modèle. Pour plus d'informations, consultez le guide du mode documentdans la Cohere documentation. Voici un exemple de JSON pour le
documents
champ."documents": [ {"title": "Tall penguins", "snippet": "Emperor penguins are the tallest."}, {"title": "Penguin habitats", "snippet": "Emperor penguins only live in Antarctica."} ]
-
search_queries_only — La valeur par défaut est.
false
Danstrue
ce cas, la réponse ne contiendra qu'une liste de requêtes de recherche générées, mais aucune recherche n'aura lieu et aucune réponse du modèle à celle de l'utilisateur nemessage
sera générée. -
préambule — Remplace le préambule par défaut pour la génération de requêtes de recherche. N'a aucun effet sur les générations d'utilisation des outils.
-
max_tokens — Le nombre maximum de jetons que le modèle doit générer dans le cadre de la réponse. Notez que la définition d'une valeur faible peut entraîner des générations incomplètes. Le paramètre
max_tokens
peut entraîner des générations incomplètes ou inexistantes lorsqu'il est utilisé avec lesdocuments
champstools
or. -
température — Utilisez une valeur inférieure pour réduire le caractère aléatoire de la réponse. Le caractère aléatoire peut être encore maximisé en augmentant la valeur du
p
paramètre.Par défaut Minimum Maximum 0.3
0
1
-
p — Top P. Utilisez une valeur inférieure pour ignorer les options les moins probables.
Par défaut Minimum Maximum 0.75
0,01
0.99
-
k — Top K. Spécifiez le nombre de choix de jetons que le modèle utilise pour générer le jeton suivant.
Par défaut Minimum Maximum 0
0
500
-
prompt_truncation — La valeur par défaut est.
OFF
Détermine la manière dont l'invite est construite. Lorsque cette option estprompt_truncation
définie surAUTO_PRESERVE_ORDER
, certains éléments dechat_history
etdocuments
seront supprimés pour créer une invite correspondant à la limite de longueur du contexte du modèle. Au cours de ce processus, l'ordre des documents et l'historique des discussions seront préservés. Siprompt_truncation
`est défini surOFF
, aucun élément ne sera supprimé. -
frequency_penalty — Utilisé pour réduire la répétitivité des jetons générés. Plus la valeur est élevée, plus une pénalité est appliquée aux jetons déjà présents, proportionnelle au nombre de fois où ils sont déjà apparus dans l'invite ou dans la génération précédente.
Par défaut Minimum Maximum 0
0
1
-
presence_penalty — Utilisé pour réduire la répétitivité des jetons générés. Similaire à
frequency_penalty
, sauf que cette pénalité est appliquée de la même manière à tous les jetons déjà apparus, quelle que soit leur fréquence exacte.Par défaut Minimum Maximum 0
0
1
-
graine — Si cela est spécifié, le backend fera de son mieux pour échantillonner les jetons de manière déterministe, de telle sorte que les demandes répétées avec le même code de départ et les mêmes paramètres devraient renvoyer le même résultat. Cependant, le déterminisme ne peut être totalement garanti.
-
return_prompt — Spécifiez
true
si vous souhaitez renvoyer l'invite complète envoyée au modèle. La valeur par défaut estfalse
. Dans la réponse, l'invite dans leprompt
champ. -
outils — Liste des outils (fonctions) disponibles que le modèle peut suggérer d'invoquer avant de produire une réponse textuelle.
tools
Une fois passé (sanstool_results
), letext
tool_calls
champ""
de la réponse sera rempli avec une liste des appels d'outils à effectuer. Si aucun appel n'est nécessaire, letool_calls
tableau sera vide.Pour plus d'informations, consultez la section Utilisation des outils
dans la Cohere documentation. Astuce
Nous vous recommandons d'utiliser l'API Converse pour intégrer l'utilisation des outils dans votre application. Pour plus d’informations, consultez Appelez un outil en utilisant Amazon Bedrock Tool (appel de fonction).
Voici un exemple de JSON pour le
tools
champ.[ { "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 } } } ]
Pour plus d'informations, consultez la section Utilisation d'un outil en une seule étape (appel de fonctions)
dans la Cohere documentation. -
tools_results — Liste des résultats obtenus en invoquant les outils recommandés par le modèle lors du tour de discussion précédent. Les résultats sont utilisés pour produire une réponse textuelle et sont référencés dans les citations. Lors de l'utilisation
tool_results
,tools
il doit également être transmis. Chacuntool_result
contient des informations sur la manière dont il a été invoqué, ainsi qu'une liste de sorties sous forme de dictionnaires. La logique de citation fine unique de Cohere exige que la sortie soit une liste. Si le résultat n'est qu'un seul élément, par exemple{"status": 200}
, vous devez toujours l'envelopper dans une liste.Pour plus d'informations, consultez la section Utilisation des outils
dans la Cohere documentation. Voici un exemple de JSON pour le
tools_results
champ.[ { "call": { "name": "top_song", "parameters": { "sign": "WZPZ" } }, "outputs": [ { "song": "Elemental Hotel" } ] } ]
-
stop_sequence — Liste de séquences d'arrêt. Une fois qu'une séquence d'arrêt est détectée, le modèle arrête de générer d'autres jetons.
-
raw_prompting — Spécifiez
true
que l'utilisateur doit être envoyé au modèle sans aucun prétraitement, sinon c'estmessage
faux.
-
- Response
-
La réponse peut inclure les champs suivants :
{ "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 — Identifiant unique pour terminer le chat
-
text : réponse du modèle à la saisie d'un message de chat.
-
generation_id — Identifiant unique pour terminer le chat, utilisé avec le point de terminaison Feedback sur la plateforme Cohere.
-
citations — Un tableau de citations en ligne et de métadonnées associées pour la réponse générée. Contient les champs suivants :
-
start — L'indice auquel la citation commence, à partir de 0.
-
end — L'index après lequel la citation se termine, à partir de 0.
-
text — Le texte auquel se rapporte la citation.
-
document_ids — Tableau d'identifiants de documents correspondant aux documents cités pour le texte.
-
-
prompt — L'invite complète envoyée au modèle. Spécifiez le
return_prompt
champ pour renvoyer ce champ. -
finish_reason — La raison pour laquelle le modèle a cessé de générer une sortie. Il peut s'agir de l'une des valeurs suivantes :
-
complet — L'achèvement a atteint la fin de la génération du jeton, assurez-vous que c'est la raison finale pour obtenir les meilleures performances.
-
error_toxic — La génération n'a pas pu être terminée en raison de nos filtres de contenu.
-
error_limit — La génération n'a pas pu être terminée car la limite de contexte du modèle a été atteinte.
-
erreur — La génération n'a pas pu être terminée en raison d'une erreur.
-
user_cancel — La génération n'a pas pu être terminée car elle a été arrêtée par l'utilisateur.
-
max_tokens — La génération n'a pas pu être terminée car l'utilisateur a spécifié une
max_tokens
limite dans la demande et cette limite a été atteinte. Il est possible que les performances ne soient pas optimales.
-
-
tool_calls — Liste des outils appropriés pour les appels. Renvoyé uniquement si vous spécifiez le champ de
tools
saisie.Pour plus d'informations, consultez la section Utilisation des outils
dans la Cohere documentation. Astuce
Nous vous recommandons d'utiliser l'API Converse pour intégrer l'utilisation des outils dans votre application. Pour plus d’informations, consultez Appelez un outil en utilisant Amazon Bedrock Tool (appel de fonction).
Voici un exemple de JSON pour le
tool_calls
champ.[ { "name": "top_song", "parameters": { "sign": "WZPZ" } } ]
-
meta — données d'utilisation de l'API (n'existent que pour le streaming).
-
api_version
— La version de l'API. La version se trouveversion
sur le terrain. -
billed_units
— Les unités facturées. Les valeurs possibles sont :-
input_tokens
— Le nombre de jetons d'entrée facturés. -
output_tokens
— Le nombre de jetons de sortie facturés.
-
-
-
Exemple de code
Cet exemple montre comment appeler le CohereCommand Rmodèle.
# 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()