Passa al contenuto principale

Creare app Databricks con React e Mosaic AI Agents per soluzioni di chat aziendali

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

Pubblicato: 22 marzo 2025

Industria manifatturiera9 min di lettura

Le Databricks Apps offrono una piattaforma robusta per la creazione e l'hosting di applicazioni interattive. React è ottimo per creare applicazioni web moderne e dinamiche che necessitano di aggiornamenti fluidi e un aspetto curato. Combinando questa piattaforma con un frontend basato su React e il Mosaic AI Agent Framework, gli sviluppatori possono creare applicazioni di chat efficienti e intelligenti. Questo blog si concentra sull'implementazione tecnica di una chatbot ospitata su Databricks e ne dimostra il potenziale con un caso d'uso specifico del settore: un Chatbot per la Gestione delle Operazioni di Produzione.

Integrazione tra Databricks Apps e Mosaic AI

Panoramica dell'architettura:

L'utente invia una query a Databricks Apps, instradandola all'endpoint di model serving
L'utente invia una query a Databricks Apps, instradandola all'endpoint di model serving

Punti di forza principali di Databricks Apps

Le Databricks Apps si integrano nativamente con:

  • Databricks SQL: Per interrogare grandi set di dati in modo efficiente.
  • Unity Catalog: Per la governance centralizzata dei dati e il controllo degli accessi.
  • Model Serving: Per distribuire modelli di machine learning su larga scala.
  • Serving Endpoints: Per query efficienti ai modelli ML e agli agenti LLM.
  • Jobs: Per pipeline ETL e processi di workflow.

Le Databricks Apps eliminano la necessità di infrastrutture di hosting esterne. Le applicazioni ereditano le funzionalità integrate della piattaforma per la sicurezza, la conformità e la gestione delle risorse, semplificando la distribuzione e la manutenzione.

Le Databricks Apps supportano un'ampia gamma di framework come Dash, Streamlit, Gradio, Flask e FastAPI. Questa flessibilità consente applicazioni sia ricche di dati che visivamente accattivanti.

Cos'è il Mosaic AI Agent Framework?

Il Mosaic AI Agent Framework è un set di strumenti su Databricks che aiuta gli sviluppatori a creare, distribuire e gestire agenti AI, come quelli utilizzati nella Retrieval-Augmented Generation (RAG). Si integra con framework come LangChain e LlamaIndex e utilizza funzionalità Databricks come Unity Catalog per la governance dei dati e il tool-calling.

Gli sviluppatori possono registrare e testare agenti con MLflow, debuggarne il comportamento e migliorarne le prestazioni. Funzionalità come il logging delle richieste, lo streaming dei token di risposta e le app di revisione rendono più semplice la creazione e la distribuzione di agenti AI per casi d'uso reali.

Caso d'uso: Chatbot per la Gestione delle Operazioni di Produzione

La Gestione delle Operazioni di Produzione (MOM) è cruciale per ottimizzare i processi produttivi, migliorare l'efficienza e mantenere la competitività nel panorama industriale in rapida evoluzione di oggi.

La domanda di gestione delle operazioni tramite agenti AI con interfacce in linguaggio naturale è in rapida crescita, guidata dalla necessità di maggiore efficienza, miglioramento del processo decisionale e esperienze utente potenziate.

Secondo l'ultima pubblicazione di Meticulous Research® (fonte), il mercato dell'AI nella produzione dovrebbe raggiungere 84,5 miliardi di dollari entro il 2031, con un CAGR del 32,6% durante il periodo di previsione 2024–2031 [1]. Questa crescita significativa sottolinea il crescente riconoscimento dell'importanza della gestione delle operazioni basata sull'AI in vari settori.

Un'azienda manifatturiera che implementa il chatbot Mosaic AI sfruttando il tool-calling può assistere i responsabili di produzione in:

Analisi dei colli di bottiglia

  • Funzione dello strumento: Interroga Databricks SQL utilizzando la funzione identify_bottleneck_station per determinare la stazione che causa i maggiori ritardi.
  • Esempio di query: "Qual è l'attuale collo di bottiglia nella linea di assemblaggio?"
  • Risposta: "La Stazione 5 è l'attuale collo di bottiglia, con un ritardo medio di 15 minuti per ciclo."

Monitoraggio delle scorte

  • Funzione dello strumento: Chiama check_inventory_levels per recuperare dati di magazzino in tempo reale per una stazione specificata.
  • Esempio di query: "Abbiamo abbastanza materiali per la Stazione 3?"
  • Risposta: "La Stazione 3 ha abbastanza materiali per i prossimi cinque cicli di produzione.”

