

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

# 建立擷取並產生 RAG 評估任務
<a name="knowledge-base-evaluation-create-randg"></a>

您可以使用 AWS 管理主控台、AWS CLI 或支援的 AWS SDK 建立 RAG 評估任務。

這種類型的任務需要存取評估工具模型。如需支援的評估工具模型清單，請參閱 [支援的模型](evaluation-kb.md#evaluation-kb-supported)。

若要使用下列指示建立任務，您需要提示資料集。若尚未建立，請參閱 [在 Amazon Bedrock 中建立 RAG 評估的提示資料集](knowledge-base-evaluation-prompt.md)。

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

1. 開啟 [Amazon Bedrock 主控台](https://console.aws.amazon.com/bedrock/home)。

1. 在**推論與評估**下的左側窗格中，選取**評估**。

1. 在 **RAG 評估**窗格中，選擇**建立**。

1. 執行下列動作，輸入您的 RAG 評估詳細資訊：

   1. 在**評估名稱**下方的**評估詳細資訊**窗格中，輸入評估任務的名稱。您在 AWS 區域 中選擇的名稱必須是唯一的名稱。

   1. 或者，在**描述 - *選用***下，輸入評估任務的描述。

   1. 在**評估工具模型**下，選擇**選取模型**，然後選取您要執行評估的評估工具模型。

1. 輸入評估任務的推論來源。透過 Amazon Bedrock RAG 評估，您可以在[提示資料集](knowledge-base-evaluation-prompt.md)中提供自己的推論回應資料，藉此評估 Amazon Bedrock 知識庫或其他 RAG 來源的效能。若要選取 Amazon Bedrock 知識庫，請執行下列動作：

   1. 在**推論來源**窗格的**選取來源**下，選取 **Bedrock 知識庫**。

   1. 在**選擇知識庫**下，使用下拉式清單選取知識庫。

1. 若要使用您自己的推論回應資料，請執行下列動作：

   1. 在**推論來源**窗格的**選取來源**下，選取**引入自己的推論回應**。

   1. 針對**來源名稱**，輸入您用來建立回應資料的 RAG 來源名稱。您輸入的名稱必須符合[提示資料集](knowledge-base-evaluation-prompt.md)中的 `knowledgeBaseIdentifier` 參數。

1. 在**推論來源**窗格的**評估類型**下，選取**擷取和回應產生**。

1. 在**指標**窗格中選取至少一個指標，以選取您想要讓評估工具模型使用的內建指標。

1. 執行下列動作，為您的資料集和結果定義輸入和輸出位置：

   1. 在**資料集**窗格**選擇提示資料集**下，輸入提示資料集的 Amazon S3 URI，或選擇**瀏覽 S3** 並選取您的檔案。若要查看僅擷取評估任務所需提示資料集格式的定義，請參閱 [為僅擷取 RAG 評估任務建立提示資料集](knowledge-base-evaluation-prompt-retrieve.md)。

   1. 在**評估結果**下，輸入 Amazon Bedrock 的 Amazon S3 位置以儲存結果，或選擇**瀏覽 S3** 以選取位置。

1. 在 **Amazon Bedrock IAM 角色 - 許可**下，選取**建立並使用新的服務角色**，讓 Amazon Bedrock 為評估任務建立新的 IAM 角色，或選取**使用現有的服務角色**來挑選現有的 IAM 角色。如需建立和執行評估任務所需的許可清單，請參閱 [先決條件](knowledge-base-evaluation-create.md#knowledge-base-evaluation-create-prereqs)。

1. (選用) 若要使用您自己的 KMS 金鑰來加密評估資料，請在 **KMSkey - *選用***下，勾選**自訂加密設定 (進階)**，然後選取您的 AWS KMS 金鑰。根據預設，Amazon Bedrock 會使用 AWS 擁有的 KMS 金鑰來加密評估任務資料。

1. 選擇**建立**來完成建立評估任務。

------
#### [ AWS CLI ]

**為 Amazon Bedrock 知識庫建立擷取並產生評估任務**
+ 使用範例 JSON 檔案執行下列 AWS CLI 命令。

  ```
  aws bedrock create-evaluation-job --cli-input-json file://my_eval_job.json
  ```

  ```
  {
      "jobName": "my_rag_eval",
      "roleArn": "arn:aws:iam::111122223333:role/service-role/Amazon-Bedrock-IAM-Role-Amazon-Bedrock-IAM-Role-20250218T063974",
      "applicationType": "RagEvaluation",
      "evaluationConfig": {
          "automated": {
              "datasetMetricConfigs": [
                  {
                      "taskType": "General",
                      "dataset": {
                          "name": "text_dataset",
                          "datasetLocation": {
                              "s3Uri": "s3://amzn-s3-demo-bucket/input/retrieve-and-generate/rng-eval-byoir.jsonl"
                          }
                      },
                      "metricNames": [
                          "Builtin.Correctness",
                          "Builtin.Completeness",
                          "Builtin.Helpfulness",
                          "Builtin.LogicalCoherence",
                          "Builtin.Faithfulness",
                          "Builtin.Harmfulness",
                          "Builtin.Stereotyping",
                          "Builtin.Refusal",
                          "Builtin.CitationCoverage",
                          "Builtin.CitationPrecision"
                      ]
                  }
              ],
              "evaluatorModelConfig": {
                  "bedrockEvaluatorModels": [
                      {
                          "modelIdentifier": "us.meta.llama3-1-70b-instruct-v1:0"
                      }
                  ]
              }
          }
      },
     "inferenceConfig": {
          "ragConfigs": [
              {
                  "knowledgeBaseConfig": {
                      "retrieveAndGenerateConfig": {
                          "type": "KNOWLEDGE_BASE",
                          "knowledgeBaseConfiguration": {
                              "knowledgeBaseId": "≪Your Knowledge Base ID>",
                              "modelArn": "mistral.mistral-large-2402-v1:0",
                              "generationConfiguration": {
                                  "promptTemplate": {
                                      "textPromptTemplate": "$search_results$ hello world template"
                                  }
                              },
                              "orchestrationConfiguration": {
                                  "queryTransformationConfiguration": {
                                      "type": "QUERY_DECOMPOSITION"
                                  }
                               }
                          }
                      }
                  }
              }
          ]
      },
      "outputDataConfig": {
          "s3Uri": "s3://amzn-s3-demo-bucket/output/"
      }
  }
  ```

**使用您自己的推論回應資料建立擷取並產生評估任務**
+ 使用範例 JSON 檔案執行下列 AWS CLI 命令。

  ```
  aws bedrock create-evaluation-job --cli-input-json file://my_eval_job.json
  ```

  ```
  {
      "jobName": "my_rag_eval",
      "roleArn": "arn:aws:iam::111122223333:role/service-role/Amazon-Bedrock-IAM-Role-Amazon-Bedrock-IAM-Role-20250218T063974",
      "applicationType": "RagEvaluation",
      "evaluationConfig": {
          "automated": {
              "datasetMetricConfigs": [
                  {
                      "taskType": "General",
                      "dataset": {
                          "name": "text_dataset",
                          "datasetLocation": {
                              "s3Uri": "s3://amzn-s3-demo-bucket/input/retrieve-and-generate/rng-eval-byoir.jsonl"
                          }
                      },
                      "metricNames": [
                          "Builtin.Correctness",
                          "Builtin.Completeness",
                          "Builtin.Helpfulness",
                          "Builtin.LogicalCoherence",
                          "Builtin.Faithfulness",
                          "Builtin.Harmfulness",
                          "Builtin.Stereotyping",
                          "Builtin.Refusal",
                          "Builtin.CitationCoverage",
                          "Builtin.CitationPrecision"
                      ]
                  }
              ],
              "evaluatorModelConfig": {
                  "bedrockEvaluatorModels": [
                      {
                          "modelIdentifier": "us.meta.llama3-1-70b-instruct-v1:0"
                      }
                  ]
              }
          }
      },
      "inferenceConfig": {
          "ragConfigs": [
              {
                  "precomputedRagSourceConfig": {
                      "retrieveAndGenerateSourceConfig": {
                          "ragSourceIdentifier": "my_rag_source"
                      }
                  }
              }
          ]
      },
      "outputDataConfig": {
          "s3Uri": "s3://amzn-s3-demo-bucket/output/"
      }
  }
  ```

------
#### [ SDK for Python ]

下列 Python 範例示範如何提出*擷取並產生* boto3 API 請求。

```
import boto3
client = boto3.client('bedrock')

job_response = client.create_evaluation_job(
    jobName="my_evaluation_job",
    jobDescription="two different task types",
    roleArn="arn:aws:iam::111122223333:role/role-name",
    applicationType="RagEvaluation",
    inferenceConfig={
        "ragConfigs": [
            {
                "knowledgeBaseConfig": {
                    "retrieveAndGenerateConfig": {
                        "type": "KNOWLEDGE_BASE",
                        "knowledgeBaseConfiguration": {
                            "knowledgeBaseId": "73SPNQM4CI",
                            "modelArn": "anthropic.claude-3-sonnet-20240229-v1:0",
                            "generationConfiguration": {
                                "promptTemplate": {
                                    "textPromptTemplate": "$search_results$ hello world template"
                                }
                            },
                             "retrievalConfiguration": {
                                 "vectorSearchConfiguration": {
                                     "numberOfResults": 10,
                                     "overrideSearchType": "HYBRID"
                                }
                             }
                        }
                    }
                }
            }
        ]
    },
    outputDataConfig={
        "s3Uri":"s3://amzn-s3-demo-bucket-model-evaluations/outputs/"
    },
    evaluationConfig={
        "automated": {
            "datasetMetricConfigs": [
                {
                    "taskType": "Summarization",
                    "dataset": {
                        "name": "RagDataset",
                        "datasetLocation": {
                            "s3Uri": "s3://amzn-s3-demo-bucket-input-data/data_3_rng.jsonl"
                        }
                    },
                    "metricNames": [
                        "Builtin.Faithfulness"
                    ]
                }
            ],
            "evaluatorModelConfig":
                {
                    "bedrockEvaluatorModels": [{
                        "modelIdentifier": "meta.llama3-1-70b-instruct-v1:0"
                    }]
                }
        }
    }
)

print(job_request)
```

------