

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

# 啟用程式碼解譯，為您的應用程式產生、執行和測試程式碼
<a name="agents-code-interpretation"></a>

程式碼解譯可讓您的代理程式在安全的測試環境中產生、執行和疑難排解您的應用程式程式碼。透過程式碼解譯，您可以使用代理程式的基礎模型產生實作基本功能的程式碼，同時專注於建置生成式 AI 應用程式。

您可以使用 Amazon Bedrock 中的程式碼解譯執行以下任務：
+ 了解特定任務的使用者請求、產生可執行使用者請求任務的程式碼、執行程式碼，以及提供程式碼執行的結果。
+ 了解使用者的一般查詢、產生和執行程式碼，以提供回應給使用者。
+ 產生程式碼以執行資料的分析、視覺化和評估。
+ 從使用者上傳的檔案擷取資訊，處理資訊並回答使用者查詢。
+ 根據與使用者的互動對話產生程式碼，以進行快速原型設計。

根據預設，每個 AWS 帳戶之每個工作階段的並行作用中程式碼解釋數目上限為 25 個。這表示，每個 AWS 帳戶使用程式碼解譯器最多可同時與代理程式進行 25 次持續對話。

以下是一些使用案例，其中程式碼解譯可以協助我們在 Amazon Bedrock 中產生和執行程式碼 

1. 分析來自 .csv 等資料檔案的金融交易，以判斷交易是產生獲利或損失。

1. 將 .txt 或 .csv 等檔案格式的日期格式 (例如 *14th March 2020*) 轉換為標準 API 格式 `YYYY-MM-DD`

1. 在試算表 (XLS) 上執行資料分析，以計算每季/每年公司營收或人口成長率等指標。

若要在 Amazon Bedrock 中使用程式碼解譯，請執行下列步驟：
+ 在建置代理程式時啟用程式碼解譯。啟用程式碼解譯之後，您就可以開始使用它。
+ 提供提示，開始在 Amazon Bedrock 中使用程式碼解譯。例如，您可以詢問「計算圓周率的平方根，精確到小數點後 127 位」。程式碼解譯會產生並執行 python 程式碼以提供回應。
+ 您也可以連接檔案。您可以使用檔案中的資訊來提出問題，以及摘要或分析資料。您可以從電腦或 Amazon S3 儲存貯體連接檔案。

**支援的地區**

下列區域支援 Amazon Bedrock 代理程式的程式碼解譯功能：


****  

| 區域 | 
| --- | 
| 美國東部 (維吉尼亞北部) | 
| 美國西部 (奧勒岡) | 
| 歐洲 (法蘭克福) | 

**檔案支援**

透過程式碼解譯，您可以連接檔案，然後使用連接的檔案提出問題，並根據連接檔案的內容來摘要或分析資料。

您最多可以連接 5 個檔案。所有檔案的總大小最多可達 10 MB。
+ **支援的輸入檔案類型**：CSV、XLS、XLSX、YAML、JSON、DOC、DOCX、HTML、MD、TXT 和 PDF 
+ **支援的輸出檔案類型**：CSV、XLS、XLSX、YAML、JSON、DOC、DOCX、HTML、MD、TXT、PDF 和 PNG 

# 在 Amazon Bedrock 中啟用程式碼解譯
<a name="agents-enable-code-interpretation"></a>

