banner
Casa / Blog / Una breve guida a LangChain per gli sviluppatori di software
Blog

Una breve guida a LangChain per gli sviluppatori di software

Aug 31, 2023Aug 31, 2023

Di Janakiram MSV

InfoMondo |

Se sei uno sviluppatore di software che cerca di tenere il passo con le ultime novità sui modelli linguistici di grandi dimensioni, potresti sentirti sopraffatto o confuso, come è successo a me. Sembra che ogni giorno assistiamo al rilascio di un nuovo modello open source o all'annuncio di una nuova funzionalità significativa da parte di un fornitore di modelli commerciali.

Gli LLM stanno rapidamente diventando parte integrante del moderno stack software. Tuttavia, sia che tu voglia utilizzare un modello API offerto da un provider come OpenAI o incorporare un modello open source nella tua app, la creazione di applicazioni basate su LLM implica molto più che il semplice invio di un prompt e l'attesa di una risposta. Ci sono numerosi elementi da considerare, che vanno dalla modifica dei parametri all’aumento del prompt alla moderazione della risposta.

Gli LLM sono stateless, nel senso che non ricordano i messaggi precedenti nella conversazione. È responsabilità dello sviluppatore mantenere la cronologia e fornire il contesto al LLM. Potrebbe essere necessario archiviare queste conversazioni in un database persistente per riportare il contesto in una nuova conversazione. Pertanto, l'aggiunta di memoria a breve e lungo termine ai LLM è una delle responsabilità principali degli sviluppatori.

L'altra sfida è che non esiste una regola valida per tutti per i LLM. Potrebbe essere necessario utilizzare più modelli specializzati per scenari diversi, ad esempio analisi del sentiment, classificazione, risposta alle domande e riepilogo. Gestire più LLM è complesso e richiede un bel po' di lavoro idraulico.

LangChain è un SDK progettato per semplificare l'integrazione di LLM e applicazioni. Risolve la maggior parte delle sfide di cui abbiamo discusso sopra. LangChain è simile a un driver ODBC o JDBC, che astrae il database sottostante consentendoti di concentrarti sulle istruzioni SQL standard. LangChain astrae i dettagli di implementazione dei LLM sottostanti esponendo un'API semplice e unificata. Questa API semplifica l'inserimento e la sostituzione dei modelli da parte degli sviluppatori senza modifiche significative al codice.

LangChain è apparso nello stesso periodo di ChatGPT. Harrison Chase, il suo creatore, ha preso il primo impegno alla fine di ottobre 2022, poco prima che l'ondata LLM raggiungesse la sua piena forza. Da allora la comunità ha contribuito attivamente, rendendo LangChain uno dei migliori strumenti per interagire con i LLM.

LangChain è un potente framework che si integra con strumenti esterni per formare un ecosistema. Comprendiamo come orchestra il flusso coinvolto nell'ottenere il risultato desiderato da un LLM.

Le applicazioni devono recuperare dati da fonti esterne come PDF, pagine Web, CSV e database relazionali per creare il contesto per LLM. LangChain si integra perfettamente con moduli che possono accedere e recuperare dati da fonti disparate.

I dati recuperati da alcune fonti esterne devono essere convertiti in vettori. Questo viene fatto passando il testo a un modello di incorporamento di parole associato a LLM. Ad esempio, il modello GPT-3.5 di OpenAI ha un modello di incorporamento di parole associato che deve essere utilizzato per inviare il contesto. LangChain sceglie il miglior modello di incorporamento in base al LLM scelto, eliminando le congetture nell'abbinamento dei modelli.

Gli incorporamenti generati vengono archiviati in un database vettoriale per eseguire una ricerca di somiglianza. LangChain semplifica l'archiviazione e il recupero di vettori da varie fonti, dagli array in memoria ai database vettoriali ospitati come Pinecone.

LangChain supporta i LLM tradizionali offerti da OpenAI, Cohere e AI21 e i LLM open source disponibili su Hugging Face. L'elenco dei modelli supportati e degli endpoint API è in rapida crescita.

Il flusso di cui sopra rappresenta il nucleo del framework LangChain. Le applicazioni in cima allo stack interagiscono con uno dei moduli LangChain tramite Python o JavaScript SDK. Capiamo il ruolo di questi moduli.