Intugle MCP Server
официальныйГенерируйте автоматизированные семантические модели с помощью агентов инженерии данных и создавайте готовые продукты данных по запросу.
Документация
Инструментарий на базе GenAI для автоматизированной интеллектуальной обработки данных.
Превратите фрагментированные данные в связанную семантическую модель данных
Обзор
Открытая Python-библиотека Intugle на базе GenAI строит семантическую модель данных поверх существующих систем данных. В её основе — обнаружение значимых связей и отношений между информационными активами, обогащение их профилями, классификациями и бизнес-глоссариями. Этот связанный слой знаний позволяет выполнять семантический поиск и автоматически генерировать запросы для создания унифицированных информационных продуктов, делая интеграцию и исследование данных быстрее, точнее и с гораздо меньшим объёмом ручного труда.
Для кого это?
- Инженеры и архитекторы данных часто тратят недели на ручное профилирование, классификацию и связывание разрозненных информационных активов. С 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.