

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Cohere Perintah R and Perintah R \+ model
<a name="model-parameters-cohere-command-r-plus"></a>

Anda membuat permintaan inferensi Cohere Command R dan Cohere Command R\+ model dengan [InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html)atau [InvokeModelWithResponseStream](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModelWithResponseStream.html)(streaming). Anda memerlukan ID model untuk model yang ingin Anda gunakan. Untuk mendapatkan ID model, lihat[Model pondasi yang didukung di Amazon Bedrock](models-supported.md). 

**Tip**  
Untuk aplikasi percakapan, kami sarankan Anda menggunakan Converse API. ConverseAPI menyediakan serangkaian parameter terpadu yang bekerja di semua model yang mendukung pesan. Untuk informasi selengkapnya, lihat [Inferensi menggunakan Converse API](conversation-inference.md).

**Topics**
+ [Permintaan dan Tanggapan](#model-parameters-cohere-command-request-response)
+ [Contoh kode](#api-inference-examples-cohere-command-r)

## Permintaan dan Tanggapan
<a name="model-parameters-cohere-command-request-response"></a>

------
#### [ Request ]

CohereCommandModel memiliki parameter inferensi berikut. 

```
{
    "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

}
```

Berikut ini adalah parameter yang diperlukan.
+ **message** — (Wajib) Input teks untuk model untuk merespons.

Berikut ini adalah parameter opsional.
+ **chat\_history** — Daftar pesan sebelumnya antara pengguna dan model, dimaksudkan untuk memberikan konteks percakapan model untuk menanggapi pesan pengguna. 

  Berikut ini adalah bidang wajib.
  + `role`— Peran untuk pesan. Nilai yang valid adalah `USER` atau`CHATBOT`. token.
  + `message`— Isi teks pesan.

  Berikut ini adalah contoh JSON untuk bidang `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"}
  ]
  ```
+ **dokumen** — Daftar teks yang dapat dikutip model untuk menghasilkan balasan yang lebih akurat. Setiap dokumen adalah kamus string string. Generasi yang dihasilkan mencakup kutipan yang merujuk beberapa dokumen ini. Kami menyarankan Anda menjaga jumlah kata total string dalam kamus di bawah 300 kata. `_excludes`Bidang (array string) dapat diberikan secara opsional untuk menghilangkan beberapa pasangan nilai kunci agar tidak ditampilkan ke model. Untuk informasi selengkapnya, lihat [panduan Mode Dokumen](https://docs.cohere.com/docs/retrieval-augmented-generation-rag#document-mode) dalam Cohere dokumentasi. 

  Berikut ini adalah contoh JSON untuk `documents` bidang tersebut.

  ```
  "documents": [
  {"title": "Tall penguins", "snippet": "Emperor penguins are the tallest."},
  {"title": "Penguin habitats", "snippet": "Emperor penguins only live in Antarctica."}
  ]
  ```
+ **search\_queries\_only** — Default ke. `false` Kapan`true`, respons hanya akan berisi daftar kueri penelusuran yang dihasilkan, tetapi tidak ada pencarian yang akan dilakukan, dan tidak ada balasan dari model ke pengguna yang `message` akan dihasilkan. 
+ **pembukaan — Mengganti pembukaan** default untuk pembuatan kueri penelusuran. Tidak berpengaruh pada generasi penggunaan alat. 
+ **max\_tokens** — Jumlah maksimum token yang harus dihasilkan model sebagai bagian dari respons. Perhatikan bahwa menetapkan nilai rendah dapat mengakibatkan generasi yang tidak lengkap. Pengaturan `max_tokens` dapat mengakibatkan generasi yang tidak lengkap atau tidak ada saat digunakan dengan `documents` bidang `tools` atau.
+ **suhu** — Gunakan nilai yang lebih rendah untuk mengurangi keacakan dalam respons. Keacakan dapat lebih dimaksimalkan dengan meningkatkan nilai parameter. `p`     
[See the AWS documentation website for more details](http://docs.aws.amazon.com/id_id/bedrock/latest/userguide/model-parameters-cohere-command-r-plus.html)
+ **p** — Top P. Gunakan nilai yang lebih rendah untuk mengabaikan opsi yang kurang mungkin.     
[See the AWS documentation website for more details](http://docs.aws.amazon.com/id_id/bedrock/latest/userguide/model-parameters-cohere-command-r-plus.html)
+ **k** — Top K. Tentukan jumlah pilihan token yang digunakan model untuk menghasilkan token berikutnya.     
[See the AWS documentation website for more details](http://docs.aws.amazon.com/id_id/bedrock/latest/userguide/model-parameters-cohere-command-r-plus.html)
+  **prompt\_truncation** - Default ke. `OFF` Mendikte bagaimana prompt dibangun. Dengan `prompt_truncation` set to`AUTO_PRESERVE_ORDER`, beberapa elemen dari `chat_history` dan `documents` akan dijatuhkan untuk membangun prompt yang sesuai dengan batas panjang konteks model. Selama proses ini urutan dokumen dan riwayat obrolan akan dipertahankan. Dengan `prompt_truncation` `diatur ke`OFF`, tidak ada elemen yang akan dijatuhkan. 
+  **frequency\_penalty** — Digunakan untuk mengurangi pengulangan token yang dihasilkan. Semakin tinggi nilainya, semakin kuat penalti diterapkan pada token yang ada sebelumnya, sebanding dengan berapa kali mereka telah muncul di prompt atau generasi sebelumnya.     
[See the AWS documentation website for more details](http://docs.aws.amazon.com/id_id/bedrock/latest/userguide/model-parameters-cohere-command-r-plus.html)
+  **presence\_penalty** — Digunakan untuk mengurangi pengulangan token yang dihasilkan. Mirip dengan`frequency_penalty`, kecuali bahwa penalti ini diterapkan sama untuk semua token yang telah muncul, terlepas dari frekuensi pastinya.     
[See the AWS documentation website for more details](http://docs.aws.amazon.com/id_id/bedrock/latest/userguide/model-parameters-cohere-command-r-plus.html)
+ **seed** — Jika ditentukan, backend akan melakukan upaya terbaik untuk mengambil sampel token secara deterministik, sehingga permintaan berulang dengan seed dan parameter yang sama harus mengembalikan hasil yang sama. Namun, determinisme tidak dapat sepenuhnya dijamin.
+ **return\_prompt** — Tentukan `true` untuk mengembalikan prompt penuh yang dikirim ke model. Nilai default-nya adalah `false`. Dalam tanggapan, prompt di `prompt` lapangan.
+ **Tools** — Daftar alat (fungsi) yang tersedia yang mungkin disarankan oleh model sebelum menghasilkan respons teks. Ketika `tools` diteruskan (tanpa`tool_results`), `text` bidang dalam respons akan `""` dan `tool_calls` bidang dalam respons akan diisi dengan daftar panggilan alat yang perlu dilakukan. Jika tidak ada panggilan yang perlu dilakukan, `tool_calls` array akan kosong. 

  Untuk informasi selengkapnya, lihat [Penggunaan Alat](https://docs.cohere.com/docs/tool-use) dalam Cohere dokumentasi.
**Tip**  
Kami menyarankan Anda menggunakan Converse API untuk mengintegrasikan penggunaan alat ke dalam aplikasi Anda. Untuk informasi selengkapnya, lihat [Gunakan alat untuk menyelesaikan respons model Amazon Bedrock](tool-use.md). 

  Berikut ini adalah contoh JSON untuk `tools` bidang tersebut.

  ```
  [
      {
          "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
              }
          }
      }
  ]
  ```

  Untuk informasi selengkapnya, lihat [Penggunaan Single-Step Alat (Panggilan Fungsi)](https://docs.cohere.com/docs/tool-use) dalam Cohere dokumentasi.
+ **tools\_results** — Daftar hasil dari alat pemanggilan yang direkomendasikan oleh model di giliran obrolan sebelumnya. Hasil digunakan untuk menghasilkan respons teks dan direferensikan dalam kutipan. Saat menggunakan`tool_results`, `tools` harus dilewatkan juga. Masing-masing `tool_result` berisi informasi tentang bagaimana itu dipanggil, serta daftar output dalam bentuk kamus. Logika kutipan halus unik Cohere membutuhkan output menjadi daftar. Jika output hanya satu item, seperti`{"status": 200}`, Anda masih harus membungkusnya di dalam daftar. 

  Untuk informasi selengkapnya, lihat [Penggunaan Alat](https://docs.cohere.com/docs/tool-use) dalam Cohere dokumentasi.

  Berikut ini adalah contoh JSON untuk `tools_results` bidang tersebut.

  ```
  [
      {
          "call": {
              "name": "top_song",
              "parameters": {
                  "sign": "WZPZ"
              }
          },
          "outputs": [
              {
                  "song": "Elemental Hotel"
              }
          ]
      }
  ]
  ```
+  **stop\_sequences** — Daftar urutan berhenti. Setelah urutan berhenti terdeteksi, model berhenti menghasilkan token lebih lanjut.
+  **raw\_prompting** — Tentukan`true`, untuk mengirim pengguna ke model tanpa preprocessing, jika tidak false. `message`

------
#### [ Response ]

Tanggapan memiliki bidang yang mungkin berikut:

```
{
    "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** - Pengidentifikasi unik untuk penyelesaian obrolan
+ **teks** — Respons model terhadap input pesan obrolan. 
+ **generation\_id** — Pengidentifikasi unik untuk penyelesaian obrolan, digunakan dengan titik akhir Umpan Balik di platform Cohere. 
+ **kutipan** — Sebuah array kutipan inline dan metadata terkait untuk balasan yang dihasilkan. Berisi bidang berikut:
  + **start** — Indeks tempat kutipan dimulai, mulai dari 0.
  + **akhir** — Indeks bahwa kutipan berakhir setelahnya, mulai dari 0.
  + **teks** — Teks yang berkaitan dengan kutipan.
  + **document\_ids** — Sebuah array ID dokumen yang sesuai dengan dokumen yang dikutip untuk teks.
+ **prompt** — Prompt lengkap yang dikirim ke model. Tentukan `return_prompt` bidang untuk mengembalikan bidang ini. 
+ **finish\_reason — Alasan** mengapa model berhenti menghasilkan output. Bisa salah satu dari berikut ini: 
  + **selesai** — Penyelesaian mencapai akhir token generasi, pastikan ini adalah alasan akhir untuk kinerja terbaik.
  + **error\_toxic** - Generasi tidak dapat diselesaikan karena filter konten kami.
  + **error\_limit** — Generasi tidak dapat diselesaikan karena batas konteks model tercapai.
  + **error** — Generasi tidak dapat diselesaikan karena kesalahan.
  + **user\_cancel** — Generasi tidak dapat diselesaikan karena dihentikan oleh pengguna.
  + **max\_tokens** — Generasi tidak dapat diselesaikan karena pengguna menetapkan `max_tokens` batas dalam permintaan dan batas ini tercapai. Mungkin tidak menghasilkan kinerja terbaik.
+ **tool\_calls** — Daftar alat yang sesuai untuk panggilan. Hanya dikembalikan jika Anda menentukan bidang `tools` input.

  Untuk informasi selengkapnya, lihat [Penggunaan Alat](https://docs.cohere.com/docs/tool-use) dalam Cohere dokumentasi.
**Tip**  
Kami menyarankan Anda menggunakan Converse API untuk mengintegrasikan penggunaan alat ke dalam aplikasi Anda. Untuk informasi selengkapnya, lihat [Gunakan alat untuk menyelesaikan respons model Amazon Bedrock](tool-use.md). 

  Berikut ini adalah contoh JSON untuk `tool_calls` bidang tersebut.

  ```
  [
          {
              "name": "top_song",
              "parameters": {
                  "sign": "WZPZ"
              }
          }
      ]
  ```
+ **meta** — Data penggunaan API (hanya ada untuk streaming). 
  + `api_version`— Versi API. Versi ada di `version` lapangan.
  + `billed_units`— Unit yang ditagih. Kemungkinan nilainya adalah:
    + `input_tokens`— Jumlah token input yang ditagih.
    + `output_tokens`— Jumlah token keluaran yang ditagih.

------

## Contoh kode
<a name="api-inference-examples-cohere-command-r"></a>

Contoh ini menunjukkan cara memanggil *CohereCommand R*model.

```
# 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()
```