Intugle MCP

oficial

Genera modelos semánticos automatizados utilizando agentes de ingeniería de datos y productos de datos integrados bajo demanda.

¿Qué puedes hacer con Intugle MCP?

  • Perfila y clasifica tus fuentes de datos — Analiza tablas CSV, Parquet, Excel o de bases de datos para comprender la estructura, los tipos de datos y las características mediante SemanticModel.build().
  • Descubre enlaces y relaciones entre tablas — Identifica automáticamente claves primarias/foráneas y relaciones compuestas entre conjuntos de datos fragmentados.
  • Genera un glosario de negocio — Crea términos amigables para el negocio para tus columnas y tablas de datos, permitiendo consultas en lenguaje natural.
  • Busca tus datos semánticamente — Encuentra columnas relevantes usando lenguaje natural (p. ej., "motivo de visita al hospital") con SemanticModel.search().
  • Construye productos de datos unificados — Define campos entre tablas y deja que DataProduct.build() genere automáticamente SQL con las uniones y agregaciones necesarias.
  • Expón tu capa semántica a asistentes de IA — Inicia el servidor MCP integrado con intugle-mcp para que los agentes puedan explorar tu estructura de datos mediante get_tables y get_schema.

Documentación

Intugle Logo

El kit de herramientas potenciado por IA Generativa para inteligencia de datos automatizada.

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

Transforma Datos Fragmentados en un Modelo de Datos Semántico Conectado

Descripción General

La librería Python de código abierto potenciada por IA Generativa de Intugle construye un modelo de datos semántico sobre tus sistemas de datos existentes. En esencia, descubre enlaces y relaciones significativas entre los activos de datos, enriqueciéndolos con perfiles, clasificaciones y glosarios de negocio. Con esta capa de conocimiento conectada, puedes habilitar la búsqueda semántica y la generación automática de consultas para crear productos de datos unificados, haciendo que la integración y exploración de datos sea más rápida, precisa y mucho menos manual.

intugle-architecture

¿Para quién es esto?

  • Ingenieros y Arquitectos de Datos a menudo pasan semanas perfilando, clasificando y uniendo manualmente activos de datos fragmentados. Con Intugle, pueden automatizar este proceso de extremo a extremo, descubriendo enlaces y relaciones significativas para generar instantáneamente una capa semántica conectada.
  • Analistas y Científicos de Datos invierten incontables horas en la preparación de datos antes de poder siquiera comenzar el análisis real. Intugle acelera esto proporcionando inteligencia contextual, generando automáticamente SQL y productos de datos reutilizables enriquecidos con relaciones y significado de negocio.
  • Analistas de Negocio y Tomadores de Decisiones se ven frenados por la dependencia constante de equipos técnicos para obtener respuestas. Intugle elimina este cuello de botella al permitir consultas en lenguaje natural y búsqueda semántica, brindándoles información confiable a demanda.

Características

  • Modelo de Datos Semántico - Transforma conjuntos de datos crudos y fragmentados en un grafo semántico inteligente que captura entidades, relaciones y contexto: la base para la inteligencia conectada.
  • Glosario de Negocio y Búsqueda Semántica: Genera automáticamente un glosario de negocio y habilita una búsqueda que entiende el significado, no solo las palabras clave, haciendo que los datos sean más accesibles para usuarios técnicos y de negocio.
  • Productos de Datos - Genera instantáneamente SQL y productos de datos reutilizables enriquecidos con contexto, eliminando los pipelines manuales y acelerando el camino del dato a la información.
  • Búsqueda Conceptual - Genera planes de productos de datos a partir de consultas en lenguaje natural, cerrando la brecha entre las preguntas de negocio y las definiciones ejecutables de productos de datos. Aprende más en la documentación.

Integraciones Soportadas

CategoríaIntegraciones
Almacenes de DatosSnowflake, Databricks
Bases de DatosSQLite, PostgreSQL, SQL Server, MySQL
LocalPandas, DuckDB (CSV, Parquet, Excel)

Aplicación Streamlit

La librería intugle incluye una aplicación Streamlit que proporciona una interfaz web interactiva para construir y visualizar modelos de datos semánticos.

https://github.com/user-attachments/assets/402c3f3d-baf3-4ece-ba55-4e06437defc5

Para usar la aplicación Streamlit, instala intugle con el extra streamlit:

pip install intugle[streamlit]

Puedes lanzar la aplicación Streamlit usando el comando intugle-mcp o uvx:

intugle-streamlit
# Or using uvx
uvx --from intugle[streamlit] intugle-streamlit

