API Reference#

Data Handling#

class llmSHAP.data_handler.DataHandler(data, permanent_keys=None, mask_token='')[source]#

Bases: object

Parameters:
  • data (DataMapping | str)

  • permanent_keys (Set[str] | Set[Index] | None)

  • mask_token (str)

get_data(indexes, *, mask=True, exclude_permanent_keys=False)[source]#

Return a dict view according to the supplied options.

Parameters:
  • indexes (int | Iterable[int])

  • mask (bool)

  • exclude_permanent_keys (bool)

Return type:

Dict[Any, Any]

get_feature_enumeration()[source]#
Return type:

Dict[int, str]

get_keys(*, exclude_permanent_keys=False)[source]#

List of indexes, optionally excluding permanent ones.

Parameters:

exclude_permanent_keys (bool)

Return type:

list[int]

image_list(indexes, *, exclude_permanent_keys=False)[source]#

Return a list of the available images at the given indexes.

Parameters:
  • indexes (int | Iterable[int])

  • exclude_permanent_keys (bool)

Return type:

list[Image]

remove(indexes, *, mask=True)[source]#

Return a copy where the chosen indexes are either masked (mask=True) or removed (mask=False). self.data is unchanged.

Parameters:
  • indexes (int | Iterable[int])

  • mask (bool)

Return type:

Dict[Any, Any]

remove_hard(indexes)[source]#

Delete the selected indexes in-place. Returns the live mapping.

Parameters:

indexes (int | Iterable[int])

Return type:

Dict[Any, Any]

to_string(indexes=None, *, mask=True, exclude_permanent_keys=False)[source]#

Join the chosen indexes into one space-separated string.

Parameters:
  • indexes (int | Iterable[int] | None)

  • mask (bool)

  • exclude_permanent_keys (bool)

Return type:

str

tool_list(indexes, *, exclude_permanent_keys=False)[source]#

Return a list of the available tools at the given indexes.

Parameters:
  • indexes (int | Iterable[int])

  • exclude_permanent_keys (bool)

Return type:

list[Any]

Prompt Codecs#

class llmSHAP.prompt_codec.BasicPromptCodec(system='')[source]#

Bases: PromptCodec

Parameters:

system (str)

build_prompt(data_handler, indexes)[source]#

(Encode) Build prompt to send to the model.

Parameters:
  • data_handler (DataHandler)

  • indexes (int | Iterable[int])

Return type:

list[dict[str, str]]

get_images(data_handler, indexes)[source]#

Retreive the available images at the given indexes. Defaults to an emty list.

Parameters:
  • data_handler (DataHandler)

  • indexes (int | Iterable[int])

Return type:

list[Any]

get_tools(data_handler, indexes)[source]#

Retreive the available tools at the given indexes. Defaults to an emty list.

Parameters:
  • data_handler (DataHandler)

  • indexes (int | Iterable[int])

Return type:

list[Any]

parse_generation(model_output)[source]#

(Decode) Parse model generation into a structured result.

Parameters:

model_output (str)

Return type:

Generation

class llmSHAP.prompt_codec.PromptCodec[source]#

Bases: ABC

abstractmethod build_prompt(data_handler, indexes)[source]#

(Encode) Build prompt to send to the model.

Parameters:
  • data_handler (DataHandler)

  • indexes (int | Iterable[int])

Return type:

list[dict[str, str]]

get_images(data_handler, indexes)[source]#

Retreive the available images at the given indexes. Defaults to an emty list.

Parameters:
  • data_handler (DataHandler)

  • indexes (int | Iterable[int])

Return type:

list[Any]

get_tools(data_handler, indexes)[source]#

Retreive the available tools at the given indexes. Defaults to an emty list.

Parameters:
  • data_handler (DataHandler)

  • indexes (int | Iterable[int])

Return type:

list[Any]

abstractmethod parse_generation(model_output)[source]#

(Decode) Parse model generation into a structured result.

Parameters:

model_output (str)

Return type:

Generation

Generations#

class llmSHAP.generation.Generation(output: str)[source]#

Bases: object

Parameters:

output (str)

output: str#

Value Functions#

class llmSHAP.value_functions.EmbeddingCosineSimilarity(model_name='sentence-transformers/all-MiniLM-L6-v2')[source]#

Bases: ValueFunction

class llmSHAP.value_functions.TFIDFCosineSimilarity[source]#

Bases: ValueFunction

class llmSHAP.value_functions.ValueFunction[source]#

Bases: ABC

Attribution Methods#

class llmSHAP.attribution_methods.attribution_function.AttributionFunction(model, data_handler, prompt_codec, use_cache=False, verbose=True, logging=False, log_filename='log', value_function=None)[source]#

Bases: object

Parameters:
class llmSHAP.attribution_methods.coalition_sampler.CoalitionSampler[source]#

Bases: ABC

class llmSHAP.attribution_methods.coalition_sampler.CounterfactualSampler[source]#

Bases: CoalitionSampler

class llmSHAP.attribution_methods.coalition_sampler.FullEnumerationSampler(num_players)[source]#

Bases: CoalitionSampler

Parameters:

num_players (int)

class llmSHAP.attribution_methods.coalition_sampler.RandomSampler(sampling_ratio, seed=None)[source]#

Bases: CoalitionSampler

Parameters:
  • sampling_ratio (float)

  • seed (int | None)

class llmSHAP.attribution_methods.coalition_sampler.SlidingWindowSampler(ordered_keys, w_size, stride=1)[source]#

Bases: CoalitionSampler

Parameters:
  • ordered_keys (List[Index])

  • w_size (int)

  • stride (int)

class llmSHAP.attribution_methods.shapley_attribution.ShapleyAttribution(model, data_handler, prompt_codec, sampler=None, use_cache=False, verbose=True, logging=False, num_threads=1, value_function=None)[source]#

Bases: AttributionFunction

Parameters:
attribution()[source]#

LLM Interfaces#

class llmSHAP.llm.llm_interface.LLMInterface[source]#

Bases: ABC

abstractmethod cleanup()[source]#
abstractmethod generate(prompt, tools=None, images=None)[source]#
Parameters:
  • prompt (list[dict[str, str]])

  • tools (list[Any] | None)

  • images (list[Any] | None)

Return type:

str

abstractmethod is_local()[source]#
Return type:

bool

abstractmethod name()[source]#
Return type:

str

class llmSHAP.llm.openai.OpenAIInterface(model_name, temperature=0.0, max_tokens=512, seed=None, reasoning=None)[source]#

Bases: LLMInterface

Parameters:
  • model_name (str)

  • temperature (float)

  • max_tokens (int)

  • seed (int | None)

  • reasoning (str | None)

cleanup()[source]#
generate(prompt, tools=None, images=None)[source]#
Parameters:
  • prompt (list[dict[str, str]])

  • tools (list[Any] | None)

  • images (list[Any] | None)

Return type:

str

is_local()[source]#
name()[source]#