CohereCommand Re Command R+ modelli - Amazon Bedrock

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à.

CohereCommand Re Command R+ modelli

Si effettuano richieste di inferenza Cohere Command R e Cohere Command R+ modelli con InvokeModelor InvokeModelWithResponseStream (streaming). È necessario l'ID modello per il modello che desideri utilizzare. Per ottenere l'ID del modello, consultaID dei modelli Amazon Bedrock.

Suggerimento

Per le applicazioni conversazionali, ti consigliamo di utilizzare l'API Converse. L'API Converse fornisce un set unificato di parametri che funzionano su tutti i modelli che supportano i messaggi. Per ulteriori informazioni, consulta Usa l'API Converse.

Richiesta e risposta

Request

I Cohere Command 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 token USER 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 nella documentazione. Cohere

    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 i documents campi tools 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. Con prompt_truncation set toAUTO_PRESERVE_ORDER, alcuni elementi da chat_history e documents 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. Con prompt_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 afrequency_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), il text campo nella risposta sarà "" e il tool_calls campo nella risposta verrà compilato con un elenco di chiamate allo strumento che devono essere effettuate. Se non è necessario effettuare chiamate, l'tool_callsarray sarà vuoto.

    Per ulteriori informazioni, vedete Tool Use nella Cohere documentazione.

    Suggerimento

    Ti consigliamo di utilizzare l'API Converse per integrare l'uso degli strumenti nella tua applicazione. Per ulteriori informazioni, consulta Utilizzo dello strumento (chiamata di funzioni).

    Di seguito è riportato un esempio di JSON per il campo. tools

    [ { "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, vedete Single-Step Tool Use (Function Calling) nella Cohere documentazione.

  • tools_results — Un elenco di risultati derivanti dall'invocazione degli 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 utilizzatool_results, tools deve anche essere passato. Ciascuno tool_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, consulta Tool Use 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'utente message al modello senza alcuna preelaborazione, altrimenti false.

Response

La risposta ha i seguenti campi possibili:

{ "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 — Identificatore univoco per il completamento della chat

  • text — La risposta del modello all'immissione dei messaggi di chat.

  • generation_id — Identificatore univoco per il completamento della chat, utilizzato con Feedback endpoint sulla piattaforma di Cohere.

  • citazioni: una serie di citazioni in linea e metadati associati per la risposta generata. Contiene i seguenti campi:

    • start — L'indice da cui inizia la citazione, a partire da 0.

    • fine — L'indice dopo il quale termina la citazione, a partire da 0.

    • text — Il testo a cui si riferisce la citazione.

    • document_ids — Un array di ID di documento che corrispondono ai documenti citati per il testo.

  • prompt — Il prompt completo inviato al modello. Specificare il return_prompt campo per restituirlo.

  • finish_reason — Il motivo per cui il modello ha smesso di generare output. Può essere uno dei seguenti:

    • complete — Il completamento ha raggiunto il token di fine generazione, assicurati che questo sia il motivo finale per ottenere le migliori prestazioni.

    • error_toxic — La generazione non può essere completata a causa dei nostri filtri di contenuto.

    • error_limit — La generazione non può essere completata perché è stato raggiunto il limite di contesto del modello.

    • error — La generazione non può essere completata a causa di un errore.

    • user_cancel — La generazione non può essere completata perché è stata interrotta dall'utente.

    • max_tokens — La generazione non può essere completata perché l'utente ha specificato un max_tokens limite nella richiesta e questo limite è stato raggiunto. Potrebbe non garantire le migliori prestazioni.

  • tool_calls — Un elenco di strumenti appropriati per le chiamate. Restituito solo se si specifica il campo tools di input.

    Per ulteriori informazioni, vedete Tool Use nella Cohere documentazione.

    Suggerimento

    Ti consigliamo di utilizzare l'API Converse per integrare l'uso degli strumenti nella tua applicazione. Per ulteriori informazioni, consulta Utilizzo dello strumento (chiamata di funzioni).

    Di seguito è riportato un esempio di JSON per il campo. tool_calls

    [ { "name": "top_song", "parameters": { "sign": "WZPZ" } } ]
  • meta — Dati sull'utilizzo delle API (esistono solo per lo streaming).

    • api_version— La versione dell'API. La versione è sul version campo.

    • billed_units— Le unità fatturate. I valori possibili sono:

      • input_tokens— Il numero di token di input che sono stati fatturati.

      • output_tokens— Il numero di token di output che sono stati fatturati.

esempio di codice

Questo esempio mostra come chiamare il CohereCommand 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()