Home topics LangChain Che cos'è LangChain?
Scopri watsonx.ai
Un'illustrazione di una catena composta da numeri e lettere
Che cos'è LangChain?

LangChain è un framework di orchestrazione open source per lo sviluppo di applicazioni che utilizzano modelli linguistici di grandi dimensioni (LLM, large language model). Gli strumenti e le API di LangChain sono disponibili nelle librerie basate su Python e JavaScript e semplificano il processo di creazione di applicazioni basate su LLM come chatbot e agenti virtuali. 

LangChain funge da interfaccia generica per quasi tutti gli LLM, fornendo un ambiente di sviluppo centralizzato per creare applicazioni LLM e integrarle con fonti di dati esterne e workflow di software. L'approccio di LangChain basato sui moduli consente agli sviluppatori e ai data scientist di confrontare in modo dinamico diversi prompt e anche vari modelli di fondazione senza dover riscrivere il codice. Questo ambiente modulare consente inoltre di usare programmi che utilizzano più LLM: ad esempio, un'applicazione che utilizza un LLM per interpretare le query degli utenti e un altro LLM per scrivere una risposta. 

Lanciato da Harrison Chase a ottobre 2022, l'ascesa fino alla notorietà di LangChain è stata rapidissima: a giugno 2023 era l'unico progetto open source in più rapida crescita su Github.1 In concomitanza con l'importante lancio di ChatGPT di OpenAI del mese successivo, LangChain ha svolto un ruolo determinante nel rendere l'AI generativa più accessibile agli appassionati, sulla scia della sua grande popolarità. 

LangChain può semplificare la maggior parte dei casi d'uso per gli LLM e l'elaborazione del linguaggio naturale (NLP, natural language processing), come chatbot, ricerca intelligente, risposta alle domande, servizi di riepilogo o anche agenti virtuali in grado di attuare la Robotic Process Automation.

Integrazioni con gli LLM

Gli LLM non sono applicazioni autonome: sono modelli statistici pre-addestrati che devono essere abbinati a un'applicazione (e, in alcuni casi, a fonti di dati specifiche) per raggiungere il loro scopo. 

Ad esempio, Chat-GPT non è un LLM: è un'applicazione chatbot che, a seconda della versione scelta, utilizza il modello linguistico GPT-3.5 o GPT-4. Il modello GPT interpreta l'input dell'utente e compone una risposta con il linguaggio naturale, mentre l'applicazione (tra le altre cose) fornisce un'interfaccia che consente all'utente di digitare, leggere e che offre un design UX che controlla l'esperienza del chatbot. Anche a livello aziendale, Chat-GPT non è l'unica applicazione che utilizza il modello GPT: Microsoft usa GPT-4 per Bing Chat. 

Inoltre, anche se i modelli di fondazione (come quelli per gli LLM) sono pre-addestrati su enormi set di dati, non sono onniscienti. Se un particolare compito richiede l'accesso a informazioni contestuali specifiche, come la documentazione interna o la competenza di dominio, gli LLM devono essere collegati a queste fonti di dati esterne. Anche se desideri semplicemente che il tuo modello rifletta gli eventi attuali in tempo reale, sono necessarie informazioni esterne: i dati interni di un modello sono aggiornati solo nell'arco di tempo durante il quale sono stati pre-addestrati. 

Allo stesso modo, se una certa attività di AI generativa richiede l'accesso a workflow di software esterni (ad esempio se desideri che il tuo agente virtuale si integri con Slack), allora ti servirà un modo per integrare l'LLM con l'API per quel software. 

Sebbene queste integrazioni siano generalmente ottenibili con codice completamente manuale, i framework di orchestrazione come LangChain e la piattaforma IBM watsonx semplificano notevolmente il processo.Rendono inoltre molto più semplice provare diversi LLM per confrontare i risultati, in quanto i modelli diversi sono scambiabili all'interno e all'esterno con modifiche minime al codice.

Open source @ IBM

Dalla blockchain ai container, dall'AI ai sistemi operativi, e tutto ciò che c'è in mezzo, i nostri sviluppatori creano progetti open source emergenti e li circondano di codice, documentazione e materiale di supporto, così potrai partecipare all'innovazione.

Contenuti correlati

Iscriviti alle newsletter IBM

Come funziona LangChain?

Al centro di LangChain c'è un ambiente di sviluppo che facilita la programmazione delle applicazioni LLM con l'uso dell' astrazione: la semplificazione del codice mediante la rappresentazione di uno o più processi complessi sotto forma di un componente denominato che racchiude tutti i suoi passaggi costitutivi.

