Introduzione

LangChain è un framework open-source di sviluppo di applicazioni Python AI che fornisce moduli e strumenti per la creazione di applicazioni AI basate su modelli di grandi dimensioni. Attraverso LangChain, gli sviluppatori possono integrarsi facilmente con Large Language Models (LLM) per completare compiti come la generazione di testi, la risposta a domande, la traduzione e il dialogo. LangChain abbassa la barriera dello sviluppo di applicazioni AI, consentendo a chiunque di costruire le proprie applicazioni creative basate su LLM.

Caratteristiche di LangChain:

  • LLM e Prompt: LangChain astrae tutte le API dei modelli di grandi dimensioni di LLM, unifica l'API di accesso ai grandi modelli e fornisce un meccanismo di gestione dei modelli di prompt.
  • Catena: LangChain incapsula alcuni scenari comuni in moduli pronti all'uso, come sistemi di risposta a domande basati sul contesto, generazione di linguaggio naturale di query SQL, e così via, chiamati "Catena" perché il processo di implementazione di questi compiti è come un flusso di lavoro, eseguito passo dopo passo.
  • LCEL: LangChain Expression Language (LCEL) è la caratteristica principale della nuova versione di LangChain, utilizzata per risolvere problemi di orchestrazione del flusso di lavoro. Attraverso le espressioni LCEL, possiamo personalizzare flessibilmente il flusso di elaborazione dei compiti AI, cioè personalizzare flessibilmente la "Catena".
  • Retrieval Augmented Generation (RAG): Poiché i Large Language Models (LLM) non comprendono le nuove informazioni e non possono rispondere a nuove domande, possiamo importare nuove informazioni in LLM per migliorare la qualità dei contenuti generati. Questa modalità è chiamata modalità RAG (Retrieval Augmented Generation).
  • Agenti: Un modello di progettazione basato su Large Language Models (LLM) che sfrutta la comprensione del linguaggio naturale e le capacità di ragionamento di LLM (LLM come cervello) per chiamare automaticamente i sistemi e i dispositivi esterni insieme per completare compiti basati sui requisiti dell'utente. Ad esempio, quando un utente inserisce "prendere un giorno libero domani", il Large Language Model (LLM) chiama automaticamente il sistema di permessi e avvia una domanda di permesso.
  • Memoria del Modello: Consente al Large Language Model (LLM) di ricordare il contenuto della conversazione precedente, una capacità nota come memoria del modello.

Componenti del Framework LangChain

Componenti del Framework LangChain

Il framework LangChain è composto da diversi componenti, tra cui:

  • Libreria LangChain: Librerie Python e JavaScript. Include le basi di runtime per interfacce e l'integrazione di vari componenti, nonché l'implementazione di catene e agenti pronti all'uso.
  • Template LangChain: Modelli ufficiali di compiti AI forniti da LangChain.
  • LangServe: Basato su FastAPI, può pubblicare le catene definite da LangChain come API REST.
  • LangSmith: Una piattaforma di sviluppo, è un servizio cloud che supporta il debug e il monitoraggio dei compiti di LangChain.

Libreria LangChain (Librerie)

La libreria LangChain stessa è composta da diversi pacchetti diversi.

  • langchain-core: Astrazioni di base e linguaggio di espressione LangChain.
  • langchain-community: Integrazioni di terze parti, principalmente inclusi componenti di terze parti integrati con LangChain.
  • langchain: Include principalmente catene, agenti e strategie di recupero.

Flusso di Elaborazione dei Compiti di Langchain

Come mostrato nell'immagine sopra, LangChain fornisce un set di strumenti di gestione dei modelli di prompt per gestire i prompt. Successivamente passa i prompt al grande modello per l'elaborazione e infine elabora i risultati restituiti dal grande modello.

L'incapsulamento di LangChain del grande modello include principalmente due tipi: LLM e Modello Chat.

  • LLM - Modello di risposta a domande che riceve un input di testo e restituisce un risultato di testo.
  • Modello Chat - Modello di dialogo che riceve un set di messaggi di dialogo e restituisce messaggi di dialogo in modo conversazionale.

Concetti Fondamentali

1. LLMs

I modelli fondamentali incapsulati da LangChain che ricevono un input di testo e restituiscono un risultato di testo.

2. Modelli di Chat

Modelli di chat (o modelli di dialogo) progettati specificamente per scenari di dialogo, a differenza dei LLM. Questi modelli possono ricevere un insieme di messaggi di dialogo e restituire messaggi di dialogo in un formato conversazionale.

3. Messaggi

Si riferisce al contenuto dei messaggi nei modelli di chat. I tipi di messaggio includono Messaggio Umano, Messaggio AI, Messaggio di Sistema, Messaggio di Funzione, Messaggio di Strumento e altri.

4. Prompt

LangChain incapsula un set di strumenti specificamente utilizzati per la gestione dei prompt, rendendo più facile formattare il contenuto del prompt.

5. Analizzatori di Output

Come menzionato nell'immagine sopra, dopo che LangChain riceve il contenuto di testo restituito dal grande modello (LLM), può utilizzare analizzatori di output dedicati per formattare il contenuto di testo, come analizzare JSON o convertire l'output del LLM in un oggetto Python.

5. Retrievers (Recuperatori)

Per importare facilmente dati privati nel grande modello (LLM) e migliorare la qualità delle risposte del modello, LangChain incapsula un framework di recupero (Recuperatori) che facilita il caricamento, la segmentazione, l'archiviazione e il recupero dei dati dei documenti.

6. Vector Stores (Archivi vettoriali)

Per supportare ricerche di similarità semantica per dati privati, LangChain supporta vari database vettoriali.

7. Agents (Agenti)

Gli agenti, di solito applicazioni progettate con il grande modello (LLM) come motore decisionale, chiamano automaticamente sistemi esterni e dispositivi hardware per completare compiti dell'utente basati sull'input dell'utente. Si tratta di un modello progettuale con il grande modello (LLM) al centro.

Scenari di Applicazione

  • Chatbot: Costruzione di assistenti chat intelligenti, chatbot per il servizio clienti e chatbot conversazionali.
  • Q&A della Base di Conoscenza: Fornire servizi di risposta a domande a dominio aperto integrandosi con grafi di conoscenza.
  • Scrittura Intelligente: Come scrittura di articoli, scrittura creativa e sintesi dei testi.