def create_clarify_xai_job()

in code/workflow/implementations/autopilot/bp_xai_analysis_stage.py [0:0]


def create_clarify_xai_job(event) :
    
    role = event["Input"]["Payload"]["security-config"]["iam_role"]
    data_params = event["Input"]["Payload"]["data-config"]
    ws_params = event["Input"]["Payload"]["workspace-config"]
    model_params = event["Input"]["Payload"]["model-config"]
    automl_params = event["Input"]["Payload"]["automl-config"]
    xai_params = event["Input"]["Payload"]["xai-config"]
    
    session = Session()
    clarify_processor = clarify.SageMakerClarifyProcessor(role=role,
                                                        instance_count=xai_params["instance_count"],
                                                        instance_type=xai_params["instance_type"],
                                                        sagemaker_session=session)
                                                          
    output_uri = "s3://{}/{}/{}".format(ws_params["s3_bucket"],
                                        ws_params["s3_prefix"],
                                        xai_params["output_prefix"])
    
    shap_params = xai_params["shap-config"]
    num_samples = shap_params["num_samples"]
    df = get_samples(automl_params["data_uri"],shap_params["num_samples"])
    
    samples = df.iloc[:,:-1].values.tolist()
    columns = df.columns.to_list()
    
    shap_config = clarify.SHAPConfig(baseline=samples,
                                    num_samples=num_samples,
                                    agg_method=shap_params["agg_method"])
    
    data_config = clarify.DataConfig(s3_data_input_path=automl_params["data_uri"], 
                                    s3_output_path=output_uri,
                                    label=automl_params["target_name"],
                                    headers=columns,
                                    dataset_type='text/csv')
        
    model_config = clarify.ModelConfig(model_name=model_params["model_name"],
                                    instance_type=model_params["instance_type"],
                                    instance_count=model_params["instance_count"],
                                    content_type='text/csv')
                                        
    clarify_processor.run_explainability(job_name=xai_params["job_name"],
                                    data_config=data_config,
                                    model_config=model_config,
                                    explainability_config=shap_config,
                                    wait=False,
                                    logs=False)