Atoti Intelligence Essentials
This is part of the Atoti Intelligence Essentials offer.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 toapplication.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 theXMLA_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.How to turn Visualize This off
An application can serve Atoti Intelligence without serving chat. Settingatoti.ai.chat.enabled to
false, available from Atoti 6.2.1, registers no chat endpoint:
404 Not Found. The /versions
endpoint stops advertising the activeviam/ai/chat namespace, so service discovery no longer offers
chat. The Atoti UI reports chat as absent, and shows no chat panel. The activeviam/ai namespace
stays advertised as long as Auto-Explain is enabled. Every other Atoti Intelligence feature keeps
working, Auto-Explain and the MCP server included. The setting defaults to true.
Turning chat off differs from configuring no LLM. An application with no LLM keeps advertising the
activeviam/ai/chat namespace, and refuses each call to it with 404 Not Found. Chat stays
discoverable there, and starts answering as soon as an LLM is configured.AiConfig.chat_enabled
to False:
Session.chat
reports chat as absent.
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, available from Atoti 6.2.0, 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 under the Atoti Intelligence Essentials license. Without that license it stays off.Dynamic tool discovery applies to both SDKs, and both can turn it off. Beyond the opt-out, the
settings described in this section can only be configured through the Atoti Java SDK.
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, setspring.ai.chat.client.tool-search-advisor.enabled to false:
AiConfig.dynamic_tool_discovery
to False:
Atoti defaults
Dynamic tool discovery is Spring AI’s tool search advisor, configured under thespring.ai.chat.client.tool-search-advisor prefix. Atoti overrides three of its properties:
Every other setting — result limits, session eviction, the tool-search instructions given to the
model — keeps its Spring AI default. See the
Spring AI documentation
for the full list of properties and their behavior.
Atoti does not ship
spring-ai-vector-store. Add that dependency and a VectorStore bean to the
application before setting tool-index-type to vector.Atoti Python SDK
The chat is available on the session throughSession.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 serve no chat
SetAiConfig.chat_enabled
to False to register no chat endpoint, as described in
How to turn Visualize This off.
How to opt out of dynamic tool discovery
Dynamic tool discovery is on by default. SetAiConfig.dynamic_tool_discovery
to False to send the whole tool set to the model on every request instead: