bsl-model-builder
用于建立与管理 BSL (Boring Semantic Layer) 模型的专家工具,支持维度、指标、关联与 YAML 配置,并由 Ibis 强力驱动。
简介
BSL Model Builder 是一个专业的代理技能,旨在通过 Boring Semantic Layer 将原始数据库表转换为具备商业意义的语义模型。此工具建立在 Ibis 框架之上,提供高效且原生的 Python 抽象层,让开发人员与数据分析师能以程序化或 YAML 配置的方式定义可重复使用的数据模型。它非常适合需要标准化指标、简化 BI 报表或为大型语言模型 (LLM) 与自动化代理提供结构化数据接口的组织。通过将复杂的 SQL 操作转换为流畅的面向对象 API,此技能可帮助用户轻松定义类别维度、量化指标与复杂的关联关系。
-
使用 Ibis 驱动的表达式(包含 Lambda 函数与 unbound 语法)定义粒度明确的语义表。
-
配置基于时间的维度,支持自动化截断功能,包含年、季、月、周与日等时间区间。
-
实现进阶的聚合逻辑,包括复杂的比率计算、使用 all() 引用的总计百分比分析,以及自定义指标说明。
-
通过灵活的关联类型(join_many、join_one 与 cross join)支持复杂的关系模型,并支持基于视图 (view) 的别名处理。
-
通过声明式的 YAML 架构定义,促进生产环境等级的部署,确保版本控制与配置的一致性。
-
无缝整合 Ibis 支持的多种数据库后端,例如 DuckDB、Snowflake、BigQuery 与 PostgreSQL。
-
预期的输入为原始 Ibis 数据表对象或 YAML 配置文件路径,输出则为已实例化的 SemanticTable 对象或可供执行的复杂查询表达式。
-
最佳实践:务必在维度与指标定义中加入人类可读的说明,以提升模型的可搜索性与 AI 的理解力。
-
实际限制:当对同一张表进行多次关联时,请务必使用 .view() 方法以避免字段名称冲突。
-
若为生产环境负载,建议优先使用 YAML 文件将模型定义与操作代码分离,以利维护与团队协作。
-
工具运行需要安装 boring-semantic-layer 包的 Python 环境,针对进阶 LLM 整合建议安装 agent 或 mcp 额外依赖包。
仓库统计
- Star 数
- 436
- Fork 数
- 39
- Open Issue 数
- 10
- 主要语言
- Python
- 默认分支
- main
- 同步状态
- 空闲
- 最近同步时间
- 2026年4月28日 12:49