code: def run_rai_insights(
      validation_data,
      model,
      X_train,
      y_train,
      X_test,
      y_test,
      feature_names,
      categorical_features,
      model_task,
      filters=None,
      composite_filters=None,
      is_empty_validation_data=False,
  ):
      train = X_train.copy()
      train["target"] = y_train
      test = X_test.copy()
      test["target"] = y_test
      rai_insights = RAIInsights(
          model,
          train,
          test,
          "target",
          model_task,
          categorical_features=categorical_features,
      )
  
      filtered_data = rai_insights.get_filtered_test_data(
          filters, composite_filters
      )
  
      # validate there is some data selected for each of the filters
      if is_empty_validation_data:
          assert validation_data.shape[0] == 0
      else:
          assert validation_data.shape[0] > 0
      assert validation_data.equals(filtered_data)
  
imports: import numpy
  import pandas
  import pytest
  from tests.common_utils import create_iris_data
  from erroranalysis._internal.constants import ARG, COLUMN, METHOD, PRED_Y, ROW_INDEX, TRUE_Y
  from rai_test_utils.datasets.tabular import create_housing_data, create_simple_titanic_data
  from rai_test_utils.models.sklearn import create_sklearn_random_forest_regressor, create_sklearn_svm_classifier, create_titanic_pipeline
  from raiutils.cohort import CohortFilterMethods
  from raiutils.models import ModelTask
  from responsibleai.rai_insights import RAIInsights
label_desc: Use image node_id 3 for calling a global function with example usage: run_rai_insights(validation_data, model, X_train, y_train, X_test, y_test, feature_names, categorical_features, model_task, filters, composite_filters, is_empty_validation_data) without return types