Cohere Command R and Command R+ model - Amazon Bedrock

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

Cohere Command R and Command R+ model

Anda membuat permintaan inferensi untuk Cohere Command R and Cohere Command R+ model dengan InvokeModelatau InvokeModelWithResponseStream(streaming). Anda memerlukan ID model untuk model yang ingin Anda gunakan. Untuk mendapatkan ID model, lihatModel pondasi yang didukung di Amazon Bedrock.

Tip

Untuk aplikasi percakapan, kami sarankan Anda menggunakan Converse API. The Converse APImenyediakan satu set parameter terpadu yang bekerja di semua model yang mendukung pesan. Untuk informasi selengkapnya, lihat Lakukan percakapan dengan Converse Operasi API.

Permintaan dan Tanggapan

Request

Bagian Cohere Command model 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 atauCHATBOT. token.

    • message— Isi teks pesan.

    Berikut ini adalah JSON contoh untuk chat_history bidang

    "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. _excludesBidang (array string) dapat diberikan secara opsional untuk menghilangkan beberapa pasangan nilai kunci agar tidak ditampilkan ke model. Untuk informasi selengkapnya, lihat panduan Mode Dokumen di 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 Kapantrue, 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

    Default Minimum Maksimum

    0,3

    0

    1

  • p — Top P. Gunakan nilai yang lebih rendah untuk mengabaikan opsi yang kurang mungkin.

    Default Minimum Maksimum

    0,75

    0,01

    0,99

  • k — Top K. Tentukan jumlah pilihan token yang digunakan model untuk menghasilkan token berikutnya.

    Default Minimum Maksimum

    0

    0

    500

  • prompt_truncation - Default ke. OFF Mendikte bagaimana prompt dibangun. Dengan prompt_truncation set toAUTO_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 keOFF, 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.

    Default Minimum Maksimum

    0

    0

    1

  • presence_penalty — Digunakan untuk mengurangi pengulangan token yang dihasilkan. Mirip denganfrequency_penalty, kecuali bahwa penalti ini diterapkan sama untuk semua token yang telah muncul, terlepas dari frekuensi pastinya.

    Default Minimum Maksimum

    0

    0

    1

  • 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 tanggapannya, prompt di prompt lapangan.

  • Tools — Daftar alat (fungsi) yang tersedia yang mungkin disarankan oleh model sebelum menghasilkan respons teks. Ketika tools diteruskan (tanpatool_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 di Cohere dokumentasi.

    Tip

    Kami menyarankan Anda menggunakan Converse APIuntuk mengintegrasikan penggunaan alat ke dalam aplikasi Anda. Untuk informasi selengkapnya, lihat Gunakan alat untuk menyelesaikan respons model Amazon Bedrock.

    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 Alat Satu Langkah (Panggilan Fungsi) di 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 menggunakantool_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 di 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 — Tentukantrue, 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-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 dokumen IDs 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 yang 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 di Cohere dokumentasi.

    Tip

    Kami menyarankan Anda menggunakan Converse APIuntuk mengintegrasikan penggunaan alat ke dalam aplikasi Anda. Untuk informasi selengkapnya, lihat Gunakan alat untuk menyelesaikan respons model Amazon Bedrock.

    Berikut ini adalah contoh JSON untuk tool_calls bidang tersebut.

    [ { "name": "top_song", "parameters": { "sign": "WZPZ" } } ]
  • meta — data API penggunaan (hanya ada untuk streaming).

    • api_version- API Versi. Versinya 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

Contoh ini menunjukkan cara memanggil Cohere Command Rmodel.

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