Revenir au contenu principal

Créer des applications Databricks avec React et les agents Mosaic AI pour des solutions de chat d'entreprise

Building Databricks Apps with React and Mosaic AI Agents for Enterprise Chat Solutions

Publié: 22 mars 2025

Production industrielle11 min de lecture

Les applications Databricks offrent une plateforme robuste pour la création et l'hébergement d'applications interactives. React est idéal pour créer des applications web modernes et dynamiques qui nécessitent des mises à jour fluides et une apparence soignée. En combinant cette plateforme avec un frontend basé sur React et le cadre d'agents Mosaic AI, les développeurs peuvent créer des applications de chat efficaces et intelligentes. Ce blog se concentre sur l'implémentation technique d'un chatbot hébergé sur Databricks et démontre son potentiel avec un cas d'utilisation spécifique à l'industrie : un chatbot de gestion des opérations de fabrication.

Intégration des applications Databricks et de Mosaic AI

Vue d'ensemble de l'architecture :

L'utilisateur envoie une requête aux applications Databricks, qui la redirige vers le point de terminaison de service du modèle
L'utilisateur envoie une requête aux applications Databricks, qui la redirige vers le point de terminaison de service du modèle

Points forts des applications Databricks

Les applications Databricks s'intègrent nativement avec :

  • Databricks SQL : Pour interroger efficacement de grands ensembles de données.
  • Unity Catalog : Pour la gouvernance centralisée des données et le contrôle d'accès.
  • Service de modèles : Pour déployer des modèles d'apprentissage automatique à grande échelle.
  • Points de terminaison de service : Pour des requêtes efficaces vers les modèles ML et les agents LLM.
  • Jobs : Pour les pipelines ETL et les processus de flux de travail.

Les applications Databricks éliminent le besoin d'une infrastructure d'hébergement externe. Les applications héritent des fonctionnalités de sécurité, de conformité et de gestion des ressources intégrées à la plateforme, simplifiant ainsi le déploiement et la maintenance.

Les applications Databricks prennent en charge un large éventail de frameworks tels que Dash, Streamlit, Gradio, Flask et FastAPI. Cette flexibilité permet des applications riches en données et visuellement attrayantes.

Qu'est-ce que le cadre d'agents Mosaic AI ?

Le cadre d'agents Mosaic AI est un ensemble d'outils sur Databricks qui aide les développeurs à créer, déployer et gérer des agents IA, tels que ceux utilisés dans la génération augmentée par récupération (RAG). Il s'intègre à des frameworks comme LangChain et LlamaIndex et utilise des fonctionnalités Databricks comme Unity Catalog pour la gouvernance des données et l'appel de fonctions.

Les développeurs peuvent enregistrer et tester des agents avec MLflow, déboguer leur comportement et améliorer leurs performances. Des fonctionnalités telles que l'enregistrement des requêtes, le streaming des jetons de réponse et les applications d'examen facilitent la création et le déploiement d'agents IA pour des cas d'utilisation réels.

Cas d'utilisation : Chatbot de gestion des opérations de fabrication

La gestion des opérations de fabrication (MOM) est cruciale pour optimiser les processus de production, améliorer l'efficacité et maintenir la compétitivité dans le paysage industriel en évolution rapide d'aujourd'hui.

La demande de gestion des opérations utilisant des agents IA avec des interfaces en langage naturel connaît une croissance rapide, stimulée par le besoin d'une efficacité accrue, d'une meilleure prise de décision et d'expériences utilisateur améliorées.

Selon la dernière publication de Meticulous Research® (source), le marché de l'IA dans la fabrication devrait atteindre 84,5 milliards de dollars d'ici 2031, avec un TCAC de 32,6 % pendant la période de prévision 2024-2031 [1]. Cette croissance significative souligne la reconnaissance croissante de l'importance de la gestion des opérations pilotée par l'IA dans diverses industries.

Une entreprise de fabrication mettant en œuvre le chatbot Mosaic AI exploitant l'appel de fonctions peut aider les responsables de production dans :

Analyse des goulots d'étranglement

  • Fonction de l'outil : Interroge Databricks SQL à l'aide de la fonction identify_bottleneck_station pour déterminer la station causant le plus de retards.
  • Exemple de requête : « Quel est le goulot d'étranglement actuel dans la chaîne d'assemblage ? »
  • Réponse : « La station 5 est le goulot d'étranglement actuel, avec un retard moyen de 15 minutes par cycle. »

Suivi des stocks

  • Fonction de l'outil : Appelle check_inventory_levels pour récupérer les données de stock en temps réel pour une station spécifiée.
  • Exemple de requête : « Avons-nous assez de matériel pour la station 3 ? »
  • Réponse : « La station 3 dispose de suffisamment de matériel pour les cinq prochains cycles de production. »

