Intugle MCP

officiel

Générer des modèles sémantiques automatisés à l'aide d'agents d'ingénierie des données et des produits de données intégrés à la demande.

Que pouvez-vous faire avec Intugle MCP ?

  • Profilez et classez vos sources de données — Analysez les fichiers CSV, Parquet, Excel ou les tables de base de données pour comprendre la structure, les types de données et les caractéristiques via SemanticModel.build().
  • Découvrez les liens et relations entre les tables — Identifiez automatiquement les clés primaires/étrangères et les relations composites entre des ensembles de données fragmentés.
  • Générez un glossaire métier — Créez des termes adaptés au métier pour vos colonnes et tables de données, permettant des requêtes en langage naturel.
  • Recherchez vos données de manière sémantique — Trouvez les colonnes pertinentes en langage naturel (ex. « raison de la visite à l'hôpital ») avec SemanticModel.search().
  • Construisez des produits de données unifiés — Définissez des champs entre les tables et laissez DataProduct.build() générer automatiquement du SQL avec les jointures et agrégations nécessaires.
  • Exposez votre couche sémantique aux assistants IA — Démarrez le serveur MCP intégré avec intugle-mcp afin que les agents puissent explorer votre structure de données via get_tables et get_schema.

Documentation

Intugle Logo

La boîte à outils alimentée par l'IA générative pour l'intelligence des données automatisée.

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

Transformez des données fragmentées en un modèle de données sémantique connecté

Aperçu

La bibliothèque Python open source d'Intugle, alimentée par l'IA générative, construit un modèle de données sémantique par-dessus vos systèmes de données existants. À la base, elle découvre des liens et des relations significatifs entre les actifs de données, les enrichissant avec des profils, des classifications et des glossaires métier. Grâce à cette couche de connaissances connectée, vous pouvez activer la recherche sémantique et générer automatiquement des requêtes pour créer des produits de données unifiés, rendant l'intégration et l'exploration des données plus rapides, plus précises et beaucoup moins manuelles.

intugle-architecture

À qui s'adresse cet outil ?

  • Ingénieurs et Architectes de Données passent souvent des semaines à profiler, classifier et assembler manuellement des actifs de données fragmentés. Avec Intugle, ils peuvent automatiser ce processus de bout en bout, découvrant des liens et relations significatifs pour générer instantanément une couche sémantique connectée.
  • Analystes et Scientifiques de Données passent d'innombrables heures sur la préparation des données avant même de pouvoir commencer l'analyse réelle. Intugle accélère cela en fournissant une intelligence contextuelle, générant automatiquement du SQL et des produits de données réutilisables enrichis de relations et de sens métier.
  • Analystes Métier et Décideurs sont ralentis par une dépendance constante aux équipes techniques pour obtenir des réponses. Intugle supprime ce goulot d'étranglement en permettant des requêtes en langage naturel et une recherche sémantique, leur donnant des informations fiables à la demande.

Fonctionnalités

  • Modèle de Données Sémantique - Transformez des ensembles de données bruts et fragmentés en un graphe sémantique intelligent qui capture les entités, les relations et le contexte — la base de l'intelligence connectée.
  • Glossaire Métier & Recherche Sémantique : Générez automatiquement un glossaire métier et activez une recherche qui comprend le sens, pas seulement les mots-clés — rendant les données plus accessibles aux utilisateurs techniques et métier.
  • Produits de Données - Générez instantanément du SQL et des produits de données réutilisables enrichis de contexte, éliminant les pipelines manuels et accélérant le passage des données à l'information.
  • Recherche Conceptuelle - Générez des plans de produits de données à partir de requêtes en langage naturel, comblant le fossé entre les questions métier et les définitions exécutables de produits de données. En savoir plus dans la documentation.

Intégrations Supportées

CatégorieIntégrations
Entrepôts de DonnéesSnowflake, Databricks
Bases de DonnéesSQLite, PostgreSQL, SQL Server, MySQL
LocalPandas, DuckDB (CSV, Parquet, Excel)

Application Streamlit

La bibliothèque intugle inclut une application Streamlit qui fournit une interface web interactive pour construire et visualiser des modèles de données sémantiques.

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

Pour utiliser l'application Streamlit, installez intugle avec l'extra streamlit :

pip install intugle[streamlit]

Vous pouvez lancer l'application Streamlit en utilisant la commande intugle-mcp ou uvx :

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

Ouvrez l'URL fournie dans votre terminal (généralement http://localhost:8501) pour accéder à l'application. Pour plus de détails, référez-vous à la documentation de l'application Streamlit.

Pour exécuter l'application dans un environnement cloud comme Google Colab, veuillez vous référer à notre notebook de démarrage rapide Streamlit.

Pour Commencer

Installation

Pour Windows et Linux, vous pouvez suivre ces étapes. Pour macOS, veuillez consulter les étapes supplémentaires dans la section macOS ci-dessous.

Avant d'installer, il est recommandé de créer un environnement virtuel :

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

Ensuite, installez le paquet :

pip install intugle

macOS

Pour les utilisateurs de macOS, vous pourriez avoir besoin d'installer la bibliothèque libomp :

brew install libomp

Si vous avez installé Python en utilisant le programme d'installation officiel de python.org, vous pourriez également avoir besoin d'installer les certificats SSL en exécutant la commande suivante dans votre terminal. Veuillez remplacer 3.XX par votre version spécifique de Python. Cette étape n'est pas nécessaire si vous avez installé Python en utilisant Homebrew.

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

Configuration

Avant d'exécuter le projet, vous devez configurer un LLM. Il est utilisé pour des tâches comme la génération de glossaires métier et la prédiction de liens entre les tables.

Vous pouvez configurer le LLM en définissant les variables d'environnement suivantes :

  • LLM_PROVIDER : Le fournisseur et le modèle de LLM à utiliser (par exemple, openai:gpt-3.5-turbo) suivant les conventions de LangChain
  • API_KEY : Votre clé API pour le fournisseur de LLM. Le nom exact de la variable peut varier d'un fournisseur à l'autre.

Voici un exemple de comment définir ces variables dans votre environnement :

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

Démarrage Rapide

Pour une introduction détaillée et pratique au projet, veuillez consulter nos notebooks de démarrage rapide :

DomaineNotebookOuvrir dans Colab
Santéquickstart_healthcare.ipynbColab
Fabrication Technologiquequickstart_tech_manufacturing.ipynbColab
PGCquickstart_fmcg.ipynbColab
Médias Sportifsquickstart_sports_media.ipynbColab
Catalogue Unity Databricks [Santé]quickstart_healthcare_databricks.ipynbNotebook Databricks Uniquement
Catalogue Horizon Snowflake [ PGC ]quickstart_fmcg_snowflake.ipynbNotebook Snowflake Uniquement
Snowflake Natif avec Cortex Analyst [ Fabrication Technologique ]quickstart_native_snowflake.ipynbColab
Databricks Natif avec AI/BI Genie [ Fabrication Technologique ]quickstart_native_databricks.ipynbColab
Application Streamlitquickstart_streamlit.ipynbColab
Recherche Conceptuellequickstart_conceptual_search.ipynbColab
Prédiction de Relations Compositesquickstart_basketball_composite_links.ipynbColab

Ces ensembles de données vous guideront à travers les étapes suivantes :

  • Générer un Modèle Sémantique → La couche unifiée qui transforme les ensembles de données fragmentés, créant la base de l'intelligence connectée.
    • 1.1 Profiler et classifier les données → Analysez vos sources de données pour comprendre leur structure, types de données et autres caractéristiques.
    • 1.2 Découvrir les liens et relations entre les données → Révélez les connexions significatives (PK & FK), y compris les clés composites, à travers des tables fragmentées.
    • 1.3 Générer un glossaire métier → Créez des termes conviviaux pour le métier et utilisez-les pour interroger les données avec contexte.
    • 1.4 Activer la recherche sémantique → Recherche intelligente qui comprend le sens, pas seulement les mots-clés — rendant les données plus accessibles aux utilisateurs techniques et métier.
    • 1.5 Visualiser le modèle sémantique → Accédez aux métadonnées enrichies de la couche sémantique sous forme de fichiers YAML et visualisez-les sous forme de graphe.
  • Construire des Produits de Données Unifiés → Choisissez simplement les attributs à travers vos tables de données, et laissez la boîte à outils générer automatiquement des requêtes avec toutes les jointures, transformations et agrégations requises en utilisant la couche sémantique. Une fois exécutées, ces requêtes produisent des produits de données réutilisables.

Documentation

Pour des informations plus détaillées, une utilisation avancée et des tutoriels, veuillez vous référer à notre site de documentation complet.

Utilisation

Le flux de travail principal du projet implique l'utilisation de SemanticModel pour construire une couche sémantique, puis l'utilisation de DataProduct pour générer des produits de données à partir de cette couche.

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)

