Come monitorare l'applicazione LangFlow

Nel nostro articolo sul costruttore di app AI low-code Langflow abbiamo spiegato come iniziare a utilizzare l'ambiente di programmazione visuale di questo costruttore di app AI low-code. Permette a chiunque, anche a chi non ha conoscenze di programmazione, di creare applicazioni alimentate da grandi modelli di reti neurali. Si può trattare di chatbot AI o di applicazioni per l'elaborazione di documenti in grado di analizzare e sintetizzare i contenuti.
Langflow utilizza un approccio a blocchi, in cui gli utenti collegano componenti già pronti per creare l'applicazione desiderata. Tuttavia, spesso si presentano due sfide fondamentali: la risoluzione dei problemi quando le reti neurali si comportano in modo inaspettato e la gestione dei costi. Le reti neurali richiedono notevoli risorse di calcolo, il che rende essenziale monitorare e prevedere le spese per l'infrastruttura.
LangWatch affronta entrambe le sfide. Questo strumento specializzato aiuta gli sviluppatori di Langflow a monitorare le richieste degli utenti, a tenere traccia dei costi e a rilevare le anomalie, ad esempio quando le applicazioni vengono utilizzate in modi non previsti.
Questo strumento è stato originariamente progettato come servizio, ma può essere distribuito su qualsiasi server, anche a livello locale. Si integra con la maggior parte dei fornitori di LLM, siano essi basati su cloud o on-premise. Essendo open source, LangWatch può essere adattato a quasi tutti i progetti: aggiungendo nuove funzionalità o collegandosi ai sistemi interni.
LangWatch consente di impostare avvisi quando determinate metriche superano soglie definite. Questo vi aiuta a rilevare rapidamente aumenti imprevisti dei costi delle richieste o ritardi insoliti nelle risposte. Il rilevamento precoce aiuta a prevenire spese non pianificate e potenziali attacchi al servizio.
Per i ricercatori di reti neurali, questa applicazione consente di monitorare e ottimizzare le richieste più comuni degli utenti. Fornisce inoltre strumenti per valutare la qualità della risposta del modello e apportare le modifiche necessarie.
Avvio rapido
Preparazione del sistema
Come per Langflow, il modo più semplice per eseguire l'applicazione è attraverso un contenitore Docker. Prima di installare LangWatch, è necessario installare Docker Engine sul server. Per prima cosa, aggiornare la cache dei pacchetti e i pacchetti alle loro ultime versioni:
sudo apt update && sudo apt -y upgrade
Installare i pacchetti aggiuntivi richiesti da Docker:
sudo apt -y install apt-transport-https ca-certificates curl software-properties-common
Scaricare la chiave GPG per aggiungere il repository ufficiale di Docker:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
Aggiungere il repository ad APT utilizzando la chiave scaricata e installata in precedenza:
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Aggiornare l'elenco dei pacchetti:
sudo apt update
Per assicurarsi che Docker venga installato dal nuovo repository aggiunto e non da quello di sistema, è possibile eseguire il seguente comando:
apt-cache policy docker-ce
Installa motore Docker:
sudo apt install docker-ce
Verificare che Docker sia stato installato correttamente e che il demone corrispondente sia in esecuzione e nello stato active (running):
sudo systemctl status docker
● docker.service - Docker Application Container Engine Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset> Active: active (running) since Mon 2024-11-18 08:26:35 UTC; 3h 27min ago TriggeredBy: ● docker.socket Docs: https://docs.docker.com Main PID: 1842 (dockerd) Tasks: 29 Memory: 1.8G CPU: 3min 15.715s CGroup: /system.slice/docker.service
Costruire ed eseguire
Con Docker Engine installato e funzionante, è possibile scaricare il repository dell'applicazione LangWatch:
git clone https://github.com/langwatch/langwatch
L'applicazione include un file di configurazione di esempio con variabili di ambiente. Copiare questo file in modo che l'utilità di creazione dell'immagine possa elaborarlo:
cp langwatch/.env.example langwatch/.env
Ora si è pronti per il primo lancio:
sudo docker compose up --build
Il sistema richiederà un momento per scaricare tutti i livelli di contenitore necessari per LangWatch. Una Volta™ completato, verrà visualizzato un messaggio di console che indica che l'applicazione è disponibile all'indirizzo:
http://[LeaderGPU_IP_address]:3000
Navigare a questa pagina nel browser, dove verrà richiesto di creare un account utente:

