Skip to content

CompositeQueries

relationalai.agent.cortex.queries
CompositeQueries(*providers: Queries)

Routes queries by id across multiple Queries providers.

The reserved id "dynamic" always routes to a DynamicQueries provider, when one is registered. Other ids route to the first non-dynamic provider that exposes them.

Catalog-only deployments (CompositeQueries(catalog)) behave identically to passing the catalog directly to ToolRegistry.add(queries=...).

  • *providers

    (Queries, default: ()) - Providers to compose. At most one DynamicQueries is allowed. Catalog providers must not register a query named "dynamic".
CompositeQueries.get_available_queries() -> dict

Merge metadata from all registered providers.

Returns:

  • dict - The merged dict contains "queries" (union across providers), a concatenated "query_instructions", and "query_mode" ("dynamic" when a DynamicQueries is registered, else "catalog"). The dynamic case also surfaces "schema" and "spec_format".
CompositeQueries.explain(query_id: str) -> Optional[str]

Delegate explain to the provider that owns query_id.

Parameters:

  • query_id

    (str) - Identifier of the query to explain.

Returns:

  • str or None - The owning provider’s explanation, or None if no provider claims query_id.
CompositeQueries.execute(query_id: str, args: dict) -> Union[rai.Fragment, pandas.DataFrame]

Route execution to the provider that owns query_id.

Parameters:

  • query_id

    (str) - Identifier of the query to execute.
  • args

    (dict) - Arguments forwarded to the owning provider.

Returns:

  • relationalai.semantics.Fragment or pandas.DataFrame - Whatever the owning provider returns from its execute.

Raises:

  • KeyError - If no provider claims query_id.
CompositeQueriesQueriesabc.ABC