class_docstr: A GP using a Structural Additive Contextual(SAC) kernel.
docstr: Construct `Model` keyword arguments from a dict of `SupervisedDataset`.
  
  Args:
      training_data: A `SupervisedDataset` containing the training data.
      decomposition: Dictionary of context names and their indexes of the
          corresponding active context parameters.
docstr_tok: ["Construct","`","Model","`","keyword","arguments","from","a","dict","of","`","SupervisedDataset","`",".","Args",":","training_data",":","A","`","SupervisedDataset","`","containing","the","training","data",".","decomposition",":","Dictionary","of","context","names","and","their","indexes","of","the","corresponding","active","context","parameters","."]
code: def construct_inputs(
      cls,
      training_data: SupervisedDataset,
      decomposition: Dict[str, List[int]],
      **kwargs: Any,
  ) -> Dict[str, Any]:
      r"""Construct `Model` keyword arguments from a dict of `SupervisedDataset`.
  
      Args:
          training_data: A `SupervisedDataset` containing the training data.
          decomposition: Dictionary of context names and their indexes of the
              corresponding active context parameters.
      """
      base_inputs = super().construct_inputs(
          training_data=training_data, **kwargs
      )
      return {
          **base_inputs,
          "decomposition": decomposition,
      }
  
file_path: botorch/botorch/models/contextual.py
imports: from typing import Any, Dict, List, Optional
  from botorch.models.gp_regression import SingleTaskGP
  from botorch.models.kernels.contextual_lcea import LCEAKernel
  from botorch.models.kernels.contextual_sac import SACKernel
  from botorch.utils.datasets import SupervisedDataset
  from torch import Tensor
label_desc: Use image node_id 2 for calling the SACGP obj's underlying member method code with example usage: obj.construct_inputs(cls, training_data, decomposition) and returns: dict