您可以在[建立](https://docs.aws.amazon.com//bedrock/latest/userguide/agents-create.html)或[更新](https://docs.aws.amazon.com//bedrock/latest/userguide/agents-manage.html#agents-edit)代理程式時，在 Amazon Bedrock 主控台中啟用程式碼解譯。如果您使用的是 API 或 SDK，您可以在[建立](https://docs.aws.amazon.com//bedrock/latest/APIReference/API_agent_CreateAgentActionGroup.html)或[更新](https://docs.aws.amazon.com//bedrock/latest/APIReference/API_agent_UpdateAgentActionGroup.html)動作群組時啟用程式碼解譯。

若要了解如何在 Amazon Bedrock 中啟用程式碼解譯，請選擇您偏好方法的索引標籤，然後遵循下列步驟：

------
#### [ Console ]

**為您的代理程式啟用程式碼解譯**

1. 如果您尚未進入代理程式建置器，請執行下列動作：

   1. AWS 管理主控台使用具有使用 Amazon Bedrock 主控台之許可的 IAM 身分登入 。接著，開啟位於 [https://console.aws.amazon.com/bedrock](https://console.aws.amazon.com/bedrock) 的 Amazon Bedrock 主控台。

   1. 從左側導覽窗格選取**代理程式**。接著，在**代理程式**區段中選擇代理程式。

   1. 選擇**在代理程式建置器中編輯**

1. 前往**其他設定**並展開該區段。

1. 針對**程式碼解譯器**，選取**啟用**。

1. 請務必先**儲存**，然後**準備**套用您對代理程式所做的變更，再進行測試。

------
#### [ API ]

若要啟用代理程式的程式碼解譯，請使用 [Amazon Bedrock 代理程式建置時期端點](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-bt)傳送 [CreateActionGroup](https://docs.aws.amazon.com//bedrock/latest/APIReference/API_agent_CreateAgentActionGroup.html) 請求 (請參閱連結以了解請求和回應格式及欄位詳細資訊)，並指定下列欄位：


****  

| 欄位 | 簡短描述 | 
| --- | --- | 
| actionGroupName | 動作群組的名稱 | 
| parentActionGroupSignature | 指定 AMAZON.CodeInterpreter 以允許代理程式產生和測試程式碼 | 
| actionGroupState | 指定 ENABLED 以允許代理程式調用程式碼解譯 | 

以下顯示使用 [CreateActionGroup](https://docs.aws.amazon.com//bedrock/latest/APIReference/API_agent_CreateAgentActionGroup.html) 請求啟用程式碼解譯的必要欄位的一般格式。

```
CreateAgentActionGroup:
{
  "actionGroupName": "CodeInterpreterAction",
  "parentActionGroupSignature": "AMAZON.CodeInterpreter",
  "actionGroupState": "ENABLED"
}
```

------

# Amazon Bedrock 中的測試程式碼解譯
<a name="agents-test-code-interpretation"></a>

在 Amazon Bedrock 中測試程式碼解譯之前，請務必準備您的代理程式以套用您剛才所做的變更。

啟用程式碼解譯後，當您開始測試代理程式時，您可以選擇連接檔案，並選擇您希望程式碼解譯如何使用您連接的檔案。根據您的使用案例，您可以要求程式碼解譯使用連接檔案中的資訊來摘要檔案的內容，並在互動聊天對話期間回答有關檔案內容的查詢。或者，您可以要求程式碼解譯來分析連接檔案中的內容，並提供指標和資料視覺化報告。

**連接檔案**

若要了解如何連接檔案以進行程式碼解譯，請選擇您偏好方法的標籤，然後遵循下列步驟：

------
#### [ Console ]

**若要連接檔案以進行程式碼解譯，**

1. 如果您尚未進入代理程式建置器，請執行下列動作：

   1.  AWS 管理主控台 使用具有使用 Amazon Bedrock 主控台之許可的 IAM 身分登入 。接著，開啟位於 [https://console.aws.amazon.com/bedrock](https://console.aws.amazon.com/bedrock) 的 Amazon Bedrock 主控台。

   1. 從左側導覽窗格選取**代理程式**。接著，在**代理程式**區段中選擇代理程式。

   1. 選擇**在代理程式建置器中編輯**

   1. 展開**其他設定**並確認已啟用**程式碼解譯器**。

   1. 確定代理程式已準備好。

1. 如果測試時段未開啟，請選擇**測試**。

1. 在測試視窗底部，選取要連接檔案的迴紋針圖示。

1. 在**連接檔案**頁面中，

   1. 

**對於**選擇函數**，請指定下列項目：**
      + 如果您要連接檔案供代理程式用來回答您的查詢和摘要內容，請選擇**將檔案連接到聊天 (更快)**。
      + 如果您要連接檔案進行程式碼解譯以分析內容並提供指標，請選擇**將檔案連接至程式碼解譯器**。

   1. 

**針對**選擇上傳方法**，選擇您要上傳檔案的位置：**
      + 如果您要從電腦上傳，請選取**選擇檔案**並選取要連接的檔案。
      + 如果您要從 Amazon S3 上傳，請依序選擇**瀏覽 S3**、檔案、**選擇**，然後選擇**新增**。

1. 選擇 **Attach** (連接)。

------
#### [ API ]

若要測試程式碼解譯，請使用 [Amazon Bedrock 代理人建置時期端點](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-bt)傳送 [InvokeAgent](https://docs.aws.amazon.com//bedrock/latest/APIReference/API_agent_InvokeAgent.html) 請求 (請參閱連結以了解請求和回應格式及欄位詳細資訊)。

**若要連接代理程式的檔案，以用於回答查詢和摘要內容，請指定下列欄位：**


****  

| 欄位 | 簡短描述 | 
| --- | --- | 
| name | 連接檔案的名稱。 | 
| sourceType | 要連接之檔案的位置。如果您的檔案位於 Amazon S3 儲存貯體中，請指定 s3。如果您的檔案位於您的電腦上，請指定 byte\$1content。 | 
| S3Location | 檔案所在的 S3 路徑。如果 sourceType 是 S3，則為必要。 | 
| mediaType | 連接檔案的檔案類型。 **支援的輸入檔案類型**：CSV、XLS、XLSX、YAML、JSON、DOC、DOCX、HTML、MD、TXT 和 PDF   | 
| data | Base64 編碼字串。檔案大小上限為 10MB。如果您使用的是 SDK，您只需要提供檔案位元組內容。 AWS SDK 會自動將字串編碼為 base64。 | 
| useCase | 您希望連接檔案的使用方式。有效值：CHAT \$1 CODE\$1INTERPRETER | 

 下列範例顯示指定必要欄位以將檔案連接至聊天的一般格式。

```
                  
"sessionState": {
        "promptSessionAttributes": {
            "string": "string"
        },
        "sessionAttributes": {
            "string": "string"
        },
        "files": [ 
            {
                "name": "banking_data", 
                "source": { 
                    "sourceType": "S3", 
                    "s3Location": 
                        "uri": "s3Uri" 
                    }
                },
                "useCase": "CHAT" 
            },
            {
                "name": "housing_stats.csv", 
                "source": { 
                    "sourceType": "BYTE_CONTENT", 
                    "byteContent": {
                        "mediaType": "text/csv", 
                        "data": "file byte content"
                    }
                },
                "useCase": "CHAT"
            }
        ]
    }
```

下列範例顯示指定必要欄位以連接檔案進行程式碼解譯的一般格式。

```
"sessionState": {
        "promptSessionAttributes": {
            "string": "string"
        },
        "sessionAttributes": {
            "string": "string"
        },
        "files": [ 
            {
                "name": "banking_data", 
                "source": { 
                    "sourceType": "S3",
                    "s3Location": {
                        "uri": "s3Uri" 
                    }
                },
                "useCase": "CODE_INTERPRETER" 
            },
            {
                "name": "housing_stats.csv", 
                "source": { 
                    "sourceType": "BYTE_CONTENT", 
                    "byteContent": {
             "mediaType": "text/csv", 
             "data": "file byte content" 
                    }
                },
                "useCase": "CODE_INTERPRETER"
            }
        ]
    }
```

------

# 在 Amazon Bedrock 中停用程式碼解譯
<a name="agents-disable-code-interpretation"></a>

您可以隨時在 Amazon Bedrock 中停用程式碼解譯。

若要了解如何停用程式碼解譯，請選擇您偏好方法的索引標籤，然後遵循下列步驟：

------
#### [ Console ]

**若要停用程式碼解譯，**

1.  AWS 管理主控台 使用具有使用 Amazon Bedrock 主控台之許可的 IAM 身分登入 。接著，開啟位於 [https://console.aws.amazon.com/bedrock](https://console.aws.amazon.com/bedrock) 的 Amazon Bedrock 主控台。

1. 從左側導覽窗格選取**代理程式**。接著，在**代理程式**區段中選擇代理程式。

1. 選擇**在代理程式建置器中編輯**。

1. 展開**其他設定**區段，針對**程式碼解譯器**選擇**停用**。

1. 在頁面頂端選取**準備**。然後選取**儲存**，將變更儲存至您的代理程式。

------
#### [ API ]

若要停用程式碼解譯，請使用 [Amazon Bedrock 代理人建置時期端點](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-bt)傳送 [UpdateAgentActionGroup](https://docs.aws.amazon.com//bedrock/latest/APIReference/API_agent_UpdateAgentActionGroup.html) 請求 (請參閱連結以了解請求和回應格式及欄位詳細資訊)，並指定下列欄位：


****  

| 欄位 | 簡短描述 | 
| --- | --- | 
| actionGroupName | 動作群組的名稱 | 
| parentActionGroupSignature | 指定 AMAZON.CodeInterpreter 以停用程式碼解譯器 | 
| actionGroupState | 指定 DISABLED 以停用程式碼解譯器 | 

下列範例顯示指定必要欄位以停用程式碼解譯的一般格式。

```
UpdateAgentActionGroup:
{
  "actionGroupName": "CodeInterpreterAction",
  "parentActionGroupSignature": "AMAZON.CodeInterpreter",
  "actionGroupState": "DISABLED"
}
```

------

停用代理程式的程式碼解譯後，請務必使用 [Amazon Bedrock 代理人建置時期端點](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-bt)傳送 [PrepareAgent](https://docs.aws.amazon.com//bedrock/latest/APIReference/API_agent_PrepareAgent.html) 請求 (請參閱連結以了解請求和回應格式及欄位詳細資訊)。