Queste query possono essere facilmente implementate come funzioni memorizzate in Unity Catalog, utilizzando SQL o Python. Quindi un agente AI può eseguire attività come il recupero dati, l'esecuzione di codice e il processo decisionale basato sul contesto sfruttando le chiamate di funzione. Sebbene qui non approfondiremo i dettagli della configurazione dell'agente per il tool-calling, puoi fare riferimento al Databricks Generative AI Cookbook qui per una guida dettagliata.

Una volta che l'agente Mosaic AI è configurato per gestire vari strumenti, può essere distribuito come endpoint di model serving su Databricks. Questo endpoint funge da interfaccia backend, consentendo alle applicazioni frontend come i chatbot di inviare query e ricevere insight in tempo reale.

Endpoint di model serving del chatbot dell'agente per ricevere query
Endpoint di model serving del chatbot dell'agente per ricevere query

Ecco l'interfaccia del chatbot in esecuzione in locale; in seguito, la dimostreremo dopo la distribuzione su Databricks Apps.

Il frontend localhost che visualizza le query e le risposte dell'utente
Il frontend localhost che visualizza le query e le risposte dell'utente

Implementazione di Databricks Apps

1. Frontend con React

Il frontend React fornisce un'interfaccia interattiva e user-friendly per interrogare il chatbot e visualizzare le risposte. Le funzionalità principali includono il rendering dei messaggi in tempo reale, l'invio di query e la gestione delle risposte del bot, un'interfaccia utente interattiva con feedback e supporto Markdown.

Codice Frontend che Invia Messaggi al Backend

API Client: Axios viene utilizzato per effettuare richieste HTTP. Il baseURL viene impostato dinamicamente in base all'ambiente (sviluppo o produzione).

HandleSendMessage: Cattura l'input dell'utente, invia il messaggio all'endpoint API /api/chat e aggiorna la cronologia della chat con i messaggi dell'utente e del bot.

2. Backend con FastAPI

Il backend FastAPI funge da ponte tra il frontend React e gli agenti Mosaic AI. Instrada le query degli utenti all'endpoint di model serving dell'agente per ottenere una risposta.

Codice Backend che Gestisce le Query degli Utenti

Questo endpoint API riceve i messaggi degli utenti, interagisce con l'endpoint di model serving dell'agente Mosaic AI e restituisce risposte specifiche per l'attività.

In FastAPI, l'ordine di montaggio delle sotto-applicazioni è cruciale perché determina come vengono instradate le richieste in arrivo.

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

  • Questo monta una sotto-applicazione (api_app) al percorso /api.
  • Qualsiasi richiesta che inizia con /api (ad esempio, /api/chat) viene instradata a questa sotto-applicazione.
  • Ciò garantisce che tutte le richieste relative alle API vengano elaborate dall'istanza api_app.

app.mount("/", ui_app):

  • Questo monta i file statici dalla directory client/build al percorso radice (/).
  • Questo viene tipicamente utilizzato per servire l'applicazione frontend compilata, che include index.html, JavaScript, CSS e altre risorse statiche. La maggior parte dei principali framework UI (ad esempio, React, Vue e Svelte) supporta la compilazione in un set di risorse tramite diversi bundler (ad esempio, Vite, Webpack o esbuild).
  • Qualsiasi richiesta che non inizia con /api verrà instradata a ui_app.
  • Configurazione dell'API e Definizione dell'Endpoint: Il codice definisce un'applicazione FastAPI con un endpoint POST (/chat) sull'istanza api_app che punta all'endpoint di model-serving dell'agente Mosaic AI su Databricks.
  • Dependency Injection e Gestione delle Richieste: L'endpoint utilizza il meccanismo di dependency injection di FastAPI (Depends) per iniettare un WorkspaceClient, responsabile dell'interazione con le API Databricks. La funzione chat_with_llm accetta una ChatRequest contenente il messaggio dell'utente, lo formatta come ChatMessage con il ruolo USER e lo invia all'endpoint di serving utilizzando il metodo client.serving_endpoints.query.
  • Parsing della Risposta e Restituzione: La risposta dell'agente viene strutturata e restituita come ChatResponse al client.

Deployment su Databricks Apps

1. Preparazione del Backend

  • Posiziona il codice FastAPI in un file app.py.
  • Definisci le dipendenze in requirements.txt:
  • Crea un file app.yaml:

