翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Cohere Command R また、Command R+ モデル
推論リクエストを行う Cohere Command R また、Cohere Command R+ InvokeModel または InvokeModelWithResponseStream (ストリーミング) を含むモデル。このとき、使用するモデルのモデル ID が必要になります。モデル ID を取得するには、「」を参照してくださいAmazon Bedrock モデル IDs。
会話アプリケーションの場合は、 コンバース を使用することをお勧めしますAPI。Converse APIは、メッセージをサポートするすべてのモデルで動作する統合されたパラメータセットを提供します。詳細については、「Converse APIオペレーションとの会話を実行する」を参照してください。
リクエストとレスポンス
- Request
-
- Cohere Command モデルには次の推論パラメータがあります。
{
"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
}
必須パラメータを以下に示します。
オプションのパラメータを以下に示します。
-
chat_history – ユーザーとモデル間の以前のメッセージのリスト。ユーザーのメッセージに応答するための会話コンテキストをモデルに与えるためのものです。
以下は必須フィールドです。
以下は、 chat_history
フィールドJSONの例です。
"chat_history": [
{"role": "USER", "message": "Who discovered gravity?"},
{"role": "CHATBOT", "message": "The man who is widely credited with discovering gravity is Sir Isaac Newton"}
]
-
ドキュメント – モデルが引用してより正確な返信を生成できるテキストのリスト。各ドキュメントは文字列文字列ディクショナリです。結果の生成には、これらのドキュメントの一部を参照する引用が含まれています。ディクショナリの文字列の合計単語数は 300 語未満にしておくことをお勧めします。_excludes
フィールド (文字列の配列) は、オプションで提供して、モデルに表示されないキーと値のペアを省略できます。詳細については、「」の「ドキュメントモードガイド」を参照してください。Cohere ドキュメント内) を参照してください。
documents
フィールドJSONの例を次に示します。
"documents": [
{"title": "Tall penguins", "snippet": "Emperor penguins are the tallest."},
{"title": "Penguin habitats", "snippet": "Emperor penguins only live in Antarctica."}
]
-
search_queries_only – デフォルトは ですfalse
。の場合true
、レスポンスには生成された検索クエリのリストのみが含まれますが、検索は行われず、モデルからユーザーの への返信message
は生成されません。
-
preamble – 検索クエリ生成のデフォルトの preamble を上書きします。ツールの使用世代には影響しません。
-
max_tokens – レスポンスの一部としてモデルが生成するトークンの最大数。値を低く設定すると、生成が不完全になる場合があることに注意してください。または tools
documents
フィールドで使用すると、設定が不完全になったり、世代がなくなるmax_tokens
可能性があります。
-
temperature – 低い値を使用して、レスポンスのランダム性を減らします。ランダム性は、 p
パラメータの値を増やすことでさらに最大化できます。
-
p – 上位 P。低い値を使用して、可能性の低いオプションを無視します。
デフォルト |
最小値 |
最大値 |
0.75
|
0.01
|
0.99
|
-
k – トップ K。モデルが次のトークンの生成に使用するトークン選択の数を指定します。
-
prompt_truncation – デフォルトは ですOFF
。プロンプトの構築方法を指定します。を prompt_truncation
に設定するchat_history
とAUTO_PRESERVE_ORDER
、 と の一部の要素documents
がドロップされ、モデルのコンテキストの長さ制限内に収まるプロンプトが作成されます。このプロセス中、ドキュメントとチャット履歴の順序は保持されます。prompt_truncation
` を に設定するとOFF
、要素は削除されません。
-
frequency_penalty – 生成されたトークンの反復性を減らすために使用されます。値が高いほど、以前に存在したトークンにペナルティが強く適用されます。これは、プロンプトまたは以前の世代に既に出現した回数に比例します。
-
presence_penalty – 生成されたトークンの反復性を減らすために使用されます。に似ていますがfrequency_penalty
、このペナルティは、正確な頻度に関係なく、既に出現したすべてのトークンに等しく適用されます。
-
seed – 指定した場合、バックエンドは決定的にトークンをサンプリングするために最善を尽くし、同じシードとパラメータを持つリクエストを繰り返しても同じ結果が返されるようにします。ただし、決定論を完全に保証することはできません。
-
return_prompt – モデルに送信された完全なプロンプトを返すtrue
ように指定します。デフォルト値は false
です。レスポンスでは、 prompt
フィールドのプロンプト。
-
ツール – テキストレスポンスを生成する前にモデルが呼び出しを提案する可能性のある利用可能なツール (関数) のリスト。tools
が渡されると ( なしtool_results
)、レスポンスの text
フィールドは ""
になり、レスポンスの tool_calls
フィールドには、実行する必要があるツールコールのリストが入力されます。呼び出しを行う必要がない場合、tool_calls
配列は空になります。
詳細については、「」の「ツールの使用」を参照してください。Cohere ドキュメント内) を参照してください。
tools
フィールドJSONの例を次に示します。
[
{
"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
}
}
}
]
詳細については、「」の「シングルステップツールの使用 (関数呼び出し)」を参照してください。Cohere ドキュメント内) を参照してください。
-
tools_results – 前のチャットターンでモデルが推奨するツールを呼び出す結果のリスト。結果はテキストレスポンスの生成に使用され、引用で参照されます。を使用する場合tool_results
、 も渡されるtools
必要があります。各 tool_result
には、呼び出し方法に関する情報と、ディクショナリ形式の出力のリストが含まれています。Cohere 独自のきめ細かな引用ロジックでは、出力をリストにする必要があります。出力が などの 1 つの項目のみである場合は{"status": 200}
、リスト内にラップする必要があります。
詳細については、「」の「ツールの使用」を参照してください。Cohere ドキュメント内) を参照してください。
tools_results
フィールドJSONの例を次に示します。
[
{
"call": {
"name": "top_song",
"parameters": {
"sign": "WZPZ"
}
},
"outputs": [
{
"song": "Elemental Hotel"
}
]
}
]
-
stop_sequences – 停止シーケンスのリスト。停止シーケンスが検出されると、モデルは追加のトークンの生成を停止します。
-
raw_prompting – を指定してtrue
、前処理なしでユーザーの message
をモデルに送信します。それ以外の場合は false です。
- Response
-
このレスポンスに指定できるフィールドについて説明します。
{
"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 — チャット完了の一意の識別子
-
text — チャットメッセージ入力に対するモデルの応答。
-
generation_id — Cohere のプラットフォームのフィードバックエンドポイントで使用されるチャット完了の一意の識別子。
-
引用 — 生成された返信のインライン引用と関連付けられたメタデータの配列。次のフィールドが含まれます。
-
start — 引用が始まるインデックスで、0 から始まります。
-
end — 引用が 0 から始まる後に終了するインデックス。
-
text — 引用が関連するテキスト。
-
document_ids — テキストで引用IDsされるドキュメントに対応するドキュメントの配列。
-
プロンプト — モデルに送信された完全なプロンプト。このフィールドを返return_prompt
すフィールドを指定します。
-
finish_reason — モデルが出力の生成を停止した理由。次のいずれかとなります。
-
complete — 完了は生成トークンの終了に達しました。これが最高のパフォーマンスを得るための終了理由であることを確認します。
-
error_toxic — コンテンツフィルターが原因で生成を完了できませんでした。
-
error_limit — モデルのコンテキスト制限に達したため、生成を完了できませんでした。
-
error — エラーが原因で生成を完了できませんでした。
-
user_cancel — ユーザーによって停止されたため、生成を完了できませんでした。
-
max_tokens — ユーザーがリクエストでmax_tokens
制限を指定し、この制限に達したため、生成を完了できませんでした。最良のパフォーマンスが得られない可能性があります。
-
tool_calls – 呼び出しに適したツールのリスト。tools
入力フィールドを指定した場合のみ返されます。
詳細については、「」の「ツールの使用」を参照してください。Cohere ドキュメント内) を参照してください。
tool_calls
フィールドJSONの例を次に示します。
[
{
"name": "top_song",
"parameters": {
"sign": "WZPZ"
}
}
]
-
meta — API使用状況データ (ストリーミングにのみ存在します)。
コード例
この例では、 を呼び出す方法を示しています。 Cohere Command R モデル。
# 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()