Intugle MCP Server

ทางการ

สร้างแบบจำลองเชิงความหมายอัตโนมัติโดยใช้เอเจนต์วิศวกรรมข้อมูลและผลิตภัณฑ์ข้อมูลในตัวตามความต้องการ

เอกสาร

Intugle Logo

ชุดเครื่องมือที่ขับเคลื่อนด้วย GenAI สำหรับระบบอัจฉริยะข้อมูลอัตโนมัติ

PyPI Downloads Release Made with Python contributions - welcome License: Apache 2.0 Open Issues

เปลี่ยนข้อมูลที่กระจัดกระจายให้เป็นโมเดลข้อมูลเชิงความหมายที่เชื่อมโยงกัน

ภาพรวม

ไลบรารี Python แบบโอเพนซอร์สที่ขับเคลื่อนด้วย GenAI ของ Intugle สร้างโมเดลข้อมูลเชิงความหมายทับระบบข้อมูลที่มีอยู่ของคุณ หัวใจหลักคือการค้นพบลิงก์และความสัมพันธ์ที่มีความหมายระหว่างสินทรัพย์ข้อมูล — พร้อมเพิ่มคุณค่าด้วยโปรไฟล์ การจัดหมวดหมู่ และอภิธานศัพท์ทางธุรกิจ ด้วยชั้นความรู้ที่เชื่อมโยงนี้ คุณสามารถเปิดใช้งานการค้นหาเชิงความหมายและสร้างคิวรีอัตโนมัติเพื่อสร้างผลิตภัณฑ์ข้อมูลที่เป็นหนึ่งเดียว ทำให้การบูรณาการและการสำรวจข้อมูลรวดเร็วขึ้น แม่นยำขึ้น และลดขั้นตอนที่ต้องทำด้วยตนเองลงอย่างมาก

intugle-architecture

เหมาะสำหรับใคร?

  • วิศวกรข้อมูลและสถาปนิกข้อมูล มักใช้เวลาหลายสัปดาห์ในการทำโปรไฟล์ จัดหมวดหมู่ และเชื่อมโยงสินทรัพย์ข้อมูลที่กระจัดกระจายด้วยตนเอง ด้วย 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) ตาม ข้อตกลง ของ LangChain
  • API_KEY: คีย์ API ของคุณสำหรับผู้ให้บริการ LLM ชื่อที่แน่นอนของตัวแปรอาจแตกต่างกันไปตามผู้ให้บริการ

นี่คือตัวอย่างวิธีการตั้งค่าตัวแปรเหล่านี้ในสภาพแวดล้อมของคุณ:

export LLM_PROVIDER="openai:gpt-3.5-turbo"
export OPENAI_API_KEY="your-openai-api-key"

เริ่มต้นอย่างรวดเร็ว

สำหรับการแนะนำแบบลงมือปฏิบัติโดยละเอียดเกี่ยวกับโปรเจกต์ โปรดดูสมุดบันทึกเริ่มต้นอย่างรวดเร็วของเรา:

โดเมนสมุดบันทึกเปิดใน Colab
การดูแลสุขภาพquickstart_healthcare.ipynbColab
การผลิตเทคโนโลยีquickstart_tech_manufacturing.ipynbColab
FMCGquickstart_fmcg.ipynbColab
สื่อกีฬาquickstart_sports_media.ipynbColab
Databricks Unity Catalog [การดูแลสุขภาพ]quickstart_healthcare_databricks.ipynbเฉพาะสมุดบันทึก Databricks
Snowflake Horizon Catalog [ FMCG ]quickstart_fmcg_snowflake.ipynbเฉพาะสมุดบันทึก Snowflake
Native Snowflake พร้อม Cortex Analyst [ การผลิตเทคโนโลยี ]quickstart_native_snowflake.ipynbColab
Native Databricks พร้อม AI/BI Genie [ การผลิตเทคโนโลยี ]quickstart_native_databricks.ipynbColab
แอป Streamlitquickstart_streamlit.ipynbColab
การค้นหาเชิงแนวคิดquickstart_conceptual_search.ipynbColab
การทำนายความสัมพันธ์แบบผสมquickstart_basketball_composite_links.ipynbColab

ชุดข้อมูลเหล่านี้จะนำคุณผ่านขั้นตอนต่อไปนี้:

  • สร้างโมเดลเชิงความหมาย → ชั้นที่เป็นหนึ่งเดียวที่เปลี่ยนชุดข้อมูลที่กระจัดกระจาย สร้างรากฐานสำหรับระบบอัจฉริยะที่เชื่อมโยงกัน
    • 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