Intugle MCP Server

официальный

Генерируйте автоматизированные семантические модели с помощью агентов инженерии данных и создавайте готовые продукты данных по запросу.

Документация

Intugle Logo

Инструментарий на базе GenAI для автоматизированной интеллектуальной обработки данных.

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

Превратите фрагментированные данные в связанную семантическую модель данных

Обзор

Открытая Python-библиотека Intugle на базе GenAI строит семантическую модель данных поверх существующих систем данных. В её основе — обнаружение значимых связей и отношений между информационными активами, обогащение их профилями, классификациями и бизнес-глоссариями. Этот связанный слой знаний позволяет выполнять семантический поиск и автоматически генерировать запросы для создания унифицированных информационных продуктов, делая интеграцию и исследование данных быстрее, точнее и с гораздо меньшим объёмом ручного труда.

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.