Pour des exemples de code détaillés et une présentation complète, veuillez consulter nos notebooks de démarrage rapide.

Produit de Données

Une fois le modèle sémantique construit, vous pouvez utiliser la classe DataProduct pour générer des produits de données unifiés à partir de la couche sémantique.

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

Recherche Sémantique

La fonctionnalité de recherche sémantique vous permet de rechercher des colonnes dans vos ensembles de données en utilisant le langage naturel. Elle est construite sur la base de données vectorielle Qdrant.

Pour des instructions de configuration complètes (incluant les commandes Docker et les variables d'environnement), veuillez vous référer à la Documentation de la Recherche Sémantique.

Utilisation

Une fois que vous avez construit le modèle sémantique, vous pouvez utiliser la méthode search pour effectuer une recherche sémantique. La fonction de recherche retourne un DataFrame pandas contenant les résultats de la recherche, incluant les métriques de profilage de la colonne, la catégorie, le nom de la table et le glossaire de la table.

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)

Pour des exemples de code détaillés et une présentation complète, veuillez consulter nos notebooks de démarrage rapide.

Serveur MCP

Intugle inclut un serveur MCP (Model Context Protocol) intégré qui expose votre couche sémantique aux assistants IA et aux clients alimentés par LLM. Son objectif principal est de permettre aux agents de comprendre la structure de vos données en utilisant des outils comme get_tables et get_schema.

Une fois votre modèle sémantique construit, vous pouvez démarrer le serveur avec une simple commande :

intugle-mcp

Cela permet aux agents IA d'interagir de manière programmatique avec le contexte de vos données. Cela permet également le codage "vibe" avec la bibliothèque.

Pour des instructions détaillées sur la configuration du serveur et la connexion de votre client préféré, veuillez consulter notre documentation complète.

Communauté

Rejoignez notre communauté pour poser des questions, partager vos projets et vous connecter avec d'autres utilisateurs.

Contribution

Les contributions sont les bienvenues ! Veuillez consulter le fichier CONTRIBUTING.md pour les directives.

Licence

Ce projet est sous licence Apache License, Version 2.0. Voir le fichier LICENSE pour plus de détails. Les avis de logiciels tiers sont disponibles dans le fichier NOTICE.