A differenza di Langflow, questo sistema ha l'autenticazione abilitata per impostazione predefinita. Dopo aver effettuato l'accesso, è necessario configurare il sistema per raccogliere i dati dal server Langflow.
Integrazione con Langflow
Per funzionare, LangWatch ha bisogno di una fonte di dati. Il server è in ascolto sulla porta 3000 e utilizza un'API RESTful, che autentica i dati in arrivo attraverso una chiave API generata automaticamente.
Per abilitare il trasferimento dei dati, è necessario impostare due variabili nei file di configurazione di Langflow: LANGWATCH_ENDPOINT e LANGWATCH_API_KEY. Per prima cosa, stabilite una connessione SSH al vostro server Langflow (che dovrebbe essere offline durante questo processo).
Navigare nella cartella con la configurazione di esempio per Docker:
cd langflow/docker_example
Aprire il file di configurazione per modificarlo:
nano docker-compose.yml
Nella sezione "ambiente:", aggiungere le seguenti variabili (senza parentesi [] o virgolette):
- LANGWATCH_API_KEY= [YOUR_API_KEY]
- LANGWATCH_ENDPOINT=http://[IP_ADDRESS]:3000
Il file YML richiede una formattazione specifica. Seguire queste due regole fondamentali:
- Utilizzare spazi (2 o 4) per l'indentazione, mai tabulazioni.
- Mantenere una struttura gerarchica corretta con rientri coerenti.
Salvate il file con Ctrl + O e uscite dall'editor con Ctrl + X, Langflow è ora pronto per essere lanciato:
sudo docker compose up
Dopo il lancio, verificate che tutto funzioni correttamente. Create un nuovo progetto o apritene uno esistente, quindi avviate un dialogo attraverso Playground. Langflow invierà automaticamente i dati a LangWatch per il monitoraggio, che potrà essere visualizzato nell'interfaccia web.

Nella sezione di verifica dell'integrazione, alla voce "Sincronizza il primo messaggio" appare un segno di spunta. Questo indica che i dati di Langflow stanno confluendo con successo in LangWatch, confermando che la configurazione è corretta. Esaminiamo ciò che appare nella sezione Messages:

La sezione Messaggi visualizza i dati immessi nell'applicazione, i parametri utilizzati per la generazione della risposta e la risposta stessa della rete neurale. È possibile valutare la qualità della risposta e utilizzare vari filtri per ordinare i dati, anche con centinaia o migliaia di messaggi.
Dopo questa configurazione iniziale, è possibile esplorare sistematicamente le funzionalità dell'applicazione. Nella sezione Evaluations è possibile impostare algoritmi di verifica del dialogo per la moderazione o il riconoscimento dei dati, come ad esempio PII Detection. Questa funzione analizza l'input alla ricerca di informazioni sensibili come numeri di previdenza sociale o numeri di telefono.
L'applicazione offre sia opzioni locali che basate sul cloud attraverso fornitori come Azure o Cloudflare. Per utilizzare le funzioni cloud, è necessario disporre di account presso questi servizi, oltre che dei relativi indirizzi endpoint e chiavi API. Tenete presente che si tratta di fornitori di terze parti, quindi verificate direttamente i costi dei loro servizi.
Per le opzioni locali, l'applicazione dispone di sofisticate funzionalità RAG (Retrieval-augmented generation). È possibile misurare l'accuratezza e la pertinenza dei contenuti generati da RAG e utilizzare le statistiche raccolte per ottimizzare il sistema RAG e ottenere risposte di rete neurale più accurate.
Vedi anche:
Aggiornato: 12.08.2025
Pubblicato: 22.01.2025