Intugle MCP Server
ทางการสร้างแบบจำลองเชิงความหมายอัตโนมัติโดยใช้เอเจนต์วิศวกรรมข้อมูลและผลิตภัณฑ์ข้อมูลในตัวตามความต้องการ
เอกสาร
ชุดเครื่องมือที่ขับเคลื่อนด้วย GenAI สำหรับระบบอัจฉริยะข้อมูลอัตโนมัติ
เปลี่ยนข้อมูลที่กระจัดกระจายให้เป็นโมเดลข้อมูลเชิงความหมายที่เชื่อมโยงกัน
ภาพรวม
ไลบรารี Python แบบโอเพนซอร์สที่ขับเคลื่อนด้วย GenAI ของ Intugle สร้างโมเดลข้อมูลเชิงความหมายทับระบบข้อมูลที่มีอยู่ของคุณ หัวใจหลักคือการค้นพบลิงก์และความสัมพันธ์ที่มีความหมายระหว่างสินทรัพย์ข้อมูล — พร้อมเพิ่มคุณค่าด้วยโปรไฟล์ การจัดหมวดหมู่ และอภิธานศัพท์ทางธุรกิจ ด้วยชั้นความรู้ที่เชื่อมโยงนี้ คุณสามารถเปิดใช้งานการค้นหาเชิงความหมายและสร้างคิวรีอัตโนมัติเพื่อสร้างผลิตภัณฑ์ข้อมูลที่เป็นหนึ่งเดียว ทำให้การบูรณาการและการสำรวจข้อมูลรวดเร็วขึ้น แม่นยำขึ้น และลดขั้นตอนที่ต้องทำด้วยตนเองลงอย่างมาก
เหมาะสำหรับใคร?
- วิศวกรข้อมูลและสถาปนิกข้อมูล มักใช้เวลาหลายสัปดาห์ในการทำโปรไฟล์ จัดหมวดหมู่ และเชื่อมโยงสินทรัพย์ข้อมูลที่กระจัดกระจายด้วยตนเอง ด้วย 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 ให้ติดตั้ง intugle พร้อมส่วนเสริม streamlit:
pip install intugle[streamlit]
คุณสามารถเปิดแอปพลิเคชัน Streamlit ได้โดยใช้คำสั่ง intugle-mcp หรือ uvx:
intugle-streamlit
# Or using uvx
uvx --from intugle[streamlit] intugle-streamlit
เปิด URL ที่แสดงในเทอร์มินัลของคุณ (โดยปกติคือ 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 โดยใช้ตัวติดตั้งอย่างเป็นทางการจาก python.org คุณอาจต้องติดตั้งใบรับรอง SSL โดยการรันคำสั่งต่อไปนี้ในเทอร์มินัลของคุณ โปรดแทนที่ 3.XX ด้วยเวอร์ชัน Python เฉพาะของคุณ ขั้นตอนนี้ไม่จำเป็นหากคุณติดตั้ง Python โดยใช้ Homebrew
/Applications/Python\ 3.XX/Install\ Certificates.command
การกำหนดค่า
ก่อนรันโปรเจกต์ คุณต้องกำหนดค่า LLM ซึ่งใช้สำหรับงานต่างๆ เช่น การสร้างอภิธานศัพท์ทางธุรกิจและการทำนายลิงก์ระหว่างตาราง
คุณสามารถกำหนดค่า LLM ได้โดยการตั้งค่าตัวแปรสภาพแวดล้อมต่อไปนี้:
LLM_PROVIDER: ผู้ให้บริการ LLM และโมเดลที่จะใช้ (เช่นopenai:gpt-3.5-turbo) ตาม ข้อตกลง ของ LangChainAPI_KEY: คีย์ API ของคุณสำหรับผู้ให้บริการ LLM ชื่อที่แน่นอนของตัวแปรอาจแตกต่างกันไปตามผู้ให้บริการ
นี่คือตัวอย่างวิธีการตั้งค่าตัวแปรเหล่านี้ในสภาพแวดล้อมของคุณ:
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 [ FMCG ] | quickstart_fmcg_snowflake.ipynb | เฉพาะสมุดบันทึก Snowflake |
| Native Snowflake พร้อม Cortex Analyst [ การผลิตเทคโนโลยี ] | quickstart_native_snowflake.ipynb | |
| Native 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 ค้นพบลิงก์และความสัมพันธ์ระหว่างข้อมูล → เปิดเผยการเชื่อมต่อที่มีความหมาย (PK และ FK) รวมถึงคีย์ผสม ระหว่างตารางที่กระจัดกระจาย
- 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 เพื่อทำการค้นหาเชิงความหมาย ฟังก์ชันการค้นหาจะส่งคืน DataFrame ของ pandas ที่มีผลการค้นหา รวมถึงเมตริกการทำโปรไฟล์ของคอลัมน์ หมวดหมู่ ชื่อตาราง และอภิธานศัพท์ของตาราง
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 (Model Context Protocol) ในตัวที่เปิดเผยชั้นเชิงความหมายของคุณให้กับผู้ช่วย AI และไคลเอนต์ที่ขับเคลื่อนด้วย LLM จุดประสงค์หลักคือเพื่อให้เอเจนต์เข้าใจโครงสร้างข้อมูลของคุณโดยใช้เครื่องมือเช่น get_tables และ get_schema
เมื่อโมเดลเชิงความหมายของคุณถูกสร้างขึ้น คุณสามารถเริ่มเซิร์ฟเวอร์ด้วยคำสั่งง่ายๆ:
intugle-mcp
สิ่งนี้ทำให้เอเจนต์ AI สามารถโต้ตอบกับบริบทข้อมูลของคุณโดยทางโปรแกรม นอกจากนี้ยังเปิดใช้งานการเขียนโค้ดแบบไวบ์กับไลบรารี
สำหรับคำแนะนำโดยละเอียดเกี่ยวกับการตั้งค่าเซิร์ฟเวอร์และการเชื่อมต่อไคลเอนต์ที่คุณชื่นชอบ โปรดดู เอกสารประกอบ ฉบับเต็มของเรา
ชุมชน
เข้าร่วมชุมชนของเราเพื่อถามคำถาม แบ่งปันโปรเจกต์ของคุณ และเชื่อมต่อกับผู้ใช้รายอื่น
การมีส่วนร่วม
ยินดีต้อนรับการมีส่วนร่วม! โปรดดูไฟล์ CONTRIBUTING.md สำหรับแนวทาง
ใบอนุญาต
โปรเจกต์นี้ได้รับอนุญาตภายใต้ Apache License, Version 2.0 ดูรายละเอียดได้ในไฟล์ LICENSE
ประกาศเกี่ยวกับซอฟต์แวร์ของบุคคลที่สามมีอยู่ในไฟล์ NOTICE