Ces requêtes peuvent être facilement implémentées sous forme de fonctions stockées dans Unity Catalog, en utilisant SQL ou Python. Ensuite, un agent IA peut effectuer des tâches telles que la récupération de données, l'exécution de code et la prise de décision basée sur le contexte en tirant parti des appels de fonctions. Bien que nous n'entrions pas dans les détails de la configuration de l'agent pour l'appel de fonctions ici, vous pouvez consulter le Cookbook d'IA générative Databricks ici pour des instructions détaillées.

Une fois que l'agent Mosaic AI est configuré pour gérer divers outils, il peut être déployé en tant que point de terminaison de service de modèle sur Databricks. Ce point de terminaison sert d'interface backend, permettant aux applications frontend comme les chatbots d'envoyer des requêtes et de recevoir des informations en temps réel.

Point de terminaison de service du modèle du chatbot de l'agent pour recevoir des requêtes
Point de terminaison de service du modèle du chatbot de l'agent pour recevoir des requêtes

Voici l'interface du chatbot fonctionnant localement ; nous la présenterons plus tard après son déploiement sur les applications Databricks.

Le frontend localhost affichant les requêtes et les réponses de l'utilisateur
Le frontend localhost affichant les requêtes et les réponses de l'utilisateur

Implémentation des applications Databricks

1. Frontend avec React

Le frontend React fournit une interface interactive et conviviale pour interroger le chatbot et visualiser les réponses. Les fonctionnalités principales incluent le rendu des messages en temps réel, la soumission de requêtes et la gestion des réponses du bot, une interface utilisateur interactive avec retour d'information et la prise en charge de Markdown.

Code frontend envoyant des messages au backend

Client API : Axios est utilisé pour effectuer des requêtes HTTP. La baseURL est définie dynamiquement en fonction de l'environnement (développement ou production).

HandleSendMessage : Il capture l'entrée de l'utilisateur, envoie le message au point de terminaison de l'API /api/chat et met à jour l'historique du chat avec les messages de l'utilisateur et du bot.

2. Backend avec FastAPI

Le backend FastAPI sert de pont entre le frontend React et les agents Mosaic AI. Il achemine les requêtes des utilisateurs vers le point de terminaison de service du modèle de l'agent pour obtenir une réponse.

Code backend gérant les requêtes des utilisateurs

Ce point de terminaison API reçoit les messages des utilisateurs, interagit avec le point de terminaison de service du modèle de l'agent Mosaic AI et renvoie des réponses spécifiques à la tâche.

Dans FastAPI, l'ordre de montage des sous-applications est crucial car il détermine comment les requêtes entrantes sont acheminées.

app.mount("/api", api_app) :

  • Cela monte une sous-application (api_app) à la route /api.
  • Toute requête commençant par /api (par exemple, /api/chat) est acheminée vers cette sous-application.
  • Cela garantit que toutes les requêtes liées à l'API sont traitées par l'instance api_app.

app.mount("/", ui_app) :

  • Cela monte les fichiers statiques du répertoire client/build à la route racine (/).
  • Ceci est généralement utilisé pour servir l'application frontend compilée, qui inclut index.html, JavaScript, CSS et d'autres actifs statiques. La plupart des principaux frameworks d'interface utilisateur (par exemple, React, Vue et Svelte) prennent en charge la compilation en un tel ensemble d'actifs via différents bundlers (par exemple, Vite, Webpack ou esbuild).
  • Toute requête ne commençant pas par /api sera acheminée vers ui_app.
  • Configuration de l'API et Définition du Point d'Accès : Le code définit une application FastAPI avec un point d'accès POST (/chat) sous l'instance api_app qui pointe vers le point d'accès de service de modèle de l'agent Mosaic AI sur Databricks.
  • Injection de Dépendances et Gestion des Requêtes : Le point d'accès utilise le mécanisme d'injection de dépendances de FastAPI (Depends) pour injecter un WorkspaceClient, responsable de l'interaction avec les API Databricks. La fonction chat_with_llm prend une ChatRequest contenant le message de l'utilisateur, le formate en ChatMessage avec le rôle USER, et l'envoie au point d'accès de service en utilisant la méthode client.serving_endpoints.query.
  • Analyse et Retour de la Réponse : La réponse de l'agent est structurée et retournée sous forme de ChatResponse au client.

Déploiement sur les Applications Databricks

1. Préparation du Backend

  • Placez le code FastAPI dans un fichier app.py.
  • Définissez les dépendances dans requirements.txt :
  • Créez un fichier app.yaml :

