Skip to main content

Atoti Intelligence Essentials

This is part of the Atoti Intelligence Essentials offer.
Providing context about your cubes improves Visualize This responses: the more the LLM knows about the business meaning of cubes, dimensions, hierarchies, levels, and measures, the more relevant the visualizations it produces. Configuration is optional but recommended.

Prerequisites

Visualize This must be enabled before adding configuration. See Set up Visualize This in Java or Set up Visualize This in Python for setup instructions.

Atoti Java SDK

Add Visualize This configuration to the application configuration file. Add the following to application.yaml:

Configuration parameters

The following table describes each configuration parameter:

Alternative: XMLA_DESCRIPTION property

Descriptions for dimensions, hierarchies, and levels can also be sourced from the XMLA_DESCRIPTION property set directly on the OLAP element schema definition. When this property is present on an element, Visualize This reads it as the element’s description. This is useful when descriptions are already defined in the cube schema, and you want to avoid duplicating them in the application configuration file. If both XMLA_DESCRIPTION and the application configuration file provide a description for the same element, the two values are concatenated.
The XMLA_DESCRIPTION property applies to dimensions, hierarchies, levels, and measures only. Cubes and measure folders must be described through the application configuration file.

Partial configuration

Configuration does not require descriptions for all elements. Provide descriptions only for elements that need additional context.

Dynamic tool discovery

Visualize This can send the LLM every available tool on each request. Alternatively, it can send only the tools that match the current request. Dynamic tool discovery is the second mode: the model calls a tool search tool that queries a keyword index and receives only the matching tools. This reduces prompt token usage and improves tool selection. Atoti enables dynamic tool discovery by default.
Dynamic tool discovery applies to both SDKs, and both can turn it off.

How to opt out

Turning dynamic tool discovery off sends the whole tool set to the model on every request instead. This restores the behavior Atoti used before dynamic tool discovery existed. A small tool set, where search adds no benefit, is one reason to turn it off. Debugging which tools the model can see is another. In the Atoti Java SDK, set spring.ai.chat.client.tool-search-advisor.enabled to false:
In the Atoti Python SDK, set AiConfig.dynamic_tool_discovery to False:

Atoti Python SDK

The chat is available on the session through Session.chat. Its system_prompt is a custom addition to Atoti’s built-in system prompt: it is empty by default, and any value you set is appended to the built-in prompt to give the LLM extra context about your cubes. Reading it queries the server; assigning it takes effect on the next chat run and requires the ROLE_ADMIN role.
The system prompt is global: it applies to every request rather than to a specific cube (the assistant infers which cube a request targets). Use it for overall guidance.To give the assistant more information about a specific cube, set descriptions on its measures and hierarchies — for example cube.measures["Revenue.SUM"].description and cube.hierarchies["Product"].description. The assistant reads these descriptions through its tools. The Java SDK additionally accepts cube, dimension, level, and measure-folder descriptions through application.yaml.

How to opt out of dynamic tool discovery

Dynamic tool discovery is on by default. Turn it off with AiConfig.dynamic_tool_discovery, as described in How to opt out.