Le astrazioni sono un elemento comune della vita quotidiana e del linguaggio. Ad esempio, grazie a π possiamo rappresentare il rapporto tra la lunghezza della circonferenza di un cerchio e quella del suo diametro, senza dover scrivere le sue infinite cifre. Allo stesso modo, un termostato ci consente di controllare la temperatura di casa senza dover comprendere i complessi circuiti che ciò comporta: dobbiamo solo sapere in che modo le diverse impostazioni del termostato si traducono in temperature diverse.

In sostanza, LangChain è una libreria di astrazioni per Python e Javascript, che rappresenta i passaggi e i concetti comuni necessari per lavorare con i modelli linguistici. Questi componenti modulari, come le funzioni e le classi di oggetti, fungono da elementi costitutivi dei programmi di AI generativa. Possono essere concatenati insieme per creare applicazioni, riducendo al minimo la quantità di codice e la comprensione approfondita necessaria per eseguire attività complesse di NPL. Sebbene l'approccio astratto di LangChain potrebbe limitare la misura in cui un programmatore esperto può personalizzare davvero un'applicazione, consente sia agli specialisti sia ai principianti di sperimentare e creare prototipi in modo rapido.

Importazione di modelli linguistici

Su LangChain è possibile utilizzare quasi tutti gli LLM. Importare modelli linguistici su LangChain è semplice, purché si disponga di una chiave API. La classe LLM è progettata per fornire un'interfaccia standard per tutti i modelli.

La maggior parte dei provider di LLM ti chiederà di creare un account per ricevere una chiave API. Alcune API possono comportare costi, soprattutto quelle per modelli proprietari closed source, come quelle offerte da OpenAI o Anthropic.

È possibile accedere a molti modelli open source, come BLOOM di BigScience, LLaMa di Meta AI e Flan-T5 di Google, tramite Hugging Face (link esterno a ibm.com).IBM watsonx, grazie alla sua partnership con Hugging Face, offre anche una suite accurata di modelli open source.Se crei un account con uno dei due servizi potrai generare una chiave API per uno qualsiasi dei modelli offerti da quel provider.

