LangFlow | UI per LangChain per sviluppare applicazioni con LLMs

LangFlow è un'interfaccia utente per LangChain che consente lo sviluppo di applicazioni utilizzando LLMs.

Introduzione

I Large Language Models hanno preso il mondo d’assalto. Con l’ingresso di ChatGPT, GPT3, Bard e altri Large Language Models, gli sviluppatori lavorano costantemente con questi modelli per creare nuove soluzioni di prodotto. Ogni giorno arriva un nuovo Large Language Model o nuove versioni di LLM esistenti. Tenersi aggiornati su queste nuove versioni o nuovi modelli può essere problematico perché bisogna consultare la documentazione di ciascun Large Language Model. LangChain, una libreria che avvolge tutti i diversi LLM, semplifica le cose. Inoltre, è stato introdotto LangFlow, un’interfaccia utente basata su LangChain, per lavorare direttamente con e creare applicazioni, migliorando ulteriormente le cose.

Obiettivi di apprendimento

  • Comprendere l’interfaccia utente di LangFlow
  • Installare e lavorare con LangFlow
  • Apprendere il funzionamento interno di LangFlow
  • Utilizzare LangFlow per creare applicazioni
  • Condividere le applicazioni realizzate attraverso LangFlow

Questo articolo è stato pubblicato come parte del Data Science Blogathon.

Cos’è LangFlow e perché LangFlow?

LangFlow è un’interfaccia utente grafica basata sul pacchetto Python LangChain progettato con react-flow. LangChain è un pacchetto Python che lavora per creare applicazioni con Large Language Models. È costituito da diversi componenti come Agenti, LLM, Catene, Memoria e Prompts. Gli sviluppatori concatenano questi blocchi per creare applicazioni. LangChain contiene wrapper per quasi tutti i popolari Large Language Models. Ora, per utilizzare LangChain, è necessario scrivere il codice per creare le applicazioni. Scrivere il codice a volte può richiedere tempo e può anche essere soggetto a errori.

Ecco dove si inserisce LangFlow. È un’interfaccia grafica basata su LangChain. Contiene tutti i componenti presenti in LangChain. LangFlow fornisce la funzionalità di trascinamento e rilascio, in cui è possibile trascinare i componenti sullo schermo e iniziare a creare applicazioni dai Large Language Models. Contiene anche esempi completi per iniziare. In questo articolo, esamineremo questa interfaccia utente e vedremo come creare applicazioni con essa.

Iniziamo con LangFlow

Ora che abbiamo visto cos’è LangFlow e come si inserisce, immergiamoci per capirne meglio la funzionalità. L’interfaccia utente di LangFlow è disponibile sia per Javascript che per Python. Puoi scegliere uno dei due e iniziare a lavorarci. Per la versione Python, è necessario avere Python nel proprio sistema e la libreria LangChain.

Se si desidera lavorare con LangFlow, è necessario installare i seguenti pacchetti:

pip install langchain
pip install langflow

Ciò installerà il pacchetto Langflow e il pacchetto LangChain. Ora, per avviare l’interfaccia utente, utilizzare il seguente comando:

python -m langflow

(o)

langflow

Ora l’interfaccia utente di LangFlow è in esecuzione. È in esecuzione in locale sulla porta 7860. In questo modo è possibile installare e iniziare a lavorare con LangFlow.

I creatori di LangFlow, ovvero LogSpace AI, hanno direttamente pubblicato LangFlow sul sito web di HuggingFace. È possibile fare clic qui per visitare il sito web di HuggingFace o cercare su Google. Avrà un aspetto simile a quello mostrato di seguito, quindi fare clic su Nuovo Progetto.

Quando si fa clic su Crea Nuovo Progetto, verrà visualizzata l’interfaccia utente di LangFlow.

Qui lo spazio bianco è dove creeremo le applicazioni trascinando i componenti. E i componenti sono presenti sul lato sinistro (Agenti, Catene, Caricatori, ecc). Quindi, quando si fa clic su Comps, verranno visualizzati diversi tipi, tra cui ne selezionerai uno e lo trascinerai nello spazio bianco. Nello spazio bianco, combinerai diversi componenti per creare l’intera applicazione.

Comprensione dell’interfaccia utente di LangFlow

In questa sezione, comprenderemo brevemente l’interfaccia utente di LangFlow, gli elementi presenti e il suo funzionamento, per avere una migliore comprensione di come creare rapidamente applicazioni con Large Language con LangFlow.

Nella foto sopra, vediamo la sezione in alto a destra dell’interfaccia utente di LangFlow. I significati delle icone sono comprensibili. La seconda icona rappresenta l’opzione di Esportazione. Quindi, quando creiamo un’applicazione attraverso LangFlow e ora vogliamo scaricarla sulla nostra macchina locale, possiamo farlo convertendo la configurazione dell’applicazione in un file JSON. Cliccando sull’opzione Esportazione, potrai scaricare il file JSON che contiene le informazioni della tua applicazione. Ora, se il tuo amico vuole creare la stessa applicazione, può semplicemente cliccare sulla prima opzione che è Importazione, e quindi passare il tuo file JSON ad essa.

