

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# AI21 Labs Jurassic-2 模型
<a name="model-parameters-jurassic2"></a>

本節提供推論參數和使用 AI21 Labs AI21 Labs Jurassic-2 模型的程式碼範例。

**Topics**
+ [推論參數](#model-parameters-jurassic2-request-response)
+ [程式碼範例](#api-inference-examples-a2i-jurassic)

## 推論參數
<a name="model-parameters-jurassic2-request-response"></a>

AI21 Labs Jurassic-2 模型支援以下推論參數。

**Topics**
+ [隨機性和多樣性](#model-parameters-jurassic2-random)
+ [長度](#model-parameters-jurassic2-length)
+ [重複](#model-parameters-jurassic2-reps)
+ [模型調用請求內文欄位](#model-parameters-jurassic2-request-body)
+ [模型調用回應內文欄位](#model-parameters-jurassic2-response-body)

### 隨機性和多樣性
<a name="model-parameters-jurassic2-random"></a>

AI21 Labs Jurassic-2 模型支援下列參數，以控制回應中的隨機性和多樣性。
+ **溫度** (`temperature`) – 使用較低的值來降低回應中的隨機性。
+ **Top P** (`topP`) — 使用較低的值來忽略較少可能的選項。

### 長度
<a name="model-parameters-jurassic2-length"></a>

AI21 Labs Jurassic-2 模型支援下列參數，以控制產生的回應長度。
+ **最大完成長度** (`maxTokens`) – 指定產生的回應中使用的記號數上限。
+ **停止序列** (`stopSequences`) — 設定模型辨識的停止序列，之後停止產生更多記號。按 Enter 鍵在停止序列中插入換行字元。使用 Tab 鍵完成插入停止序列。

### 重複
<a name="model-parameters-jurassic2-reps"></a>

AI21 Labs Jurassic-2 模型支援以下參數，以控制產生的回應中的重複數。
+ **存在懲罰** (`presencePenalty`) — 使用較高值可以降低產生已在提示或完成中至少出現一次的新記號的機率。
+ **計數懲罰** (`countPenalty`) — 使用較高值可以降低產生已在提示或完成中至少出現一次的新記號的機率。與外觀數成正比。
+ **頻率懲罰** (`frequencyPenalty`) — 使用較高值可以降低產生已在提示或完成中至少出現一次的新記號的機率。該值與記號出現的頻率成正比(標準化為文字長度)。
+ **懲罰特殊記號** — 降低重複特殊字元的可能性。預設值為 `true`。
  + **空格**(`applyToWhitespaces`) - `true` 值會將懲罰套用於空格和新行。
  + **標點符號** (`applyToPunctuation`) — `true` 值會將懲罰套用於標點符號。
  + **數字** (`applyToNumbers`) — 將懲罰套用於數字的 `true` 值。
  + **停用詞** (`applyToStopwords`) — `true` 值會套用懲罰來停用字詞。
  + **表情符號** (`applyToEmojis`) — 從懲罰中排除表情符號的 `true` 值。

### 模型調用請求內文欄位
<a name="model-parameters-jurassic2-request-body"></a>

當您使用 AI21 Labs 模型進行 [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) 呼叫時，請使用符合下列的 JSON 物件填充 `body` 欄位。在 `prompt` 欄位中輸入提示詞。

```
{
    "prompt": string,
    "temperature": float,
    "topP": float,
    "maxTokens": int,
    "stopSequences": [string],
    "countPenalty": {
        "scale": float
    },
    "presencePenalty": {
        "scale": float
    },
    "frequencyPenalty": {
        "scale": float
    }
}
```

若要懲罰特殊記號，請將這些欄位新增到任何懲罰物件。例如，您可以依下列方式修改 `countPenalty` 欄位。

```
"countPenalty": {
    "scale": float,
    "applyToWhitespaces": boolean,
    "applyToPunctuations": boolean,
    "applyToNumbers": boolean,
    "applyToStopwords": boolean,
    "applyToEmojis": boolean
}
```

下表展示數字參數的最小值、最大值和預設值。


****  
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/bedrock/latest/userguide/model-parameters-jurassic2.html)

### 模型調用回應內文欄位
<a name="model-parameters-jurassic2-response-body"></a>

如需有關回應中 `body` 欄位格式的資訊，請參閱 [https://docs.ai21.com/reference/j2-complete-api-ref](https://docs.ai21.com/reference/j2-complete-api-ref)。

**注意**  
Amazon Bedrock 會將回應識別碼 (`id`) 以整數值傳回。

## 程式碼範例
<a name="api-inference-examples-a2i-jurassic"></a>

這個範例展示如何呼叫 *A2I AI21 Labs Jurassic-2 Mid* 模型。

```
import boto3
import json

brt = boto3.client(service_name='bedrock-runtime')

body = json.dumps({
    "prompt": "Translate to spanish: 'Amazon Bedrock is the easiest way to build and scale generative AI applications with base models (FMs)'.", 
    "maxTokens": 200,
    "temperature": 0.5,
    "topP": 0.5
})

modelId = 'ai21.j2-mid-v1'
accept = 'application/json'
contentType = 'application/json'

response = brt.invoke_model(
    body=body, 
    modelId=modelId, 
    accept=accept, 
    contentType=contentType
)

response_body = json.loads(response.get('body').read())

# text
print(response_body.get('completions')[0].get('data').get('text'))
```