La section command décrit la configuration du serveur gunicorn avec les spécifications suivantes :

  • server.app:app : Exécute votre application FastAPI.
  • -w 2 : Utilise deux processus de travail pour gérer les requêtes entrantes.
  • uvicorn.workers.UvicornWorker : Utilise les workers Uvicorn, compatibles avec le framework ASGI de FastAPI.

La section env spécifie des paires clé-valeur qui définissent les variables d'environnement à passer à l'application [2] :

  • name : le nom de la variable d'environnement.
  • valueFrom : Pour une valeur définie extérieurement, le nom de la source contenant la valeur. Par exemple, le nom d'un secret ou d'une table de base de données contenant la valeur.

Je mappe les variables d'environnement SERVING_ENDPOINT_NAME au point d'accès de service de modèle Databricks agent_MODEL_NAME_FQN, où MODEL_NAME_FQN représente l'espace de noms à trois niveaux d'Unity Catalog pour catalog.db.model_name.

2. Préparation du Frontend

  • Compilez l'application React avec npm run build et placez les fichiers statiques dans /client/build.

Voici la structure des fichiers :

3. Étapes de Déploiement

  1. Créer l'Application Databricks :
  2. Configurer les Ressources Databricks :
    Je configure les ressources Databricks pour qu'elles correspondent aux fonctionnalités définies dans la section env du fichier app.yaml. Cela inclut la configuration de ressources telles que le point d'accès de service de modèle (agent_MODEL_NAME_FQN).

    L'image ci-dessous montre que l'application chatbot a été créée avec succès :
  3. Synchroniser les Fichiers :
  4. Déployer l'Application :

Après avoir exécuté cette commande, le processus de déploiement prendra quelques minutes. Une fois déployée avec succès, l'URL de l'application Databricks s'affichera, indiquant qu'elle est opérationnelle.

Et vous pouvez commencer à discuter avec. Par exemple, notre efficacité de production est faible. Trouvez le goulot d'étranglement, vérifiez son efficacité et générez un rapport détaillé. Envoyez un e-mail à [email protected] avec le rapport. Analysez également le sentiment du rapport.

Applications Databricks affichant la requête et la réponse de l'utilisateur
Applications Databricks affichant la requête et la réponse de l'utilisateur

Conclusion

L'intégration des Applications Databricks avec React et le Framework d'Agent Mosaic AI offre une solution puissante pour créer des applications de chat dynamiques et interactives. En tirant parti des capacités de traitement de données intégrées de Databricks, du service de modèles sécurisé et de l'infrastructure de déploiement simplifiée, les développeurs peuvent construire des systèmes robustes qui gèrent des requêtes complexes.

L'utilisation de FastAPI comme pont entre le frontend React et les agents Mosaic AI assure une communication fluide. Bien que les Applications Databricks prennent en charge divers frameworks backend Python tels que Flask et Django, FastAPI a été choisi pour son API concise et conviviale.

Cette configuration montre comment des capacités d'IA avancées peuvent être intégrées dans des solutions industrielles pratiques, telles que les chatbots de fabrication, pour améliorer l'efficacité et la prise de décision. Alors que Databricks continue d'améliorer sa plateforme, ces intégrations peuvent s'étendre à des cas d'utilisation plus larges, en en faisant un outil essentiel pour les entreprises qui visent à innover avec des solutions pilotées par l'IA.

Pour référencer le code source, veuillez trouver le dépôt GitHub lié ici.

Références :

[1] Le marché de l'IA dans la fabrication atteindra 84,5 milliards de dollars d'ici 2031. Source :
https://www.meticulousresearch.com/pressrelease/294/ai-in-manufacturing-market

[2] Configuration des applications Databricks. Source :
https://docs.databricks.com/en/dev-tools/databricks-apps/configuration.html#databricks-apps-configuration

L'intégration des Applications Databricks avec React et le Framework d'Agent Mosaic AI offre une solution puissante pour créer des applications de chat dynamiques et interactives. En tirant parti des capacités de traitement de données intégrées de Databricks, du service de modèles sécurisé et de l'infrastructure de déploiement simplifiée, les développeurs peuvent construire des systèmes robustes qui gèrent des requêtes complexes.

Envie de le voir en action ?

Essayez la visite guidée du produit Databricks Apps pour créer les applications de données et d'IA les plus rapides et les plus sûres sur la plateforme d'intelligence de données Databricks.

(Cet article de blog a été traduit à l'aide d'outils basés sur l'intelligence artificielle) Article original

Ne manquez jamais un article Databricks

Abonnez-vous à notre blog et recevez les derniers articles dans votre boîte mail.