

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Mistral AI chat completion
<a name="model-parameters-mistral-chat-completion"></a>

Mistral AI chat completion API を使用すると、会話アプリケーションを作成できます。

**ヒント**  
Mistral AI chat completion API は、ベース推論オペレーション ([InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html) または [InvokeModelWithResponseStream](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModelWithResponseStream.html)) と一緒に使用できます。ただし、Converse API を使用してアプリケーションにメッセージを実装することが推奨されます。Converse API は、メッセージをサポートするすべてのモデルで機能する、統一されたパラメータ一式を提供します。詳細については、「[Converse API オペレーションを使用して会話を実行する](conversation-inference.md)」を参照してください。

Mistral AI モデルは [Apache 2.0 ライセンス](https://www.apache.org/licenses/LICENSE-2.0.txt)にあります。Mistral AI モデルの使用については、「[Mistral AI ドキュメント](https://docs.mistral.ai/)」を参照してください。

**Topics**
+ [サポートされているモデル](#mistral-supported-models-chat-completion)
+ [リクエストとレスポンス](#model-parameters-mistral-chat-completion-request-response)

## サポートされているモデル
<a name="mistral-supported-models-chat-completion"></a>

次の Mistral AI モデルを使用できます。
+ Mistral Large

このとき、使用するモデルのモデル ID が必要になります。モデル ID を取得するには、「[Amazon Bedrock でサポートされている基盤モデル](models-supported.md)」を参照してください。

## リクエストとレスポンス
<a name="model-parameters-mistral-chat-completion-request-response"></a>

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

Mistral AI モデルには次の推論パラメータがあります。

```
{
    "messages": [
        {
            "role": "system"|"user"|"assistant",
            "content": str
        },
        {
            "role": "assistant",
            "content": "",
            "tool_calls": [
                {
                    "id": str,
                    "function": {
                        "name": str,
                        "arguments": str
                    }
                }
            ]
        },
        {
            "role": "tool",
            "tool_call_id": str,
            "content": str
        }
    ],
    "tools": [
        {
            "type": "function",
            "function": {
                "name": str,
                "description": str,
                "parameters": dict
            }
        }
    ],
    "tool_choice": "auto"|"any"|"none",
    "max_tokens": int,
    "top_p": float,
    "temperature": float
}
```

必須パラメータを以下に示します。
+  **messages** – (必須) モデルに渡すメッセージ。
  + **role** – メッセージのロール。次の値を指定できます。
    + **system** – 会話内のモデルの動作とコンテキストを設定します。
    + **user** – モデルに送信するユーザーメッセージ。
    + **assistant** – モデルからのレスポンス。
  + **content** – メッセージの内容。

  ```
  [
      {
          "role": "user",
          "content": "What is the most popular song on WZPZ?"
      }
  ]
  ```

  ツール結果を渡すには、次のフィールドで JSON を使用します。
  + **role** – メッセージのロール。値は `tool` にする必要があります。
  + **tool\$1call\$1id** – ツールリクエストの ID。前のリクエストからのレスポンスの `tool_calls` フィールドから ID を取得します。
  + **content** – ツールからの結果。

  次の例は、ラジオ局で最も人気のある曲を取得するツールからの結果を示しています。

  ```
  {
      "role": "tool",
      "tool_call_id": "v6RMMiRlT7ygYkT4uULjtg",
      "content": "{\"song\": \"Elemental Hotel\", \"artist\": \"8 Storey Hike\"}"
  }
  ```

オプションのパラメータを以下に示します。
+  **tools** – モデルが使用できるツールの定義。

  リクエストに `tools` を含めると、モデルは、メッセージの `tool_calls` フィールドを返します。これは、モデルがそれらのツールを使用することを表しています。その後、モデルが生成したツール入力を使用してこれらのツールを実行し、必要に応じて、`tool_result` コンテンツブロックを使用してモデルに結果を返します。

  次の例は、ラジオ局で最も人気のある曲を取得するツールを示しています。

  ```
  [
      {
          "type": "function",
          "function": {
              "name": "top_song",
              "description": "Get the most popular song played on a radio station.",
              "parameters": {
                  "type": "object",
                  "properties": {
                      "sign": {
                          "type": "string",
                          "description": "The call sign for the radio station for which you want the most popular song. Example calls signs are WZPZ and WKRP."
                      }
                  },
                  "required": [
                      "sign"
                  ]
              }
          }
      }
  ]
  ```
+  **tool\$1choice** – 関数の呼び出し方法を指定します。`none` に設定すると、モデルは、関数を呼び出さない代わりに、メッセージを生成します。`auto` に設定すると、モデルは、メッセージを生成するか、関数を呼び出すかを選択します。`any` に設定すると、モデルは強制的に関数を呼び出します。
+ **max\$1tokens** – 生成されたレスポンスで使用するトークンの最大数を指定します。生成されたテキストの長さが `max_tokens` を超えると、モデルはレスポンスを切り捨てます。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/model-parameters-mistral-chat-completion.html)
+ **temperature** – モデルによって行われた予測のランダム性を制御します。詳細については、「[推論パラメータでレスポンスの生成に影響を与える](inference-parameters.md)」を参照してください。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/model-parameters-mistral-chat-completion.html)
+ **top\$1p** – モデルが次のトークンについて考慮する最も可能性の高い候補の割合を設定することで、モデルが生成するテキストの多様性を制御します。詳細については、「[推論パラメータでレスポンスの生成に影響を与える](inference-parameters.md)」を参照してください。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/model-parameters-mistral-chat-completion.html)

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

`InvokeModel` を呼び出した場合の `body` レスポンスを以下に示します。

```
{
    "choices": [
        {
            "index": 0,
            "message": {
                "role": "assistant",
                "content": str,
                "tool_calls": [...]
            },
            "stop_reason": "stop"|"length"|"tool_calls"
        }
    ]
}
```

`body` レスポンスに指定できるフィールドについて説明します。
+ **choices** – モデルからの出力です。
  + **index** – メッセージのインデックス。
  + **message** – モデルからのメッセージ。
    + **role** – メッセージのロール。
    + **content** – メッセージの内容。
    + **tool\$1calls** – `stop_reason` の値が `tool_calls` の場合、このフィールドには、実行されるモデルをリクエストするツールのリストが含まれます。
      + **id** – ツールリクエストの ID。
      + **function** – モデルがリクエストしている関数。
        + **name** – 関数の名前。
        + **arguments** – ツールに渡す引数。

      次の例は、ラジオ局で最も人気のある曲を取得するツールのリクエストを示しています。

      ```
      [
                          {
                              "id": "v6RMMiRlT7ygYkT4uULjtg",
                              "function": {
                                  "name": "top_song",
                                  "arguments": "{\"sign\": \"WZPZ\"}"
                              }
                          }
                      ]
      ```
  + **stop\$1reason** – モデルがテキストの生成を停止した理由。可能な値は以下のとおりです。
    + **停止** - モデルは入力プロンプトのテキストの生成を終了しました。モデルは、生成するコンテンツがなくなったか、`stop` リクエストパラメータで定義したストップシーケンスのいずれかがモデルによって生成された場合に停止します。
    + **length** – `max_tokens` の値を超える生成されたテキストのトークン長。レスポンスは `max_tokens` 個のトークンの長さに切り捨てられます。
    + **tool\$1calls** – モデルがツールの実行をリクエストしています。

------