DbtslLookup#

class lumen.ai.tools.DbtslLookup(environment_id: int, **params)#

DbtslLookup tool that creates a vector store of all available dbt semantic layers and responds with relevant metrics for user queries.


Parameters#

auth_token

type: str
default: None
The auth token for the dbt semantic layer client;if not provided will fetched from DBT_AUTH_TOKEN env var.

dimension_fetch_timeout

type: Number
default: 15
bounds: None
Maximum time in seconds to wait for a dimension values fetch operation.

enable_query_refinement

type: bool
default: True
Whether to enable query refinement for improving search results.

environment_id

type: int
default: None
bounds: None
The environment ID for the dbt semantic layer client.

host

type: str
default: 'semantic-layer.cloud.getdbt.com'
The host for the dbt semantic layer client.

max_concurrent

type: int
default: 5
bounds: None
Maximum number of concurrent metadata fetch operations.

max_refinement_iterations

type: int
default: 3
bounds: (1, 10)
Maximum number of refinement iterations to perform.

min_refinement_improvement

type: Number
default: 0.05
bounds: (0, 1)
Minimum improvement in similarity score required to keep refining.

min_similarity

type: Number
default: 0.1
bounds: None
The minimum similarity to include a document.

n

type: int
default: 4
bounds: (1, None)
The number of document results to return.

refinement_similarity_threshold

type: Number
default: 0.3
bounds: (0, 1)
Similarity threshold below which query refinement is triggered.

vector_store

type: lumen.ai.vector_store.VectorStore
default: None
Vector store object which is queried to provide additional contextbefore responding.


Methods#

async DbtslLookup.requirements(messages: list[Message]) list[str]#
async DbtslLookup.respond(messages: list[Message], **kwargs: dict[str, Any]) str#

Fetches metrics based on the user query, populates the DbtslMetaset, and returns formatted context.