Guida definitiva per iniziare con LangChain
Hai visto l’emoji del pappagallo + catena spuntare spesso ultimamente intorno all’AI? Sono le emoji distintive di LangChain. LangChain è uno strumento per AI Agent che aggiunge funzionalità ai large language models (LLM) come GPT. Inoltre, include funzionalità come la gestione dei token, la gestione del contesto e i template di prompt. Per questo tutorial introduttivo, esaminiamo due esempi principali di LangChain con casi d’uso reali. Primo, come interrogare GPT. Secondo, come interrogare un documento con un notebook Colab disponibile qui. Questo tutorial su LangChain ti guiderà attraverso il processo di interrogazione di GPT e di documenti usando LangChain.
In questo tutorial trattiamo:
- Che cos’è LangChain?
- Come puoi eseguire query con LangChain?
- Interrogare GPT
- Interrogare un documento
- Riepilogo dell’introduzione a LangChain
Che cos’è LangChain?
LangChain è un framework per creare applicazioni che sfruttano i large language models. Ti consente di creare rapidamente con il CVP Framework. Le due funzionalità principali di LangChain per sfruttare i large language models sono 1) essere consapevole dei dati e 2) essere agentica. La consapevolezza dei dati è la capacità di incorporare fonti di dati esterne in un’applicazione LLM. L’agenticità è la capacità di usare altri strumenti.
Come per molti strumenti LLM, l’LLM predefinito di LangChain è GPT di OpenAI e hai bisogno di una chiave API da OpenAI per usarlo. Inoltre, LangChain offre il LangChain Expression Language (LCEL) per comporre catene complesse di elaborazione del linguaggio, semplificando il passaggio dalla prototipazione alla produzione. Inoltre, LangChain funziona sia con Python sia con JavaScript. In questo tutorial, imparerai come funziona usando esempi in Python. Puoi installare la libreria Python tramite pip eseguendo pip install langchain.
Come funziona LangChain?
Il flusso di domande e risposte di LangChain consiste in blocchi costitutivi che possono essere facilmente scambiati per creare un template personalizzato in base alle esigenze individuali. Questi blocchi includono la domanda, l’embedding, i documenti usati per addestrare il modello, il prompt costruito e una risposta. LangChain utilizza anche parser di output per gestire e perfezionare le risposte generate dai modelli linguistici, garantendo risultati strutturati e pertinenti. Pertanto, se un’azienda desidera un’esperienza di chat addestrata da documenti specifici, LangChain può sostituire i vari componenti in entrata e in uscita per raggiungere tale obiettivo.
Come usare LangChain con GPT e il database vettoriale Milvus?
Uno dei principali casi d’uso di LangChain è interrogare dati testuali. Puoi usarlo per interrogare documenti, vector store o per rendere più fluide le tue interazioni con GPT, in modo molto simile a LlamaIndex. In questo tutorial, trattiamo un semplice esempio di come interagire con GPT usando LangChain e interrogare un documento per il significato semantico usando LangChain con un vector store. Questo processo, noto come Retrieval Augmented Generation (RAG), potenzia le capacità dei modelli linguistici incorporando dati esterni durante il processo di generazione.
Interrogare GPT
La familiarità della maggior parte delle persone con GPT deriva dal chattare con ChatGPT. ChatGPT è l’interfaccia di punta di OpenAI per interagire con GPT. Tuttavia, se vuoi interagire con GPT a livello programmatico, hai bisogno di un’interfaccia di query come LangChain. LangChain fornisce una gamma di interfacce di query per GPT, da semplici prompt con una sola domanda al few shot learning tramite contesto.
In questo esempio, vedremo come usare LangChain per concatenare domande usando un template di prompt. Ci sono alcune librerie Python che devi installare prima. Possiamo installarle con # pip install langchain openai python-dotenv tiktoken. Uso python-dotenv perché gestisco le mie variabili d’ambiente in un file .env, ma puoi usare qualsiasi metodo tu voglia per caricare la tua chiave API OpenAI.
Con la nostra chiave API OpenAI pronta, dobbiamo caricare i nostri strumenti LangChain. Abbiamo bisogno degli import PromptTemplate e LLMChain da langchain e dell’import OpenAI da langchain.llms. Usiamo il modello testuale di OpenAI, text-davinci-003, per questo esempio. Successivamente, creiamo un template con cui interrogare GPT. Il template che creiamo qui sotto dice a GPT di rispondere alle domande date una alla volta. Per prima cosa, creiamo una stringa che rappresenta le variabili di input tra parentesi graffe, in modo simile a come funzionano le f-strings.
import os
from dotenv import load_dotenv
import openai
load_dotenv()
openai.api_key = os.getenv("OPENAI_API_KEY")
from langchain import PromptTemplate, LLMChain
from langchain.llms import OpenAI
davinci = OpenAI(model_name="text-davinci-003")
multi_template = """Answer the following questions one at a time.
Questions:
{questions}
Answers:
"""
Successivamente, usiamo l’oggetto PromptTemplate per creare un template dalla stringa con le variabili di input specificate. Con il nostro template di prompt pronto, possiamo creare una “catena” LLM passando il prompt e i modelli linguistici di grandi dimensioni scelti da sfruttare. Ora è il momento di creare le domande. Una volta che abbiamo le domande che vogliamo porre, eseguiamo run sulla catena LLM con le domande passate per ottenere le nostre risposte.
long_prompt = PromptTemplate(template=multi_template, input_variables=["questions"])
llm_chain = LLMChain(
prompt=long_prompt,
llm=davinci
)
qs_str = (
"Which NFL team won the Super Bowl in the 2010 season?\n" +
"If I am 6 ft 4 inches, how tall am I in centimeters?\n" +
"Who was the 12th person on the moon?" +
"How many eyes does a blade of grass have?"
)
print(llm_chain.run(qs_str))
L’immagine qui sotto mostra i risultati attesi dalle nostre domande di esempio.
Risultati dalle domande di esempio.
Interrogare documenti pertinenti
Una delle aree di miglioramento di GPT e dei modelli linguistici di grandi dimensioni in generale è che vengono addestrati solo su dati disponibili al momento del loro addestramento. Questo significa che, nel tempo, perdono contesto e accuratezza. Proprio come il framework CVP, LangChain fornisce un modo per risolvere questo problema con i database vettoriali. Sono disponibili molti database vettoriali; per questo esempio, usiamo Milvus per via della nostra familiarità con esso.
LangChain eccelle nella gestione dei dati documentali, trasformando i documenti scansionati in dati utilizzabili attraverso l’automazione dei workflow.
Per dimostrare la capacità di LangChain di iniettare conoscenza aggiornata nella tua applicazione LLM e la capacità di effettuare una ricerca semantica, trattiamo come interrogare un documento. Usiamo una trascrizione del discorso sullo Stato dell’Unione per questo esempio. Puoi scaricare la trascrizione e trovare il notebook Colab qui. Per ottenere le librerie necessarie per questa parte del tutorial, esegui pip install langchain openai milvus [pymilvus](https://zilliz.com/blog/get-started-with-pymilvus) python-dotenv tiktoken.
La capacità di recuperare dinamicamente documenti pertinenti in base alle query degli utenti migliora significativamente l’accuratezza delle risposte generate.
Come nell'esempio di concatenazione di domande, iniziamo caricando la nostra chiave API di OpenAI e i modelli linguistici di grandi dimensioni. Poi, avviamo un database vettoriale usando Milvus Lite, che ci consente di eseguire Milvus direttamente nel nostro notebook.
import os
from dotenv import load_dotenv
import openai
load_dotenv()
openai.api_key = os.getenv("OPENAI_API_KEY")
from langchain.llms import OpenAI
davinci = OpenAI(model_name="text-davinci-003")
from milvus import default_server
default_server.start()
Ora siamo pronti a entrare nello specifico dell'interrogazione di un documento. Questa volta ci sono molti import da LangChain. Abbiamo bisogno degli embedding di Open AI, dello splitter di testo per caratteri, dell'integrazione con Milvus, del loader di testo e della chain di recupero Q/A.
La prima cosa che facciamo è configurare un loader e caricare il file di testo. In questo caso, l'ho salvato nella stessa cartella di questo notebook con il nome state_of_the_union.txt. Successivamente, suddividiamo il testo e lo memorizziamo come un insieme di documenti LangChain. Poi possiamo configurare il nostro database vettoriale. In questo caso, creiamo una collection Milvus dai documenti che abbiamo appena ingerito tramite TextLoader e CharacterTextSplitter. Passiamo anche gli embedding di OpenAI come set di embedding vettoriali del testo.
Con il nostro database vettoriale caricato, possiamo usare l'oggetto RetrievalQA per interrogare i documenti tramite un database vettoriale. Usiamo il tipo di chain stuff " e passiamo OpenAI come nostro LLM e il database vettoriale Milvus come retriever. Poi possiamo creare una query, come “Cosa ha detto il presidente su Ketanji Brown Jackson?” edrun` la query. Infine, dovremmo arrestare il nostro database vettoriale per una chiusura pulita.
from langchain.embeddings.openai import OpenAIEmbeddings
from langchain.text_splitter import CharacterTextSplitter
from langchain.vectorstores import Milvus
from langchain.document_loaders import TextLoader
from langchain.chains import RetrievalQA
loader = TextLoader('./state_of_the_union.txt')
documents = loader.load()
text_splitter = CharacterTextSplitter(chunk_size=1000, chunk_overlap=0)
docs = text_splitter.split_documents(documents)
embeddings = OpenAIEmbeddings()
vector_db = Milvus.from_documents(
docs,
embeddings,
connection_args={"host": "127.0.0.1", "port": default_server.listen_port},
)
qa = RetrievalQA.from_chain_type(llm=OpenAI(), chain_type="stuff", retriever=vector_db.as_retriever())
query = "What did the president say about Ketanji Brown Jackson?"
qa.run(query)
default_server.stop()
L'immagine qui sotto mostra come potrebbe apparire una risposta attesa. Dovremmo ottenere una risposta come “Il presidente ha detto che Ketanji Brown Jackson è una delle migliori menti legali della nazione, ex importante avvocata in uno studio privato, ex difensore pubblico federale, …”
Risultati della query
Alternativa a LangChain
Esistono diversi strumenti basati su chat che potrebbero essere considerati alternative a LangChain, e le persone spesso discutono su quali siano i migliori. Molte di queste alternative utilizzano anche modelli di chat specializzati progettati per applicazioni di chat interattive. Alcune che vengono citate frequentemente includono:
- AgentGPT
- TensorFlow
- Auto-GPT
- BabyAGI
- Semantic UI
- LlamaIndex
Riepilogo di un tutorial su LangChain
In questo articolo, abbiamo trattato le basi di come usare LangChain. Abbiamo imparato che LangChain è un framework per costruire applicazioni LLM che si basa su due fattori chiave. Il primo fattore è l'utilizzo di dati esterni, come un documento di testo. La capacità di LangChain di integrare dati esterni migliora l'efficacia dei modelli linguistici incorporando informazioni specifiche dell'utente. Il secondo fattore è l'utilizzo di altri strumenti, come un database vettoriale.
Abbiamo trattato due esempi. Per prima cosa, abbiamo esaminato uno degli esempi classici di LangChain: come concatenare più domande. LangChain funziona perfettamente con vari fornitori di modelli, tra cui OpenAI e Hugging Face, per migliorarne la funzionalità. Poi, abbiamo visto un modo pratico per usare LangChain per inserire conoscenze di dominio combinandolo con un database vettoriale come Milvus per interrogare documenti.
Gli output parser svolgono un ruolo cruciale nel perfezionare le risposte del modello linguistico, garantendo risultati strutturati e pertinenti.
Continua a leggere

How Zilliz Ended Up at the Center of NVIDIA’s Unstructured Data Story at GTC 2026
If unstructured data is the context of AI, then the ceiling of AI applications will be set not just by models, but by how mature the infrastructure for unstructured data becomes.

Legal Document Analysis: Harnessing Zilliz Cloud's Semantic Search and RAG for Legal Insights
Enhance legal document analysis with Zilliz Cloud’s Semantic Search and RAG. Improve accuracy, efficiency, and scalability for contracts, case law, and compliance.

Why Deepseek is Waking up AI Giants Like OpenAI And Why You Should Care
Discover how DeepSeek R1's open-source AI model with superior reasoning capabilities and lower costs is disrupting the AI landscape and challenging tech giants like OpenAI.



