

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 创建仅限检索的 RAG 评估作业
<a name="knowledge-base-evaluation-create-ro"></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 评测，您既可以评测 Amazon Bedrock 知识库的性能，又可以通过在[提示数据集](knowledge-base-evaluation-prompt.md)内提供自己的推理响应数据来评测其他 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/retrieval-only/retrieve-eval-byoir.jsonl"
                          }
                      },
                      "metricNames": [
                          "Builtin.ContextCoverage",
                          "Builtin.ContextRelevance"
                      ]
                  }
              ],
              "evaluatorModelConfig": {
                  "bedrockEvaluatorModels": [
                      {
                          "modelIdentifier": "us.meta.llama3-1-70b-instruct-v1:0"
                      }
                  ]
              }
          }
      },
     "inferenceConfig": {
          "ragConfigs": [
              {
                  "knowledgeBaseConfig": {
                      "retrieveConfig": {
                          "knowledgeBaseId": "{{your-knowledge-base-id}}",
                          "knowledgeBaseRetrievalConfiguration": {
                              "vectorSearchConfiguration": {
                                  "numberOfResults": 3
                              }
                          }
                      }
                  }
              }
          ]
      },
      "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/retrieval-only/retrieve-eval-byoir.jsonl"
                          }
                      },
                      "metricNames": [
                          "Builtin.ContextCoverage",
                          "Builtin.ContextRelevance"
                      ]
                  }
              ],
              "evaluatorModelConfig": {
                  "bedrockEvaluatorModels": [
                      {
                          "modelIdentifier": "us.meta.llama3-1-70b-instruct-v1:0"
                      }
                  ]
              }
          }
      },
      "inferenceConfig": {
          "ragConfigs": [
              {
                  "precomputedRagSourceConfig": {
                      "retrieveSourceConfig": {
                          "ragSourceIdentifier": {{"my_rag_source"}}
                      }
                  }
              }
          ]
      },
      "outputDataConfig": {
          "s3Uri": "s3://amzn-s3-demo-bucket/output/"
      }
  }
  ```

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

以下 python 示例演示了如何使用要了解有关使用 Boto3 创建评估作业的更多信息，请参阅 Boto3 文档中的 “ 适用于 Python (Boto3) 的 AWS SDK 要了解有关使用 Boto3 创建评估任务的更多信息”，为 Amazon Bedrock 知识库创建仅限检索的作业。[https://boto3.amazonaws.com/v1/documentation/api/1.35.6/reference/services/bedrock/client/create_evaluation_job.html](https://boto3.amazonaws.com/v1/documentation/api/1.35.6/reference/services/bedrock/client/create_evaluation_job.html)

```
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/service-role/Amazon-Bedrock-IAM-RoleAmazon-Bedrock-IAM-Role",
    applicationType="RagEvaluation",
    inferenceConfig={
        "ragConfigs": [
            {
                "knowledgeBaseConfig": {
                    "retrieveConfig": {
                        "knowledgeBaseId": "your-knowledge-base-id",
                        "knowledgeBaseRetrievalConfiguration": {
                            "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.ContextCoverage"
                    ]
                }
            ],
            "evaluatorModelConfig":
                {
                    "bedrockEvaluatorModels": [{
                        "modelIdentifier": "meta.llama3-1-70b-instruct-v1:0"
                    }]
                }
        }
    }
)

print(job_request)
```

------