

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

# 调用端点
<a name="clarify-online-explainability-invoke-endpoint"></a>

终端节点运行后，使用 SageMaker AI 运行时服务中的 A [InvokeEndpoint](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_runtime_InvokeEndpoint.html)I 运行时 API 向终端节点发送请求或调用该终端节点。 SageMaker 作为响应，Clarify 解释员将这些请求作为可解释性请求处理 SageMaker 。

**注意**  
要调用端点，请选择以下选项之一：  
有关使用 Boto3 或调用终端节点 AWS CLI 的说明，请参阅。[调用模型进行实时推理](realtime-endpoints-test-endpoints.md)
要使用 SageMaker 适用于 Python 的开发工具包调用端点，请参阅[预测器](https://sagemaker.readthedocs.io/en/stable/api/inference/predictors.html) API。

## 请求
<a name="clarify-online-explainability-request"></a>

`InvokeEndpoint` API 有一个可选参数 `EnableExplanations`，该参数映射到 HTTP 标头 `X-Amzn-SageMaker-Enable-Explanations`。如果提供了此参数，则将覆盖 `ClarifyExplainerConfig` 的 `EnableExplanations` 参数。

**注意**  
`InvokeEndpoint` API 的 `ContentType` 和 `Accept` 参数是必需的。支持的格式包括 MIME 类型 `text/csv` 和 `application/jsonlines`。

使用 `sagemaker_runtime_client` 向端点发送请求，如下所示：

```
response = sagemaker_runtime_client.invoke_endpoint(
    EndpointName='name-of-your-endpoint',
    EnableExplanations='`true`',
    ContentType='text/csv',
    Accept='text/csv',
    Body='1,2,3,4',  # single record (of four numerical features)
)
```

对于多模型终端节点，请在上一个示例请求中传递一个附加的 `TargetModel` 参数，指定将哪个模型作为端点目标。多模型端点会根据需要动态地加载目标模型。有关多模型终端节点的更多信息，请参阅 [多模型端点](multi-model-endpoints.md)。有关如何从单个[端点设置和调用多个目标模型的示例，请参阅 Clarify Online Explainability on Multi-Model Endpoint 示例笔记本](https://github.com/aws/amazon-sagemaker-examples/blob/main/sagemaker-clarify/online_explainability/tabular_multi_model_endpoint/multi_model_xgboost_with_online_explainability.ipynb)。SageMaker 

## 响应
<a name="clarify-online-explainability-response"></a>

如果使用 `ExplainerConfig` 创建端点，则使用新的响应架构。这个新的架构与缺少提供的 `ExplainerConfig` 参数的端点不同，并且不兼容。

响应的 MIME 类型为 `application/json`，响应负载可以从 UTF-8 字节解码为 JSON 对象。此 JSON 对象的成员如下所示：
+ `version`：字符串格式的响应架构版本。例如 `1.0`。
+ `predictions`：该请求做出的预测如下：
  + `content_type`：预测的 MIME 类型，指的是模型容器响应的 `ContentType`。
  + `data`：作为请求模型容器响应的负载进行传递的预测数据字符串。
+ `label_headers`：`LabelHeaders` 参数中的标签标头。这在解释器配置或模型容器输出中提供。
+ `explanations`：请求负载中提供的解释。如果没有解释任何记录，则此成员返回空对象 `{}`。
+ 
  + `kernel_shap`：一个键，该键引用请求中每个记录的 Kernel SHAP 解释数组。如果没有对某个记录做出解释，则相应的解释是 `null`。

`kernel_shap` 元素具有以下成员：
+ `feature_header`：解释器配置 `ExplainerConfig` 中的 `FeatureHeaders` 参数提供的特征的标头名称。
+ `feature_type`：由解释器推断的特征类型，或者在 `ExplainerConfig` 中的 `FeatureTypes` 参数提供的特征类型。此元素仅适用于 NLP 解释能力问题。
+ `attributions`：一个归因对象数组。文本特征可以有多个归因对象，每个对象用于一个单元。归因对象具有以下成员：
  + `attribution`：为每个分类给出的概率值列表。
  + `description`：文本单元的描述，仅适用于 NLP 解释能力问题。
    + `partial_text`：解释器做出解释的文本部分。
    + `start_idx`：从零开始的索引，用于标识部分文本片段开头的数组位置。