Intugle MCP
officielGé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-mcpafin que les agents puissent explorer votre structure de données viaget_tablesetget_schema.
Documentation
La boîte à outils alimentée par l'IA générative pour l'intelligence des données automatisée.
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.
À 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égorie | Intégrations |
|---|---|
| Entrepôts de Données | Snowflake, Databricks |
| Bases de Données | SQLite, PostgreSQL, SQL Server, MySQL |
| Local | Pandas, 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 LangChainAPI_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 :
| Domaine | Notebook | Ouvrir dans Colab |
|---|---|---|
| Santé | quickstart_healthcare.ipynb | |
| Fabrication Technologique | quickstart_tech_manufacturing.ipynb | |
| PGC | quickstart_fmcg.ipynb | |
| Médias Sportifs | quickstart_sports_media.ipynb | |
| Catalogue Unity Databricks [Santé] | quickstart_healthcare_databricks.ipynb | Notebook Databricks Uniquement |
| Catalogue Horizon Snowflake [ PGC ] | quickstart_fmcg_snowflake.ipynb | Notebook Snowflake Uniquement |
| Snowflake Natif avec Cortex Analyst [ Fabrication Technologique ] | quickstart_native_snowflake.ipynb | |
| Databricks Natif avec AI/BI Genie [ Fabrication Technologique ] | quickstart_native_databricks.ipynb | |
| Application Streamlit | quickstart_streamlit.ipynb | |
| Recherche Conceptuelle | quickstart_conceptual_search.ipynb | |
| Prédiction de Relations Composites | quickstart_basketball_composite_links.ipynb |
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.