La sezione command delinea la configurazione del server gunicorn con le seguenti specifiche:

  • server.app:app: Esegue la tua applicazione FastAPI.
  • -w 2: Utilizza due processi worker per gestire le richieste in arrivo.
  • uvicorn.workers.UvicornWorker: Utilizza i worker Uvicorn, compatibili con il framework ASGI di FastAPI.

La sezione env specifica coppie chiave-valore che definiscono le variabili d'ambiente da passare all'app [2]:

  • name: il nome della variabile d'ambiente.
  • valueFrom: Per un valore definito esternamente, il nome della sorgente contenente il valore. Ad esempio, il nome di un segreto o di una tabella di database contenente il valore.

Sto mappando le variabili d'ambiente SERVING_ENDPOINT_NAME all'endpoint di model-serving delle risorse Databricks agent_MODEL_NAME_FQN, dove MODEL_NAME_FQN rappresenta il namespace a tre livelli di Unity Catalog per catalog.db.model_name.

2. Preparazione del Frontend

  • Compila l'app React con npm run build e posiziona i file statici in /client/build.

Ecco la struttura dei file:

3. Passaggi di Deployment

  1. Crea l'App Databricks:
  2. Configura le Risorse Databricks:
    Sto configurando le risorse Databricks per allinearle alle funzionalità definite nella sezione env del file app.yaml. Ciò include la configurazione di risorse come l'endpoint di model-serving (agent_MODEL_NAME_FQN).

    L'immagine seguente mostra che l'app chatbot è stata creata con successo:
  3. Sincronizza i File:
  4. Esegui il Deployment dell'App:

Dopo aver eseguito questo comando, il processo di deployment richiederà alcuni minuti. Una volta completato con successo, verrà visualizzato l'URL dell'App Databricks, indicando che è attiva e funzionante.

E puoi iniziare a chattare con essa. Ad esempio, la nostra efficienza produttiva è bassa. Trova il collo di bottiglia, controlla la sua efficienza e genera un report dettagliato. Invia un'email a [email protected] con il report. Analizza anche il sentiment del report.

Databricks Apps che mostra la query dell'utente e la risposta
Databricks Apps che mostra la query dell'utente e la risposta

Conclusione

L'integrazione di Databricks Apps con React e il Mosaic AI Agent Framework offre una soluzione potente per la creazione di applicazioni di chat dinamiche e interattive. Sfruttando le capacità di elaborazione dati integrate di Databricks, il model-serving sicuro e l'infrastruttura di deployment semplificata, gli sviluppatori possono creare sistemi robusti in grado di gestire query complesse.

L'uso di FastAPI come ponte tra il frontend React e gli agenti Mosaic AI garantisce una comunicazione fluida. Sebbene Databricks Apps supporti vari framework backend Python come Flask e Django, FastAPI è stato scelto per la sua API concisa e user-friendly.

Questa configurazione dimostra come le capacità avanzate di AI possano essere integrate in soluzioni pratiche del settore, come i chatbot per la produzione, per migliorare l'efficienza e il processo decisionale. Poiché Databricks continua a evolvere la sua piattaforma, queste integrazioni possono espandersi per soddisfare casi d'uso più ampi, rendendola uno strumento essenziale per le aziende che mirano a innovare con soluzioni basate sull'AI.

Per fare riferimento al codice sorgente, si prega di trovare il repository GitHub collegato qui.

Riferimenti:

[1] Il mercato dell'AI nella produzione raggiungerà gli 84,5 miliardi di dollari entro il 2031. Fonte:
https://www.meticulousresearch.com/pressrelease/294/ai-in-manufacturing-market

[2] Configurazione delle app Databricks. Fonte:
https://docs.databricks.com/en/dev-tools/databricks-apps/configuration.html#databricks-apps-configuration

L'integrazione di Databricks Apps con React e il Mosaic AI Agent Framework offre una soluzione potente per la creazione di applicazioni di chat dinamiche e interattive. Sfruttando le capacità di elaborazione dati integrate di Databricks, il model-serving sicuro e l'infrastruttura di deployment semplificata, gli sviluppatori possono creare sistemi robusti in grado di gestire query complesse.

Vuoi vederlo in azione?

Prova il Databricks Apps Product Tour per creare le applicazioni di dati e AI più veloci e sicure sulla Databricks Data Intelligence Platform.

(Questo post sul blog è stato tradotto utilizzando strumenti basati sull'intelligenza artificiale) Post originale

Non perdere mai un post di Databricks

Iscriviti al nostro blog e ricevi gli ultimi post direttamente nella tua casella di posta elettronica.