La terza opzione converte la tua applicazione in un codice Python, con il quale puoi lavorare direttamente nel tuo sistema locale, invece di andare sul sito web di LangFlow ogni volta che vuoi utilizzare quell’applicazione.

LangChain ha wrapper per molti modelli di linguaggio avanzati. Ogni modello di linguaggio avanzato ha la sua API con cui lavorare. Quindi, quando proviamo a lavorare con un modello di linguaggio avanzato in LangFlow, ci offre l’opzione di aggiungere la chiave API che può essere vista sopra. Insieme a ciò, abbiamo anche l’opzione di selezionare il tipo di modello di linguaggio avanzato con cui vogliamo lavorare.

Creazione di un’applicazione di chat semplice con LangFlow

In questa sezione, creeremo un’applicazione di chatbot semplice che funziona con l’interfaccia utente di LangFlow. Questa applicazione coinvolge il lavoro con modelli di linguaggio avanzati di OpenAI, quindi è necessaria una chiave API di Open. L’applicazione che creeremo è un chatbot che risponderà in modo divertente alle domande dell’utente.

Quindi, l’applicazione che creeremo avrà 3 elementi, il modello di linguaggio avanzato, il template di prompt e la catena LLM che li collega. Iniziamo prima trascinando il wrapper di LangChain per OpenAI nella sezione tratteggiata dell’interfaccia utente.

Wrapper del modello di linguaggio avanzato di OpenAI

Il wrapper del modello di linguaggio avanzato di OpenAI si trova nella sezione LLM di LangFlow. Possiamo trascinarlo nella sezione bianca. Qui selezioniamo il tipo di modello con cui vogliamo lavorare. Per ora, lo imposto su modalità Davinci. E la temperatura, ovvero quanto creativo dovrebbe essere il modello, è impostata su 0,7 e i token massimi su 256. Nel campo Chiave API aperta, dobbiamo fornire la chiave API aperta, e il campo sottostante può essere lasciato vuoto.

Dalla foto, vediamo che abbiamo trascinato il template di prompt nella sezione bianca. Qui l’applicazione che stiamo sviluppando è un semplice bot che risponde in modo divertente, quindi dobbiamo scrivere il template di prompt di conseguenza.

Template di prompt

Sei un bot AI che risponde a ogni domanda posta dall'utente in modo divertente.

Umano: {query}

AI:

Ora passiamo all’ultimo elemento, che è l’elemento Catena. La catena LLM è quella che combina il nostro modello di linguaggio avanzato di OpenAI e il template di prompt insieme. Possiamo vedere che la LLMChain si trova nella sezione Catene sul lato sinistro dell’interfaccia utente. Infine, è ora di collegare tutto insieme.

Come mostrato nelle immagini sopra, collega il Prompt Template al Prompt di LLMChain e collega l’estremità OpenAI all’estremità LLM di LLMChain.

Ora è il momento di testare la nostra applicazione. Per farla funzionare, fai clic sull’icona del fulmine presente nella parte inferiore destra dell’interfaccia utente. Se la chiave OpenAI è valida, allora su ciascuno degli Elementi, in alto, vicino al nome degli elementi, verrà visualizzato un punto verde (inizialmente è giallo) e quindi verrà visualizzata un’icona di chat blu sotto l’icona del fulmine. Fai clic sull’icona di chat blu.

Dopo aver cliccato su di essa, si aprirà una finestra di chat per chattare. Ora puoi chattare con il Modello di Linguaggio Avanzato che abbiamo dato nell’interfaccia utente. Proviamo a chiedere al bot “Come stai?”, per questo, il bot deve dare una risposta divertente.

Possiamo vedere che il bot ha risposto divertentemente seguendo il nostro Prompt Template. Condividi con chiunque esportandolo in formato JSON. Questo è solo uno dei casi d’uso di esempio di ciò che possiamo ottenere con LangFlow e LangChain.

Conclusioni

L’interfaccia utente di LangFlow è costruita su Python’s LangChain Framework, un pacchetto con cui si lavora ampiamente per creare applicazioni con Modelli di Linguaggio Avanzato. Abbiamo visto i Componenti nell’interfaccia utente e abbiamo visto come si possono creare modelli con l’interfaccia utente e condividerli con un’altra persona esportandoli in un file JSON. Con questa interfaccia utente, le possibilità di creare applicazioni di alta qualità sono infinite.

Punti chiave

  • LangFlow offre una funzionalità di trascinamento semplice per costruire applicazioni con LLMs
  • L’interfaccia utente di LangFlow è disponibile sia in Python che in JavaScript
  • Questa interfaccia utente consente agli utenti di convertire la loro applicazione in file JSON, rendendoli così facili da condividere
  • LangFlow include anche un pacchetto Python, che l’utente può installare ed eseguire l’applicazione creata in LangFlow fornendo il percorso del file JSON
  • LangFlow rende più facile per i non sviluppatori creare applicazioni con Modelli di Linguaggio Avanzato

Domande frequenti

I media mostrati in questo articolo non sono di proprietà di Analytics Vidhya e sono utilizzati a discrezione dell’autore.