Abre la URL proporcionada en tu terminal (generalmente http://localhost:8501) para acceder a la aplicación. Para más detalles, consulta la documentación de la Aplicación Streamlit.

Para ejecutar la aplicación en un entorno de nube como Google Colab, por favor consulta nuestro notebook de inicio rápido de Streamlit.

Primeros Pasos

Instalación

Para Windows y Linux, puedes seguir estos pasos. Para macOS, por favor consulta los pasos adicionales en la sección de macOS a continuación.

Antes de instalar, se recomienda crear un entorno virtual:

python -m venv .venv
source .venv/bin/activate

Luego, instala el paquete:

pip install intugle

macOS

Para usuarios de macOS, puede que necesites instalar la librería libomp:

brew install libomp

Si instalaste Python usando el instalador oficial de python.org, puede que también necesites instalar certificados SSL ejecutando el siguiente comando en tu terminal. Por favor, reemplaza 3.XX con tu versión específica de Python. Este paso no es necesario si instalaste Python usando Homebrew.

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

Configuración

Antes de ejecutar el proyecto, necesitas configurar un LLM. Esto se usa para tareas como generar glosarios de negocio y predecir enlaces entre tablas.

Puedes configurar el LLM estableciendo las siguientes variables de entorno:

  • LLM_PROVIDER: El proveedor y modelo de LLM a usar (ej., openai:gpt-3.5-turbo) siguiendo las convenciones de LangChain.
  • API_KEY: Tu clave API para el proveedor de LLM. El nombre exacto de la variable puede variar de un proveedor a otro.

Aquí tienes un ejemplo de cómo establecer estas variables en tu entorno:

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

Inicio Rápido

Para una introducción práctica y detallada al proyecto, por favor consulta nuestros notebooks de inicio rápido:

DominioNotebookAbrir en Colab
Saludquickstart_healthcare.ipynbColab
Manufactura Tecnológicaquickstart_tech_manufacturing.ipynbColab
Bienes de Consumo Masivoquickstart_fmcg.ipynbColab
Medios Deportivosquickstart_sports_media.ipynbColab
Databricks Unity Catalog [Salud]quickstart_healthcare_databricks.ipynbSolo Notebook de Databricks
Snowflake Horizon Catalog [ Bienes de Consumo Masivo ]quickstart_fmcg_snowflake.ipynbSolo Notebook de Snowflake
Snowflake Nativo con Cortex Analyst [ Manufactura Tecnológica ]quickstart_native_snowflake.ipynbColab
Databricks Nativo con AI/BI Genie [ Manufactura Tecnológica ]quickstart_native_databricks.ipynbColab
Aplicación Streamlitquickstart_streamlit.ipynbColab
Búsqueda Conceptualquickstart_conceptual_search.ipynbColab
Predicción de Relaciones Compuestasquickstart_basketball_composite_links.ipynbColab

Estos conjuntos de datos te guiarán a través de los siguientes pasos:

  • Generar Modelo Semántico → La capa unificada que transforma conjuntos de datos fragmentados, creando la base para la inteligencia conectada.
    • 1.1 Perfilar y clasificar datos → Analiza tus fuentes de datos para entender su estructura, tipos de datos y otras características.
    • 1.2 Descubrir enlaces y relaciones entre datos → Revela conexiones significativas (PK y FK), incluyendo claves compuestas, a través de tablas fragmentadas.
    • 1.3 Generar un glosario de negocio → Crea términos amigables para el negocio y úsalos para consultar datos con contexto.
    • 1.4 Habilitar búsqueda semántica → Búsqueda inteligente que entiende el significado, no solo las palabras clave—haciendo que los datos sean más accesibles tanto para usuarios técnicos como de negocio.
    • 1.5 Visualizar modelo semántico→ Accede a los metadatos enriquecidos de la capa semántica en forma de archivos YAML y visualízalos en forma de grafo.
  • Construir Productos de Datos Unificados → Simplemente elige los atributos de tus tablas de datos y deja que el kit de herramientas genere automáticamente consultas con todas las uniones, transformaciones y agregaciones necesarias usando la capa semántica. Cuando se ejecutan, estas consultas producen productos de datos reutilizables.

Documentación

Para información más detallada, uso avanzado y tutoriales, por favor consulta nuestro sitio de documentación completo.

Uso

El flujo de trabajo principal del proyecto implica usar el SemanticModel para construir una capa semántica, y luego usar el DataProduct para generar productos de datos a partir de esa capa.

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)

Para ejemplos de código detallados y un recorrido completo, por favor consulta nuestros notebooks de inicio rápido.

Producto de Datos

Una vez que el modelo semántico está construido, puedes usar la clase DataProduct para generar productos de datos unificados desde la capa semántica.

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())

Búsqueda Semántica

La funcionalidad de búsqueda semántica te permite buscar columnas en tus conjuntos de datos usando lenguaje natural. Está construida sobre la base de datos vectorial Qdrant.

Para instrucciones completas de configuración (incluyendo comandos de Docker y variables de entorno), por favor consulta la Documentación de Búsqueda Semántica.

Uso

Una vez que hayas construido el modelo semántico, puedes usar el método search para realizar una búsqueda semántica. La función de búsqueda devuelve un DataFrame de pandas que contiene los resultados de la búsqueda, incluyendo las métricas de perfilado de la columna, categoría, nombre de la tabla y glosario de la tabla.

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)

Para ejemplos de código detallados y un recorrido completo, por favor consulta nuestros notebooks de inicio rápido.

Servidor MCP

Intugle incluye un servidor MCP (Protocolo de Contexto de Modelo) integrado que expone tu capa semántica a asistentes de IA y clientes potenciados por LLM. Su propósito principal es permitir que los agentes entiendan la estructura de tus datos usando herramientas como get_tables y get_schema.

Una vez que tu modelo semántico está construido, puedes iniciar el servidor con un comando simple:

intugle-mcp

Esto permite que los agentes de IA interactúen programáticamente con el contexto de tus datos. Esto también habilita la "vibe coding" con la librería.

Para instrucciones detalladas sobre cómo configurar el servidor y conectar tu cliente favorito, por favor consulta nuestra documentación completa.

Comunidad

Únete a nuestra comunidad para hacer preguntas, compartir tus proyectos y conectar con otros usuarios.

Contribuciones

¡Las contribuciones son bienvenidas! Por favor, consulta el archivo CONTRIBUTING.md para las directrices.

Licencia

Este proyecto está licenciado bajo la Licencia Apache, Versión 2.0. Consulta el archivo LICENSE para más detalles. Los avisos de software de terceros están disponibles en el archivo NOTICE.