Che cos'è LangChain: il framework open source per applicazioni LLM
Che cos'è LangChain
LangChain è un framework di orchestrazione open source progettato per lo sviluppo di applicazioni che sfruttano i grandi modelli linguistici (LLM). Le librerie disponibili per Python e JavaScript forniscono API e strumenti che semplificano la creazione di chatbot, agenti AI e altre soluzioni basate su LLM, centralizzando l’ambiente di sviluppo e facilitando l’integrazione con fonti di dati esterne e workflow software.
L’approccio modulare di LangChain permette a sviluppatori e data scientist di confrontare dinamicamente diversi prompt e diversi foundation model senza riscrivere il codice, e di combinare più LLM in un’unica applicazione – ad esempio un modello per interpretare la query dell’utente e un altro per generare la risposta.
Lanciato da Harrison Chase nell’ottobre 2022, LangChain ha registrato una crescita rapida: a giugno 2023 era il progetto open source in più rapida crescita su GitHub. Il suo impatto è stato particolarmente evidente dopo il lancio di ChatGPT da parte di OpenAI, quando LangChain ha contribuito a rendere l’intelligenza artificiale generativa più accessibile a sviluppatori, startup e appassionati, aprendo la strada a una rivoluzione nell’automazione.
Integrazioni con gli LLM
Gli LLM non sono applicazioni autonome; sono modelli statistici pre‑addestrati che necessitano di un’applicazione e, spesso, di fonti di dati esterne per svolgere il loro compito. Un esempio tipico è ChatGPT: l’applicazione chatbot utilizza i modelli GPT‑3.5 o GPT‑4 per interpretare l’input e produrre risposte, ma fornisce anche interfaccia utente, gestione della conversazione e integrazioni con altri servizi (ad es. Bing Chat di Microsoft).
Quando un’attività richiede informazioni contestuali specifiche – documentazione interna, dati aggiornati in tempo reale o workflow di software esterni come Slack – è necessario collegare l’LLM a tali fonti. Sebbene queste integrazioni possano essere realizzate con codice manuale, framework come LangChain e la suite IBM watsonx semplificano notevolmente il processo, consentendo di sperimentare diversi LLM con modifiche minime al codice.
- Fonti dati esterne: database aziendali, API REST, archivi di documenti.
- Workflow software: Slack, Microsoft Teams, sistemi di RPA.
- Provider di modelli: OpenAI, Anthropic, Hugging Face, IBM watsonx.
Come funziona LangChain
Al centro di LangChain troviamo un ambiente di sviluppo basato sul concetto di astrazione: la rappresentazione di processi complessi tramite componenti che racchiudono tutti i passaggi necessari. Le astrazioni sono analoghe a concetti quotidiani, come π che sintetizza il rapporto circonferenza/diametro, o il termostato che regola la temperatura senza richiedere la comprensione dei circuiti interni.
LangChain è quindi una libreria di astrazioni per Python e JavaScript che definisce componenti modulari – funzioni, classi, oggetti – i quali possono essere concatenati per costruire applicazioni di AI generativa. Questo approccio riduce drasticamente la quantità di codice da scrivere e la conoscenza tecnica richiesta per gestire attività complesse di NLP, pur mantenendo la possibilità di personalizzazione per programmatori esperti.
Importazione di modelli linguistici
LangChain supporta quasi tutti gli LLM disponibili sul mercato. L’importazione di un modello richiede una chiave API e l’uso della classe LLM, che fornisce un’interfaccia standardizzata.
Molti provider richiedono la creazione di un account e l’attivazione di una chiave API; le API dei modelli proprietari (es. OpenAI, Anthropic) possono comportare costi. I modelli open source, invece, sono spesso accessibili tramite Hugging Face, tra cui:
- LLaMA di Meta AI
- Deepseek‑LLM di Deepseek
- Granite di IBM
- Flan‑T5 di Google
IBM watsonx, grazie alla partnership con Hugging Face, offre una suite di modelli open source e, mediante l’SDK Python, consente di integrare LangChain con modelli ottimizzati o addestrati internamente tramite la classe WatsonXLLM e l’ID di progetto specifico.
Per esigenze più particolari, LangChain mette a disposizione la classe CustomLLM, che permette di creare wrapper personalizzati attorno a qualsiasi endpoint LLM.
Modelli di prompt
Il prompt è l’istruzione fornita a un LLM. Il prompt engineering è l’arte di costruire prompt efficaci, fornendo contesto, esempi e formato di output desiderato. LangChain formalizza questo processo attraverso la classe PromptTemplate, che consente di definire:
- variabili di input (
input_variables) - istruzioni aggiuntive (es. “non usare termini tecnici”)
- esempi few‑shot per guidare le risposte
- formato di output strutturato
I template possono essere salvati, denominati e riutilizzati, integrandosi senza problemi con le catene (chains) di LangChain.
Le catene (Chains)
Le “catene” rappresentano sequenze di operazioni che combinano più componenti di LangChain – ad esempio un PromptTemplate seguito da una chiamata a un LLM e da un modulo di post‑processing. Questo approccio consente di costruire flussi di lavoro complessi con pochi comandi.
Esempio di catena semplice
Una catena tipica per una domanda‑risposta potrebbe includere:
- Recupero di documenti pertinenti da un indice vettoriale.
- Costruzione di un prompt che inserisce il contesto recuperato.
- Invio del prompt a un LLM.
- Formattazione della risposta per la presentazione all’utente.
Grazie alle astrazioni di LangChain, ogni passaggio è implementato da una classe specifica, rendendo la cat