Intugle MCP Server
官方使用資料工程代理自動生成語意模型,並按需建立資料產品
文件
用於自動化資料智慧的 GenAI 驅動工具組。
將零散的資料轉換為互聯的語意資料模型
概述
Intugle 的 GenAI 驅動開源 Python 函式庫,能在您現有的資料系統之上建立語意資料模型。其核心功能是發掘資料資產之間有意義的連結和關係,並透過資料剖析、分類和業務詞彙表來豐富這些資產。有了這個互聯的知識層,您就能啟用語意搜尋並自動生成查詢,以建立統一的資料產品,讓資料整合與探索變得更快速、更精確,並大幅減少人工操作。
適合哪些人使用?
- 資料工程師與架構師 經常花費數週時間手動剖析、分類和串聯零散的資料資產。透過 Intugle,他們可以端到端地自動化這個流程,發掘有意義的連結和關係,立即生成一個互聯的語意層。
- 資料分析師與科學家 在開始真正的分析之前,往往要花費無數小時在資料整備和預處理上。Intugle 透過提供情境智慧,自動生成 SQL 和可重複使用的資料產品,並以關係和業務含義加以豐富,從而加速這個過程。
- 業務分析師與決策者 常因依賴技術團隊提供答案而進度緩慢。Intugle 透過啟用自然語言查詢和語意搜尋,消除了這個瓶頸,讓他們能按需獲取可信的洞察。
功能特色
- 語意資料模型 - 將原始、零散的資料集轉換為一個智慧的語意圖譜,捕捉實體、關係和情境——這是實現互聯智慧的基礎。
- 業務詞彙表與語意搜尋: 自動生成業務詞彙表,並啟用能理解含義而非僅匹配關鍵字的搜尋——讓資料對技術和業務使用者都更容易存取。
- 資料產品 - 即時生成富含情境的 SQL 和可重複使用的資料產品,消除手動資料管線,加速從資料到洞察的過程。
- 概念搜尋 - 從自然語言查詢生成資料產品計畫,彌合業務問題與可執行的資料產品定義之間的鴻溝。詳情請參閱文件。
支援的整合
| 類別 | 整合 |
|---|---|
| 資料倉儲 | Snowflake, Databricks |
| 資料庫 | SQLite, PostgreSQL, SQL Server, MySQL |
| 本地端 | Pandas, DuckDB (CSV, Parquet, Excel) |
Streamlit 應用程式
intugle 函式庫包含一個 Streamlit 應用程式,提供用於建立和視覺化語意資料模型的互動式網頁介面。
https://github.com/user-attachments/assets/402c3f3d-baf3-4ece-ba55-4e06437defc5
要使用 Streamlit 應用程式,請安裝包含 streamlit 額外套件的 intugle:
pip install intugle[streamlit]
您可以使用 intugle-mcp 指令或 uvx 來啟動 Streamlit 應用程式:
intugle-streamlit
# Or using uvx
uvx --from intugle[streamlit] intugle-streamlit
在您的終端機中開啟提供的網址(通常是 http://localhost:8501)即可存取應用程式。更多詳細資訊,請參閱 Streamlit 應用程式文件。
若要在 Google Colab 等雲端環境中執行應用程式,請參考我們的 Streamlit 快速入門筆記本。
入門指南
安裝
對於 Windows 和 Linux,您可以遵循以下步驟。對於 macOS,請參閱下方 macOS 章節中的額外步驟。
安裝前,建議先建立一個虛擬環境:
python -m venv .venv
source .venv/bin/activate
然後,安裝套件:
pip install intugle
macOS
對於 macOS 使用者,您可能需要安裝 libomp 函式庫:
brew install libomp
如果您是使用 python.org 的官方安裝程式來安裝 Python,您可能還需要在終端機中執行以下指令來安裝 SSL 憑證。請將 3.XX 替換為您特定的 Python 版本。如果您是使用 Homebrew 安裝 Python,則不需要此步驟。
/Applications/Python\ 3.XX/Install\ Certificates.command
配置
在執行專案之前,您需要配置一個 LLM。這用於生成業務詞彙表和預測資料表之間的連結等任務。
您可以透過設定以下環境變數來配置 LLM:
LLM_PROVIDER:要使用的 LLM 提供者和模型(例如openai:gpt-3.5-turbo),遵循 LangChain 的慣例API_KEY:您的 LLM 提供者的 API 金鑰。確切的變數名稱可能因提供者而異。
以下是在您的環境中設定這些變數的範例:
export LLM_PROVIDER="openai:gpt-3.5-turbo"
export OPENAI_API_KEY="your-openai-api-key"
快速入門
如需詳細、實作的專案介紹,請參閱我們的快速入門筆記本:
| 領域 | 筆記本 | 在 Colab 中開啟 |
|---|---|---|
| 醫療保健 | quickstart_healthcare.ipynb | |
| 科技製造業 | quickstart_tech_manufacturing.ipynb | |
| 快速消費品 (FMCG) | quickstart_fmcg.ipynb | |
| 體育媒體 | quickstart_sports_media.ipynb | |
| Databricks Unity Catalog [醫療保健] | quickstart_healthcare_databricks.ipynb | 僅限 Databricks 筆記本 |
| Snowflake Horizon Catalog [快速消費品] | quickstart_fmcg_snowflake.ipynb | 僅限 Snowflake 筆記本 |
| 原生 Snowflake 搭配 Cortex Analyst [科技製造業] | quickstart_native_snowflake.ipynb | |
| 原生 Databricks 搭配 AI/BI Genie [科技製造業] | quickstart_native_databricks.ipynb | |
| Streamlit 應用程式 | quickstart_streamlit.ipynb | |
| 概念搜尋 | quickstart_conceptual_search.ipynb | |
| 複合關係預測 | quickstart_basketball_composite_links.ipynb |
這些資料集將引導您完成以下步驟:
- 生成語意模型 → 統一的層,用以轉換零散的資料集,為互聯智慧建立基礎。
- 1.1 剖析和分類資料 → 分析您的資料來源,以了解其結構、資料型態和其他特徵。
- 1.2 發掘資料之間的連結和關係 → 揭示跨零散資料表之間有意義的連結(主鍵和外鍵),包括複合鍵。
- 1.3 生成業務詞彙表 → 建立業務友善的術語,並使用它們來查詢帶有情境的資料。
- 1.4 啟用語意搜尋 → 能理解含義而非僅匹配關鍵字的智慧搜尋——讓資料對技術和業務使用者都更容易存取。
- 1.5 視覺化語意模型→ 以 YAML 檔案的形式存取語意層的豐富中繼資料,並以圖形形式進行視覺化。
- 建立統一的資料產品 → 只需挑選跨資料表的屬性,讓工具組使用語意層自動生成包含所有必要連接、轉換和聚合的查詢。執行這些查詢後,即可產生可重複使用的資料產品。
文件
如需更詳細的資訊、進階用法和教學,請參閱我們的完整文件網站。
用法
此專案的核心工作流程包括使用 SemanticModel 建立語意層,然後使用 DataProduct 從該層生成資料產品。
from intugle import SemanticModel
# Define your datasets
datasets = {
"allergies": {"path": "path/to/allergies.csv", "type": "csv"},
"patients": {"path": "path/to/patients.csv", "type": "csv"},
"claims": {"path": "path/to/claims.csv", "type": "csv"},
# ... add other datasets
}
# Build the semantic model
sm = SemanticModel(datasets, domain="Healthcare")
sm.build()
# Access the profiling results
print(sm.profiling_df.head())
# Access the discovered links
print(sm.links_df)
如需詳細的程式碼範例和完整的逐步解說,請參閱我們的快速入門筆記本。
資料產品
一旦語意模型建立完成,您就可以使用 DataProduct 類別從語意層生成統一的資料產品。
from intugle import DataProduct
# Define an ETL model
etl = {
"name": "top_patients_by_claim_count",
"fields": [
{
"id": "patients.first",
"name": "first_name",
},
{
"id": "patients.last",
"name": "last_name",
},
{
"id": "claims.id",
"name": "number_of_claims",
"category": "measure",
"measure_func": "count"
}
],
"filter": {
"sort_by": [
{
"id": "claims.id",
"alias": "number_of_claims",
"direction": "desc"
}
],
"limit": 10
}
}
# Create a DataProduct and build it
dp = DataProduct()
data_product = dp.build(etl)
# View the data product as a DataFrame
print(data_product.to_df())
語意搜尋
語意搜尋功能可讓您使用自然語言搜尋資料集中的欄位。它建立在 Qdrant 向量資料庫之上。
如需完整的設定說明(包括 Docker 指令和環境變數),請參閱語意搜尋文件。
用法
建立語意模型後,您可以使用 search 方法來執行語意搜尋。搜尋函數會返回一個 pandas DataFrame,其中包含搜尋結果,包括欄位的剖析指標、類別、資料表名稱和資料表詞彙表。
from intugle import SemanticModel
# Define your datasets
datasets = {
"allergies": {"path": "path/to/allergies.csv", "type": "csv"},
"patients": {"path": "path/to/patients.csv", "type": "csv"},
"claims": {"path": "path/to/claims.csv", "type": "csv"},
# ... add other datasets
}
# Build the semantic model
sm = SemanticModel(datasets, domain="Healthcare")
sm.build()
# Perform a semantic search
search_results = sm.search("reason for hospital visit")
# View the search results
print(search_results)
如需詳細的程式碼範例和完整的逐步解說,請參閱我們的快速入門筆記本。
MCP 伺服器
Intugle 包含一個內建的 MCP(模型上下文協定)伺服器,可將您的語意層公開給 AI 助理和 LLM 驅動的客戶端。其主要目的是讓代理程式能夠使用如 get_tables 和 get_schema 等工具來理解您的資料結構。
一旦您的語意模型建立完成,您就可以用一個簡單的指令啟動伺服器:
intugle-mcp
這使得 AI 代理程式能夠以程式設計方式與您的資料情境互動。這也實現了與該函式庫的「vibe coding」。
有關設定伺服器和連接您喜愛的客戶端的詳細說明,請參閱我們的完整文件。
社群
加入我們的社群來提問、分享您的專案,並與其他使用者交流。
貢獻
歡迎貢獻!請參閱 CONTRIBUTING.md 檔案以了解指南。
授權
本專案採用 Apache License, Version 2.0 授權。詳情請參閱 LICENSE 檔案。
第三方軟體聲明可在 NOTICE 檔案中找到。