将 datacapture 编码数据更改为 csv

Change datacapture encoding data to csv

我正在使用 sagemaker 模型监视器。

捕获数据时,输出如下json文件。

{"captureData":{"endpointInput":{"observedContentType":"text/csv","mode":"INPUT","data":"MSwwLjUzLDAuNDIsMC4xMzUsMC42NzcsMC4yNTY1LDAuMTQxNSwwLjIx","encoding":"BASE64"},"endpointOutput":{"observedContentType":"text/csv; charset=utf-8","mode":"OUTPUT","data":"MTEuNjQzNDU1NTA1MzcxMDk0","encoding":"BASE64"}},"eventMetadata":{"eventId":"33404924-c0d4-4044-9dc2-1e1f5575cb0a","inferenceTime":"2020-06-04T05:45:45Z"},"eventVersion":"0"}

我希望编码为 csv,但它以某种方式输出 base64。
我们何时何地更改编码设置?
是在调用端点期间吗?或在进行端点配置时设置。
我找了一些文件,但没找到。

我刚遇到同样的问题!似乎您需要指定 CaptureContentTypeHeader 参数来告诉 SageMaker 将哪种内容类型 headers 视为 CSV(或 JSON),而不是默认的 base64 编码负载!

例如将以下内容添加到您的 CreateEndpointConfig 调用或 boto3/sagemaker SDK 等效项中应该可以修复它:

{
   "DataCaptureConfig": { 
      "CaptureContentTypeHeader": { 
         "CsvContentTypes": [ "text/csv" ]
      },
   }
}

我猜这是为了 non-standard Content-Type headers?提供一层配置来解析例如:

  • application/x-mycoolmodel -> JSON,对比
  • application/x-secretsauce -> BASE64