Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Fai richieste di inferenza a Cohere Command R e Cohere Command R+ modelli con InvokeModelo InvokeModelWithResponseStream(streaming). È necessario l'ID modello per il modello che desideri utilizzare. Per ottenere l'ID del modello, consultaModelli di fondazione supportati in Amazon Bedrock.
Suggerimento
Per le applicazioni conversazionali, si consiglia di utilizzare Converse API. Il Converse L'API fornisce un set unificato di parametri che funzionano su tutti i modelli che supportano i messaggi. Per ulteriori informazioni, consulta Effettuare una conversazione con Converse Operazioni API.
Richiesta e risposta
Il Cohere Command i modelli hanno i seguenti parametri di inferenza.
{
"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
}
I seguenti sono parametri obbligatori.
-
message — (Obbligatorio) Inserimento di testo a cui il modello deve rispondere.
I seguenti sono parametri opzionali.
-
chat_history — Un elenco di messaggi precedenti tra l'utente e il modello, destinato a fornire al modello un contesto conversazionale per rispondere al messaggio dell'utente.
I seguenti sono campi obbligatori.
-
role
— Il ruolo del messaggio. I valori validi sono i tokenUSER
orCHATBOT
. -
message
— Contenuto testuale del messaggio.
Di seguito è riportato un esempio di JSON per il 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"} ]
-
-
documenti — Un elenco di testi che il modello può citare per generare una risposta più accurata. Ogni documento è un dizionario di stringhe. La generazione risultante include citazioni che fanno riferimento ad alcuni di questi documenti. Si consiglia di mantenere il numero totale di parole delle stringhe nel dizionario a meno di 300 parole. Un
_excludes
campo (matrice di stringhe) può essere fornito opzionalmente per omettere che alcune coppie chiave-valore vengano mostrate al modello. Per ulteriori informazioni, consultate la guida alla modalità Document nelCohere documentazione. Di seguito è riportato un esempio di JSON per il
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 — Il valore predefinito è.
false
Quandotrue
, la risposta conterrà solo un elenco di query di ricerca generate, ma non verrà effettuata alcuna ricerca e non verrà generata alcuna risposta dal modello a quella dell'utente.message
-
preamble: sostituisce il preambolo predefinito per la generazione delle query di ricerca. Non ha alcun effetto sulle generazioni di utilizzo degli strumenti.
-
max_tokens — Il numero massimo di token che il modello deve generare come parte della risposta. Tieni presente che l'impostazione di un valore basso può comportare generazioni incomplete. L'impostazione
max_tokens
può dare come risultato una generazione incompleta o assente se utilizzata con idocuments
campitools
or. -
temperatura: utilizza un valore più basso per ridurre la casualità nella risposta. La casualità può essere ulteriormente massimizzata aumentando il valore del parametro.
p
Predefinita Minimo Massimo 0.3
0
1
-
p — Top P. Usa un valore più basso per ignorare le opzioni meno probabili.
Predefinita Minimo Massimo 0.75
0.01
0,99
-
k — Top K. Specificate il numero di scelte di token utilizzate dal modello per generare il token successivo.
Predefinita Minimo Massimo 0
0
500
-
prompt_truncation — Il valore predefinito è.
OFF
Determina come viene costruito il prompt. Conprompt_truncation
set toAUTO_PRESERVE_ORDER
, alcuni elementi dachat_history
edocuments
verranno eliminati per creare un prompt che rientri nel limite di lunghezza del contesto del modello. Durante questo processo, l'ordine dei documenti e la cronologia delle chat verranno preservati. Conprompt_truncation
`impostato suOFF
, nessun elemento verrà eliminato. -
frequency_penalty — Utilizzato per ridurre la ripetitività dei token generati. Più alto è il valore, più forte è la penalità applicata ai token presenti in precedenza, proporzionale al numero di volte in cui sono già comparsi nel prompt o nella generazione precedente.
Predefinita Minimo Massimo 0
0
1
-
presence_penalty — Utilizzato per ridurre la ripetitività dei token generati. Simile a
frequency_penalty
, tranne per il fatto che questa penalità viene applicata allo stesso modo a tutti i token che sono già apparsi, indipendentemente dalle loro frequenze esatte.Predefinita Minimo Massimo 0
0
1
-
seed: se specificato, il backend farà del suo meglio per campionare i token in modo deterministico, in modo tale che le richieste ripetute con lo stesso seme e gli stessi parametri restituiscano lo stesso risultato. Tuttavia, il determinismo non può essere totalmente garantito.
-
return_prompt — Specificate
true
di restituire il prompt completo inviato al modello. Il valore predefinito èfalse
. Nella risposta, il prompt nel campo.prompt
-
strumenti — Un elenco di strumenti (funzioni) disponibili che il modello può suggerire di richiamare prima di produrre una risposta testuale. Quando
tools
viene passato (senzatool_results
), iltext
campo nella risposta sarà""
e iltool_calls
campo nella risposta verrà compilato con un elenco di chiamate allo strumento che devono essere effettuate. Se non è necessario effettuare chiamate, l'tool_calls
array sarà vuoto.Per ulteriori informazioni, vedete Uso degli strumenti
nel Cohere documentazione. Suggerimento
Ti consigliamo di utilizzare il Converse API per l'integrazione dell'uso degli strumenti nella tua applicazione. Per ulteriori informazioni, consulta Usa uno strumento per completare una risposta al modello Amazon Bedrock.
Di seguito è riportato un esempio di JSON per il
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 } } } ]
Per ulteriori informazioni, vedere Uso dello strumento in un'unica fase (chiamata di funzioni)
nel Cohere documentazione. -
tools_results — Un elenco di risultati ottenuti utilizzando gli strumenti consigliati dalla modella nel precedente turno di chat. I risultati vengono utilizzati per produrre una risposta testuale e sono citati nelle citazioni. Quando si utilizza
tool_results
,tools
deve anche essere passato. Ciascunotool_result
contiene informazioni su come è stato richiamato, oltre a un elenco di output sotto forma di dizionari. L'esclusiva logica di citazione a grana fine di Cohere richiede che l'output sia un elenco. Nel caso in cui l'output sia solo un elemento, ad esempio{"status": 200}
, dovresti comunque inserirlo in un elenco.Per ulteriori informazioni, vedete Uso dello strumento
nella Cohere documentazione. Di seguito è riportato un esempio di JSON per il
tools_results
campo.[ { "call": { "name": "top_song", "parameters": { "sign": "WZPZ" } }, "outputs": [ { "song": "Elemental Hotel" } ] } ]
-
stop_sequences — Un elenco di sequenze di interruzioni. Dopo il rilevamento di una sequenza di interruzioni, il modello smette di generare ulteriori token.
-
raw_prompting — Specificate di inviare
true
i dati dell'utentemessage
al modello senza alcuna preelaborazione, altrimenti false.
esempio di codice
Questo esempio mostra come chiamare Cohere Command Rmodello.
# 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()