Skip to main content
atoti_ai.AiConfig(
    *,
    connection: ConnectionConfig | None = None,
    chat: ChatConfig | None = None,
    chat_enabled: bool = True,
    disclaimer: str = 'AI can make mistakes, please double check response.',
    dynamic_tool_discovery: bool | None = None,
    max_attempts: int = 5,
    prompt: PromptConfig = PromptConfig(),
    auto_explain: AutoExplainConfig = AutoExplainConfig(),
    mcp: McpClientConfig | None = None,
    streaming: bool = False,
    thinking: bool = False,
)
Atoti Intelligence configuration. The default disclaimer:
Changing the disclaimer:
Opting out of dynamic_tool_discovery:
Disabling the chat endpoint:
Keeping more Auto-Explain analyses retrievable from the chat, for longer:
Streaming the answer as the model writes it:

Attributes

connection

The configuration of the connection to the LLM provider.

chat

The configuration of the LLM this session prompts. This is not chat_enabled: the LLM configured here serves every AI feature needing one, such as summarizing an atoti.Cube.auto_explain analysis.

chat_enabled

Whether this session serves the chat endpoint. This only has an impact if an LLM is configured (i.e. both connection and chat are not None).
  • True: the AI chat in Atoti UI is usable.
  • False: the AI chat in Atoti UI cannot be used and atoti.Session.chat is None, but the LLM stays enabled so auto_explain summaries are still generated.
Added in version 6.2.1.

disclaimer

The disclaimer displayed in Atoti UI next to AI-generated content.

dynamic_tool_discovery

Whether the chat sends the LLM only the tools matching each request.
  • True: the LLM calls a tool-search tool that queries a keyword index. It receives only the matching tools, which reduces prompt token usage and improves tool selection.
  • False: the whole tool set is sent on every request. A small tool set, where searching brings no benefit, is one reason to do so. Inspecting which tools the LLM can see is another.
  • None: the server enables this if the license includes Atoti Intelligence Essentials, and leaves it disabled otherwise.
Added in version 6.2.1.

max_attempts

How many times a call to the LLM is sent, retries included. A failed request is re-sent by the provider’s own client, backing off between attempts. This bounds that for whichever provider the session connects to, taking precedence over the provider’s own property. Set it to 1 to disable retries. Each attempt is bounded by the connection timeouts. Some providers have a dedicated option for this: * atoti_ai_amazon_bedrock.ConnectionConfig.timeout.
Added in version 6.2.1.

prompt

What one chat prompt may spend before the session gives up on it.
Added in version 6.2.1.

auto_explain

The configuration of atoti.Cube.auto_explain.
Added in version 6.2.1.

mcp

The configuration of the MCP servers to take additional tools from.
Added in version 6.2.1.

streaming

Whether the chat sends its answer as the model writes it, instead of in one piece. A streamed answer is delivered as AG-UI TEXT_MESSAGE_CHUNK events. This is the default of each run: an AG-UI request setting the streaming forwarded prop overrides it, either way.
  • True: a run streams its answer.
  • False: a run sends its answer once it ends.
The Atoti UI AI extension shipped with this version renders each chunk in place of the previous one instead of appending it. Keep this off for sessions served to Atoti UI.
Added in version 6.2.3.

thinking

Whether a streamed answer also carries the model’s reasoning trace. This only applies to a run that streams its answer, whether through streaming or through the streaming forwarded prop of its AG-UI request. Whether a trace exists at all depends on the LLM provider: OpenAI-family models stream one, Google models need thoughts to be requested, and Amazon Bedrock Converse reports none.
  • True: the reasoning trace is streamed ahead of the answer.
  • False: the server sends no reasoning trace.
Added in version 6.2.3.