LangChain non si limita ai modelli di fondazione predefiniti: la classe CustomLLM (link esterno a ibm.com) consente di usufruire di wrapper LLM. Allo stesso modo, puoi utilizzare le API IBM watsonx e l'SDK Python, che include un'integrazione LangChain, per creare applicazioni su LangChain con modelli che hai già ottimizzato o addestrato per le tue esigenze specifiche usando la classe WatsonXLLM (e l'ID di progetto specifico per il modello).

Esplora la demo: utilizzo di watsonx e LangChain per effettuare una serie di chiamate a un modello linguistico
Modelli di prompt

I prompt sono le istruzioni fornite a un LLM. Spesso l'ingegneria dei prompt viene definita come l'arte di comporre prompt che forniscano in modo efficiente il contesto necessario all'LLM per interpretare l'input e strutturare l'output nel modo più utile per l'utente.

La classe PromptTemplate su LangChain formalizza la composizione dei prompt senza dover codificare manualmente il contesto e le query. Gli elementi importanti di un prompt sono immessi allo stesso modo come classi formali, come input_variables. Un modello di prompt può quindi contenere e riprodurre il contesto, le istruzioni (come "non usare termini tecnici"), una serie di esempi per guidare le risposte (nella cosiddetta generazione di prompt few-shot), un formato di output specifico o una domanda standardizzata a cui rispondere.  Puoi salvare e denominare un modello di prompt strutturato in modo efficace e, se necessario, riutilizzarlo facilmente.

Sebbene questi elementi siano codificabili manualmente, i moduli PromptTemplate si integrano perfettamente con altre funzioni di LangChain, come le catene eponime.

Guarda il video: ingegneria dei prompt e ottimizzazione dei prompt
Catene

Come suggerisce il nome, le catene sono il fulcro dei workflow di LangChain. Uniscono gli LLM ad altri componenti, creando applicazioni mediante l'esecuzione di una sequenza di funzioni. 

La catena più basilare è LLMChain, che chiama semplicemente un modello e un modello di prompt per quel modello. Ad esempio, immagina di aver salvato un prompt come “ExamplePrompt" e di volerlo confrontare con Flan-T5. Puoi importare LLMChain da langchain.chains, quindi definire chain_example = LLMChain(llm = flan-t5, prompt = ExamplePrompt). Per eseguire la catena per un dato input, dovrai semplicemente chiamare chain_example.run(“input”).

Per utilizzare l'output di una funzione come input per quella successiva, puoi usare SimpleSequentialChain. A seconda delle tue esigenze specifiche, ogni funzione potrebbe utilizzare prompt diversi, strumenti diversi, parametri diversi o persino modelli diversi.

Indici

Per svolgere determinati compiti, gli LLM dovranno accedere a specifiche fonti di dati esterne non incluse nel set di dati della sua formazione, come documenti, e-mail o set di dati interni. LangChain si riferisce collettivamente a questa documentazione esterna con il termine di indici.

Caricatori di documenti 
LangChain offre un'ampia gamma di caricatori di documenti per applicazioni di terze parti (link esterno a ibm.com). Ciò consente di importare facilmente i dati da fonti come, tra le tante, servizi di archiviazione file (come Dropbox, Google Drive e Microsoft OneDrive), contenuti web (come YouTube, PubMed o URL specifici), strumenti di collaborazione (come Airtable, Trello, Figma e Notion) e database (come Pandas, MongoDB e Microsoft).

Database vettoriali 
A differenza dei tradizionali database strutturati, i database vettoriali rappresentano i punti dati e li convertono in incorporamenti vettoriali: rappresentazioni numeriche sotto forma di vettori con un numero fisso di dimensioni, che spesso raggruppano punti dati correlati utilizzando metodi di apprendimento non supervisionati. Ciò consente query a bassa latenza, anche per set di dati di grandi dimensioni, il che aumenta notevolmente l'efficienza. Gli incorporamenti vettoriali memorizzano anche i metadati di ogni vettore, migliorando ulteriormente le possibilità di ricerca.

LangChain fornisce integrazioni per oltre 25 metodi di incorporamento diversi e anche per più di 50 archivi vettoriali differenti (su cloud e locali). 

Divisori di testo 
Per aumentare la velocità e ridurre le esigenze di calcolo, spesso è consigliabile suddividere i documenti di testo di grandi dimensioni in parti più piccole. I TextSplitter di LangChain suddividono il testo in piccoli blocchi significativi dal punto di vista semantico, che possono quindi essere combinati usando metodi e parametri scelti da te.

Recupero 
Dopo aver collegato le fonti esterne di conoscenza, il modello deve essere in grado di recuperare e integrare rapidamente le informazioni rilevanti all'occorrenza.Come watsonx, LangChain offre la retrieval augmented generation (RAG): i suoi moduli di recupero accettano una query string come input e restituiscono un elenco di documenti come output.

Memoria

Per impostazione predefinita, gli LLM non sono dotati di memoria a lungo termine per le conversazioni precedenti (a meno che la cronologia della chat non venga utilizzata come input per una query). LangChain risolve questo problema con semplici utility per aggiungere memoria a un sistema, con opzioni che vanno dal conservare tutte le conversazioni al conservare un riepilogo della conversazione fino a quel momento al conservare gli n scambi più recenti.

Agenti

Gli agenti LangChain possono utilizzare un determinato modello linguistico come motore di ragionamento per stabilire quali azioni intraprendere. Quando si crea una catena per un agente, gli input comprendono:

  • un elenco di strumenti disponibili da sfruttare;
  • input dell'utente (come prompt e query);
  • tutte le fasi pertinenti eseguite in precedenza.
Ulteriori informazioni sugli agenti su LangChain
Strumenti

Nonostante la potenza e versatilità annunciate, gli LLM hanno limitazioni importanti: in particolare, la mancanza di informazioni aggiornate, la mancanza di competenze specifiche del dominio e difficoltà generale con la matematica. 

Gli strumenti LangChain  (link esterno a ibm.com) sono un insieme di funzioni che consentono agli agenti LangChain di interagire con le informazioni del mondo reale al fine di espandere o migliorare i servizi che può fornire. Esempi di importanti strumenti di LangChain:

  • Wolfram Alpha: fornisce l'accesso a potenti funzioni di calcolo e di visualizzazione dei dati, offrendo funzionalità matematiche sofisticate.

  • Google Search: fornisce l'accesso alle applicazioni di Google Search, offrendo alle applicazioni e agli agenti informazioni in tempo reale.

  • OpenWeatherMap: recupera le informazioni sul meteo.

  • Wikipedia: fornisce l'accesso efficiente alle informazioni degli articoli di Wikipedia.

LangSmith

Rilasciato nell’autunno del 2023, LangSmith mira a colmare il divario tra le funzionalità accessibili di prototipazione che hanno portato LangChain alla ribalta e la creazione di applicazioni LLM di qualità.

LangSmith fornisce strumenti per monitorare, valutare ed eseguire il debug delle applicazioni, tra cui la possibilità di tracciare automaticamente tutte le chiamate ai modelli per individuare gli errori e testare le prestazioni con diverse configurazioni dei modelli. Questa visibilità mira a rafforzare le applicazioni, per farle diventare più robuste e convenienti.

Inizia con LangChain

LangChain è open source e gratuito: il codice sorgente è disponibile per il download su Github (link esterno a ibm.com). 

LangChain può essere installato anche su Python con un semplice comando pip: pip install langchain.  Per installare tutte le dipendenze di LangChain (anziché solo quelle che ritieni necessarie), puoi eseguire il comando pip install langchain[all].

Molti tutorial dettagliati sono disponibili nell'ampio ecosistema della comunità LangChain e nella documentazione ufficiale su  docs.langchain.com (link esterno a ibm.com).

Casi d'uso di LangChain

Le applicazioni realizzate con LangChain offrono ottime utility per diversi casi d'uso, da semplici attività di risposta a domande e compiti di generazione di testo a soluzioni più complesse che utilizzano un LLM come motore di ragionamento.

  • Chatbot: i chatbot rappresentano alcuni degli usi più intuitivi degli LLM. LangChain può essere utilizzato per fornire un contesto adeguato per l'uso specifico di un chatbot e per integrare i chatbot nei canali di comunicazione e nei workflow esistenti con le proprie API.
  • Riepilogo: i modelli linguistici possono essere incaricati di riassumere molti tipi di testo, dall'analisi di articoli e trascrizioni di tipo accademico complessi al fornire un riassunto delle e-mail in arrivo.
  • Risposta alle domande: utilizzando documenti specifici o basi di conoscenza specializzate (come Wolfram, arXiv o PubMed), gli LLM possono recuperare informazioni rilevanti dallo storage e articolare risposte utili. Se vengono ottimizzati o se il prompt viene eseguito correttamente, alcuni LLM possono rispondere a molte domande anche senza informazioni esterne.
  • Aumento dei dati: è possibile utilizzare gli LLM per generare dati sintetici da utilizzare nel machine learning. Ad esempio, un LLM può essere addestrato a generare campioni di dati aggiuntivi che somigliano molto ai punti dati in un set di dati di addestramento.
  • Agenti virtuali:, i moduli Agente di LangChain sono integrati con i workflow corretti e possono utilizzare un LLM per decidere i prossimi passi in modo autonomo e agire utilizzando la Robotic Process Automation (RPA).
Soluzioni correlate
watsonx.ai

È possibile istruire, convalidare, adattare e distribuire AI generativa, modelli di fondazione e funzionalità di machine learning con facilità e creare applicazioni AI in una frazione del tempo con una frazione dei dati.

Esplora watsonx.ai

Servizi di consulenza AI

Ripensa il modo in cui lavori con l'AI: il nostro team globale e diversificato, composto da oltre 20.000 esperti di AI, può aiutarti a progettare e scalare l'AI e l'automazione in tutta l'azienda in modo rapido e sicuro, lavorando con la nostra tecnologia IBM watsonx e  con un ecosistema aperto di partner, per fornire qualsiasi modello AI, su qualsiasi cloud, guidato da etica e fiducia.

Esplora i servizi di consulenza AI di IBM

watsonx.data

Scala i workload di analytics e AI per tutti i tuoi dati, ovunque, grazie a watsonx.data, l'unico archivio dati del settore che è aperto, ibrido e governato.

Esplora watsonx.data
Risorse per LangChain

Strumenti, suggerimenti e codice di esempio per iniziare a creare applicazioni con LangChain e watsonx.

Suggerimenti per scrivere i prompt dei modelli di fondazione

Part art, part science, ingegneria dei prompt è il processo per creare testo per i prompt nel modo migliore, per un certo modello e parametri determinati. Questi suggerimenti ti aiuteranno a eseguire correttamente il prompt per la maggior parte dei modelli di fondazione che generano testo.

Utilizzare watsonx e LangChain per chiamare un modello linguistico

Questo taccuino contiene i passaggi e il codice per dimostrare Simple Sequential Chain utilizzando l'integrazione di LangChain con i modelli watsonx. È utile avere una certa dimestichezza con Python.

Una guida su Python per principianti

Presenteremo i concetti di base da sapere per iniziare con questo linguaggio di programmazione semplice, dall'esecuzione di calcoli algebrici alla generazione di output grafico dai tuoi dati.

Fasi successive

Addestra, convalida, adatta e distribuisci l'AI generativa, i modelli di fondazione e le funzionalità di machine learning con facilità e crea applicazioni AI in tempi ridottissimi utilizzando una parte dei dati con IBM watsonx.ai, uno studio aziendale di prossima generazione per builder AI.

Inizia la prova gratuita Prenota una demo live
Note a piè di pagina

1 The fastest-growing open-source startups in Q2 2023 (link esterno a ibm.com), Runa capital, 2023