> ## Documentation Index
> Fetch the complete documentation index at: https://docs.activeviam.com/llms.txt
> Use this file to discover all available pages before exploring further.

# atoti_ai.AutoExplain

<span id="atoti_ai.AutoExplain" />

Manage [Auto-Explain](https://docs.activeviam.com/atoti-intelligence/6.2/user-guide/auto-explain).

The summary is only generated when [`atoti_ai.AiConfig.connection`](./atoti_ai.AiConfig#atoti_ai.AiConfig.connection) and [`atoti_ai.AiConfig.chat`](./atoti_ai.AiConfig#atoti_ai.AiConfig.chat) are both not `None`:

```pycon theme={"languages":{"custom":["/engine/python-sdk/0.9/languages/pycon.tmLanguage.json"]}}
>>> summary_unavailable_message = (
...     "Summary generation is not available (no AI provider configured)"
... )
>>> summary_unavailable_message in _fetch_autoexplain_summary(session_without_chat)
True
>>> summary_unavailable_message in _fetch_autoexplain_summary(session_with_chat)
False
```

<Callout icon="link">
  **See also**:
  [`atoti.Cube.auto_explain`](./atoti.Cube.auto_explain#atoti.Cube.auto_explain).
</Callout>

|                                                                                                                                                                 |                                                                                                                                                                      |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [`excluded_hierarchies`](./atoti_ai.AutoExplain.excluded_hierarchies#atoti_ai.AutoExplain.excluded_hierarchies)                                                 | The hierarchies that are never explored.                                                                                                                             |
| [`excluded_hierarchies_per_measure`](./atoti_ai.AutoExplain.excluded_hierarchies_per_measure#atoti_ai.AutoExplain.excluded_hierarchies_per_measure)             | The per-measure overrides of [`excluded_hierarchies`](./atoti_ai.AutoExplain.excluded_hierarchies#atoti_ai.AutoExplain.excluded_hierarchies), keyed by measure name. |
| [`included_hierarchies`](./atoti_ai.AutoExplain.included_hierarchies#atoti_ai.AutoExplain.included_hierarchies)                                                 | The hierarchies exploration is restricted to.                                                                                                                        |
| [`included_hierarchies_per_measure`](./atoti_ai.AutoExplain.included_hierarchies_per_measure#atoti_ai.AutoExplain.included_hierarchies_per_measure)             | The per-measure overrides of [`included_hierarchies`](./atoti_ai.AutoExplain.included_hierarchies#atoti_ai.AutoExplain.included_hierarchies), keyed by measure name. |
| [`max_depth`](./atoti_ai.AutoExplain.max_depth#atoti_ai.AutoExplain.max_depth)                                                                                  | The maximum number of hierarchies the algorithm drills down through.                                                                                                 |
| [`max_distinct_hierarchies`](./atoti_ai.AutoExplain.max_distinct_hierarchies#atoti_ai.AutoExplain.max_distinct_hierarchies)                                     | The maximum number of distinct hierarchies reported across the explanation.                                                                                          |
| [`max_entropy`](./atoti_ai.AutoExplain.max_entropy#atoti_ai.AutoExplain.max_entropy)                                                                            | The maximum entropy above which a level is considered too uniform to explain.                                                                                        |
| [`max_members_per_level`](./atoti_ai.AutoExplain.max_members_per_level#atoti_ai.AutoExplain.max_members_per_level)                                              | The maximum number of members reported per level.                                                                                                                    |
| [`min_percentage_absolute_contribution`](./atoti_ai.AutoExplain.min_percentage_absolute_contribution#atoti_ai.AutoExplain.min_percentage_absolute_contribution) | The minimum absolute contribution (as a percentage) a member must reach to be reported.                                                                              |
| [`min_percentage_relative_contribution`](./atoti_ai.AutoExplain.min_percentage_relative_contribution#atoti_ai.AutoExplain.min_percentage_relative_contribution) | The minimum relative contribution (as a percentage) a member must reach to be reported.                                                                              |
| [`min_variation_threshold`](./atoti_ai.AutoExplain.min_variation_threshold#atoti_ai.AutoExplain.min_variation_threshold)                                        | The minimum variation a contributor must reach to be reported.                                                                                                       |
| [`opposite_contributors_included`](./atoti_ai.AutoExplain.opposite_contributors_included#atoti_ai.AutoExplain.opposite_contributors_included)                   | Whether contributors moving in the opposite direction of the overall variation are also reported.                                                                    |
