Intugle MCP Server

공식

데이터 엔지니어링 에이전트를 사용하여 자동화된 시맨틱 모델을 생성하고 요청 시 데이터 제품을 구축합니다.

문서

Intugle Logo

자동화된 데이터 인텔리전스를 위한 GenAI 기반 툴킷.

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

단편화된 데이터를 연결된 시맨틱 데이터 모델로 변환하세요

개요

Intugle의 GenAI 기반 오픈소스 Python 라이브러리는 기존 데이터 시스템 위에 시맨틱 데이터 모델을 구축합니다. 핵심적으로 데이터 자산 전반에서 의미 있는 연결과 관계를 발견하여 프로파일, 분류, 비즈니스 용어집으로 풍부하게 만듭니다. 이 연결된 지식 계층을 통해 시맨틱 검색을 활성화하고 통합 데이터 제품을 생성하는 쿼리를 자동 생성하여 데이터 통합과 탐색을 더 빠르고 정확하며 수작업을 크게 줄일 수 있습니다.

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 앱을 사용하려면 intuglestreamlit extra와 함께 설치하세요:

pip install intugle[streamlit]

intugle-mcp 명령어 또는 uvx을 사용하여 Streamlit 애플리케이션을 시작할 수 있습니다:

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.org의 공식 설치 프로그램을 사용하여 Python을 설치한 경우, 터미널에서 다음 명령을 실행하여 SSL 인증서를 설치해야 할 수도 있습니다. 3.XX을 특정 Python 버전으로 바꾸세요. Homebrew를 사용하여 Python을 설치한 경우 이 단계는 필요하지 않습니다.

/Applications/Python\ 3.XX/Install\ Certificates.command

구성

프로젝트를 실행하기 전에 LLM을 구성해야 합니다. 이는 비즈니스 용어집 생성 및 테이블 간 링크 예측과 같은 작업에 사용됩니다.

다음 환경 변수를 설정하여 LLM을 구성할 수 있습니다:

  • LLM_PROVIDER: LangChain의 규칙에 따라 사용할 LLM 제공자 및 모델 (예: openai:gpt-3.5-turbo)
  • API_KEY: LLM 제공자의 API 키. 변수의 정확한 이름은 제공자마다 다를 수 있습니다.

다음은 환경에서 이러한 변수를 설정하는 방법의 예입니다:

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.ipynbDatabricks 노트북 전용
Snowflake Horizon Catalog [ FMCG ]quickstart_fmcg_snowflake.ipynbSnowflake 노트북 전용
Cortex Analyst를 사용한 Native Snowflake [ 기술 제조 ]quickstart_native_snowflake.ipynbColab
AI/BI Genie를 사용한 Native Databricks [ 기술 제조 ]quickstart_native_databricks.ipynbColab
Streamlit 앱quickstart_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 메서드를 사용하여 시맨틱 검색을 수행할 수 있습니다. 검색 함수는 열의 프로파일링 메트릭, 카테고리, 테이블 이름 및 테이블 용어집을 포함한 검색 결과가 담긴 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에는 AI 어시스턴트 및 LLM 기반 클라이언트에 시맨틱 계층을 노출하는 내장 MCP(모델 컨텍스트 프로토콜) 서버가 포함되어 있습니다. 주요 목적은 에이전트가 get_tablesget_schema과 같은 도구를 사용하여 데이터 구조를 이해할 수 있도록 하는 것입니다.

시맨틱 모델이 구축되면 간단한 명령으로 서버를 시작할 수 있습니다:

intugle-mcp

이를 통해 AI 에이전트가 프로그래밍 방식으로 데이터 컨텍스트와 상호 작용할 수 있습니다. 또한 라이브러리를 사용한 바이브 코딩도 가능하게 합니다.

서버 설정 및 선호하는 클라이언트 연결에 대한 자세한 지침은 전체 문서를 참조하세요.

커뮤니티

질문을 하고, 프로젝트를 공유하며, 다른 사용자와 소통하려면 커뮤니티에 참여하세요.

기여

기여를 환영합니다! 지침은 CONTRIBUTING.md 파일을 참조하세요.

라이선스

이 프로젝트는 Apache License, Version 2.0에 따라 라이선스가 부여됩니다. 자세한 내용은 LICENSE 파일을 참조하세요. 타사 소프트웨어 고지 사항은 NOTICE 파일에서 확인할 수 있습니다.