

 Amazon Redshift 將不再支援從修補程式 198 開始建立新的 Python UDFs。現有 Python UDF 將繼續正常運作至 2026 年 6 月 30 日。如需詳細資訊，請參閱[部落格文章](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)。

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

# CREATE EXTERNAL MODEL
<a name="r_create_external_model"></a>

**Topics**
+ [CREATE EXTERNAL MODEL 的先決條件](#r_create_external_model_prereqs)
+ [所需權限](#r_simple_create_model-privileges)
+ [成本控制](#r_create_model_cost)
+ [CREATE EXTERNAL MODEL 語法](#r_create_external_model_syntax)
+ [CREATE EXTERNAL MODEL 參數和設定](#r_create_external_model_parameters_settings)
+ [CREATE EXTERNAL MODEL 推論函數參數](#r_create_external_model_if_parameters)

## CREATE EXTERNAL MODEL 的先決條件
<a name="r_create_external_model_prereqs"></a>

使用 CREATE EXTERNAL MODEL 陳述式之前，請先完成 [使用 Amazon Redshift ML 的叢集設定](getting-started-machine-learning.md#cluster-setup) 中的先決條件。以下是先決條件的概要。
+ 使用 AWS 管理主控台或命令列界面 (AWS CLI) 建立 AWS Amazon Redshift 叢集。
+ 在建立叢集時連接 AWS Identity and Access Management (IAM) 政策。
+ 若要允許 Amazon Redshift 和 Amazon Bedrock 擔任與其他服務互動的角色，請將適當的信任政策新增至 IAM 角色。
+ 從 Amazon Bedrock 主控台啟用您要使用之特定 LLM 的存取權。
+ (選用) 如果即使只有小量資料，您仍遇到來自 Amazon Bedrock 的限流例外狀況 (例如 `Too many requests, please wait before trying again`)，請在 Amazon Bedrock 帳戶中的 **Service Quotas** 下查看配額。檢查套用的帳戶層級配額至少與您正在使用的模型之 **InvokeModel** 請求 AWS 的預設配額值相同。

如需 IAM 角色、信任政策和其他先決條件的詳細資訊，請參閱 [使用 Amazon Redshift ML 的叢集設定](getting-started-machine-learning.md#cluster-setup)。

## 所需權限
<a name="r_simple_create_model-privileges"></a>

以下是 CREATE EXTERNAL MODEL 所需的權限：
+ 超級使用者
+ 具有 CREATE MODEL 權限的使用者
+ 具有 GRANT CREATE MODEL 權限的角色

## 成本控制
<a name="r_create_model_cost"></a>

 Amazon Redshift ML 會使用現有的叢集資源建立預測模型，因此您不必支付額外費用。不過，根據您選取的模型使用 Amazon Bedrock AWS 的費用。如需詳細資訊，請參閱[使用 Amazon Redshift 資料 API](https://docs.aws.amazon.com/redshift/latest/dg/cost.html)。

## CREATE EXTERNAL MODEL 語法
<a name="r_create_external_model_syntax"></a>

以下是 CREATE EXTERNAL MODEL 陳述式的完整語法。

```
CREATE EXTERNAL MODEL model_name 
FUNCTION function_name
IAM_ROLE {default/'arn:aws:iam::<account-id>:role/<role-name>'}
MODEL_TYPE BEDROCK
SETTINGS (
   MODEL_ID model_id
   [, PROMPT 'prompt prefix']
   [, SUFFIX 'prompt suffix']
   [, REQUEST_TYPE {RAW|UNIFIED}]
   [, RESPONSE_TYPE {VARCHAR|SUPER}]
);
```

`CREATE EXTERNAL MODEL` 命令會建立您用來產生內容的推論函數。

以下是 `CREATE EXTERNAL MODEL` 使用 `REQUEST_TYPE` 為 `RAW` 所建立的推論函數的語法：

```
SELECT inference_function_name(request_super) 
[FROM table];
```

以下是 `CREATE EXTERNAL MODEL` 使用 `REQUEST_TYPE` 為 `UNIFIED` 所建立的推論函數的語法：

```
SELECT inference_function_name(input_text, [, inference_config [, additional_model_request_fields]])
[FROM table];
```

如需有關如何使用推論函數的相關資訊，請參閱 [針對 Amazon Redshift ML 與 Amazon Bedrock 整合使用外部模型](machine-learning-br.md#machine-learning-br-use)。

## CREATE EXTERNAL MODEL 參數和設定
<a name="r_create_external_model_parameters_settings"></a>

本節說明 `CREATE EXTERNAL MODEL` 命令的參數和設定。

**Topics**
+ [CREATE EXTERNAL MODEL 參數](#r_create_external_model_parameters)
+ [CREATE EXTERNAL MODEL 設定](#r_create_external_model_settings)

### CREATE EXTERNAL MODEL 參數
<a name="r_create_external_model_parameters"></a>

model\$1name  
外部模型的名稱。結構描述中的模型名稱必須是唯一的。

FUNCTION *function\$1name (data\$1type [,...] )*  
`CREATE EXTERNAL MODEL` 所建立推論函數的名稱。您使用推論函數將請求傳送至 Amazon Bedrock，並擷取 ML 產生的文字。

IAM\$1ROLE * \$1 default \$1 'arn:aws:iam::<account-id>:role/<role-name>' \$1*  
Amazon Redshift 用來存取 Amazon Bedrock 的 IAM 角色。如需 IAM 角色的資訊，請參閱 [建立或更新 Amazon Redshift ML 與 Amazon Bedrock 整合的 IAM 角色](machine-learning-br.md#machine-learning-br-iam)。

MODEL\$1TYPE BEDROCK  
指定模型類型。唯一有效的值為 `BEDROCK`。

SETTINGS ( MODEL\$1ID model\$1id [,...] )  
指定外部模型設定。如需詳細資訊，請參閱下列章節。

### CREATE EXTERNAL MODEL 設定
<a name="r_create_external_model_settings"></a>

MODEL\$1ID model\$1id  
外部模型的識別碼，例如 `anthropic.claude-v2`。如需 Amazon Bedrock 模型 ID 的相關資訊，請參閱 [Amazon Bedrock 模型 ID](https://docs.aws.amazon.com/bedrock/latest/userguide/model-ids.html)。

PROMPT 'prompt prefix'  
指定 Amazon Redshift 新增至每個推論請求開頭的靜態提示。僅在 `REQUEST_TYPE` 為 `UNIFIED` 的情況下支援。

SUFFIX 'prompt suffix'  
指定 Amazon Redshift 新增至每個推論請求結尾的靜態提示。僅在 `REQUEST_TYPE` 為 `UNIFIED` 的情況下支援。

REQUEST\$1TYPE \$1 RAW \$1 UNIFIED \$1  
指定傳送至 Amazon Bedrock 的請求格式。有效值包括下列項目：  
+ **RAW**：推論函數會將輸入視為單一 super 值，並一律傳回 super 值。Super 值的格式為選取的 Amazon Bedrock 模型專屬。Super 是一種預測模型，結合了多種演算法來產生單一、改進的預測。
+ **UNIFIED**：推論函數使用統一的 API。所有模型與 Amazon Bedrock 之間擁有統一且一致的介面。這適用於所有支援訊息的模型。此為預設值。

  如需詳細資訊，請參閱 *Amazon Bedrock API 文件*中的 [Converse API 文件](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Converse.html)。

RESPONSE\$1TYPE \$1 VARCHAR \$1 SUPER \$1  
指定回應的格式。如果 `REQUEST_TYPE` 是 `RAW`，則需要 `RESPONSE_TYPE`，且唯一有效的值是 `SUPER`。對於所有其他 `REQUEST TYPE` 值，預設值為 `VARCHAR`，且 `RESPONSE_TYPE` 為選用。有效值包括下列項目：  
+ **VARCHAR**：Amazon Redshift 只會傳回模型產生的文字回應。
+ **SUPER**：Amazon Redshift 會將模型產生的整個回應 JSON 作為 super 傳回。這包括文字回應，以及像是停止原因、模型輸入和輸出字符用量等資訊。Super 是一種預測模型，結合了多種演算法來產生單一、改進的預測。

## CREATE EXTERNAL MODEL 推論函數參數
<a name="r_create_external_model_if_parameters"></a>

本節說明 `CREATE EXTERNAL MODEL` 命令所建立推論函數的有效參數。

### `REQUEST_TYPE` 為 `RAW` 的 CREATE EXTERNAL MODEL 推論函數參數
<a name="r_create_external_model_if_parameters_raw"></a>

若建立的推論函數的 `REQUEST_TYPE` 為 `RAW`，則會擁有一個 super 輸入引述數，且一律會傳回 super 資料類型。輸入 super 的語法遵循從 Amazon Bedrock 選取的特定模型請求的語法。

### `REQUEST_TYPE` 為 `UNIFIED` 的 CREATE EXTERNAL MODEL 推論函數參數
<a name="r_create_external_model_if_parameters_unified"></a>

input\$1text  
Amazon Redshift 傳送至 Amazon Bedrock 的文字。

inference\$1config  
Super 值，其中包含 Amazon Redshift 傳送至 Amazon Bedrock 的選用參數。這些可能包括以下項目：  
+ maxTokens
+ stopSequences
+ 溫度
+ topP
這些參數全都是選用，且全部區分大小寫。如需這些參數的相關資訊，請參閱 *Amazon Bedrock API 參考*中的 [InferenceConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InferenceConfiguration.html)。