資料分析
bsl-query-expert avatar

bsl-query-expert

透過自然語言查詢 BSL 語意模型,支援 group_by、aggregate、filter 與多維度數據分析。

簡介

bsl-query-expert 是一個專為 Boring Semantic Layer (BSL) 設計的軟體代理,這是一個基於 Ibis 的語意建模框架。它作為原始數據來源(如 DuckDB、Snowflake、BigQuery 和 PostgreSQL)與需要獲得洞察的終端使用者之間的分析橋樑。透過利用 BSL 的流暢 API,該代理自動化了發現模型架構、套用過濾器、執行複雜聚合以及視覺化結果的過程。它專為需要對結構化語意表進行即時分析,且不想手動編寫複雜 SQL 或 Ibis 程式碼的數據分析師、工程師和開發人員而設計。

  • 透過 list_models() 和 get_model(name) 執行語意模型探索,以對應欄位架構。

  • 支援進階數據處理操作,包含 group_by、aggregate、mutate 和 filter。

  • 實作了用於穩健數據發現的多跳查詢模式,確保在執行前驗證過濾值,以防止空值或不正確的結果。

  • 處理複雜的分析任務,例如總百分比計算、視窗函數(累計總和、移動平均、排名)以及類別分桶。

  • 使用自訂截斷方法(年、季、月、週、日、時、分、秒)管理時間序列數據。

  • 提供與 Altair、Plotly 和 Plotext 等視覺化後端的無縫整合,實現自動圖表渲染。

  • 遵循嚴格的「探索優先」工作流程以確保準確性,並在遇到語法錯誤時主動檢索查詢方法的說明文件。

  • 在進行任何 query_model() 操作之前,務必使用 get_model() 發現可用的模型欄位。

  • 使用 query_model() 函數時應搭配特定參數:對於探索性查詢,請將 get_chart 設為 false 以避免不必要的渲染;對於最終呈現結果,則設為 true。

  • 在處理類別或地理位置的過濾器時,請先執行計數或列表操作以確認確切的數據值,避免對 ID 或代碼進行假設。

  • 使用複數語法 ibis.cases() 進行條件邏輯處理(例如分箱或自訂標籤)。

  • 代理受限於底層語意模型定義;如果 BSL 架構中未定義某個方法或欄位,則無法進行推論。

  • 若有複雜分析需求,請參考內部說明文件主題(如視窗函數、索引或巢狀小計),以維持數據轉換的最佳實踐。

倉庫統計

Star 數
436
Fork 數
39
Open Issue 數
10
主要語言
Python
預設分支
main
同步狀態
閒置
最近同步時間
2026年4月29日 上午07:14
在 GitHub 查看