atoti_ai_amazon_bedrock.BedrockConnectionConfig#

final class atoti_ai_amazon_bedrock.BedrockConnectionConfig#

Configuration for connecting to Amazon Bedrock.

Warning

This feature is experimental, its key is "ai".

Example

>>> import httpx
>>> import os
>>> from atoti_ai_amazon_bedrock import (
...     BedrockConnectionConfig,
...     BedrockChatOptions,
... )

Creating the session config and start the session:

>>> with tt.experimental({"ai"}):
...     connection_config = BedrockConnectionConfig(
...         aws_access_key=os.environ["AWS_ACCESS_KEY_ID"],
...         aws_secret_key=os.environ["AWS_SECRET_ACCESS_KEY"],
...         aws_region="eu-west-3",
...     )
...     chat_options = BedrockChatOptions(
...         model="eu.mistral.pixtral-large-2502-v1:0",
...     )
...     ai_config = tt.AiConfig(connection=connection_config, chat=chat_options)
>>> session_config = tt.SessionConfig(
...     ai=ai_config, security=tt.SecurityConfig()
... )
>>> session = tt.Session.start(session_config)

Setting up security:

>>> auth = ("admin", "password")
>>> session.security.basic_authentication.credentials[auth[0]] = auth[1]
>>> session.security.individual_roles[auth[0]] = {"ROLE_USER"}

The session exposes an MCP server:

>>> tools = fetch_mcp_tools(session.url, auth)
>>> "runMdxQuery" in {tool.name for tool in tools}
True

Creating a cube:

>>> table = session.read_csv(
...     TEST_RESOURCES_PATH / "csv" / "test.csv",
...     keys={"f1"},
...     default_values={"f3": 0.0},
...     table_name="Test",
... )
>>> cube = session.create_cube(table)

Calling Auto-explain:

>>> path, _ = session.client.get_path_and_version_id(
...     "activeviam/ai", allowed_version_ids=["1"]
... )
>>> body = dict(
...     cubeName=cube.name,
...     measureToCompare="f3.SUM",
...     membersToCompare=["a", "b"],
...     levelInformationToCompare="f2@f2@Test",
...     identifiedMembersInformation=[],
...     hierarchyInformationToExplore=[],
...     summary=True,
...     uiPage=False,
... )
>>> response = session.client.http_client.post(
...     f"{path}/autoexplain", json=body
... )
>>> response.status_code
200
>>> len(response.text) > 0
True

See also

The other ConnectionConfig implementations.

async_read_timeout: timedelta | None = None#

Timeout for reading asynchronous responses.

aws_access_key: str | None = None#
aws_region: str | None = None#
aws_secret_key: str | None = None#
aws_session_token: str | None = None#

Optional AWS session token for temporary credentials.

connection_acquisition_timeout: timedelta | None = None#

Timeout for acquiring a connection from the pool.

connection_timeout: timedelta | None = None#

Timeout for establishing connections to Bedrock.

timeout: timedelta | None = None#

Timeout for Bedrock API requests.