Comece com LangChain Document Loaders: guia passo a passo (atualizado para 2025)
Updated on
LangChain evoluiu rapidamente desde 2023. Se você está explorando Retrieval-Augmented Generation (RAG), construindo aplicações de chat ou integrando conhecimento externo em pipelines de LLM, os Document Loaders agora são um dos componentes mais importantes.
Este guia oferece uma compreensão clara, precisa e moderna de como os LangChain Document Loaders funcionam (versão 2025), como usá‑los corretamente e como construir aplicações reais em cima deles.
O que é LangChain?
LangChain é um framework projetado para ajudar desenvolvedores a construir aplicações com LLMs usando ferramentas como:
- Document Loaders
- Text Splitters
- Vector Stores
- Retrievers
- Runnables & LCEL (LangChain Expression Language)
No LangChain moderno (0.1–0.2+), o pipeline para construir aplicações se parece com isto:
Load → Split → Embed → Store → Retrieve → Generate
Os Document Loaders cuidam da primeira etapa:
trazer conteúdo do mundo real para objetos “Document” amigáveis a LLMs.
O que são LangChain Document Loaders?
Um Document em LangChain tem dois campos:
{
"page_content": "<raw text>",
"metadata": {...}
}Document Loaders convertem fontes externas — arquivos, URLs, APIs, PDFs, CSV, transcrições do YouTube — em uma lista de objetos Document.
Exemplo: carregar um arquivo .txt
from langchain_community.document_loaders import TextLoader
loader = TextLoader("./data/sample.txt")
docs = loader.load()Resultado:
{
"page_content": "Welcome to LangChain!",
"metadata": { "source": "./data/sample.txt" }
}Tipos de Document Loaders no LangChain
LangChain oferece dezenas de loaders, mas eles se encaixam em três categorias principais.
1. Transform Loaders (formatos de arquivos locais)
Carregam arquivos estruturados ou não estruturados:
Exemplo CSV (import moderno)
from langchain_community.document_loaders import CSVLoader
loader = CSVLoader("./data/data.csv")
docs = loader.load()Cada linha do CSV vira um Document.
Outros transform loaders incluem:
PyPDFLoaderJSONLoaderDocx2txtLoaderUnstructuredFileLoaderPandasDataFrameLoader
2. Loaders de datasets públicos ou web services
Buscam texto diretamente de fontes online.
Exemplo Wikipedia
from langchain_community.document_loaders import WikipediaLoader
loader = WikipediaLoader("Machine_learning")
docs = loader.load()3. Loaders para fontes proprietárias / autenticadas
Usados para serviços internos, como:
- APIs da empresa
- CMS interno
- Bancos de dados SQL
- SharePoint
- Slack
- Gmail
Eles exigem credenciais e, muitas vezes, loaders personalizados.
Como os Document Loaders se encaixam em um pipeline RAG moderno
Document Loaders apenas carregam texto bruto.
Eles NÃO:
- geram embeddings
- criam “chains”
- produzem “memory vectors”
(Um equívoco comum.)
Pipeline correto:
Loader → Splitter → Embeddings → Vector Store → Retriever → LLMExemplo com PDF:
from langchain_community.document_loaders import PyPDFLoader
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain_openai import OpenAIEmbeddings
from langchain_community.vectorstores import Chroma
loader = PyPDFLoader("file.pdf")
docs = loader.load()
splitter = RecursiveCharacterTextSplitter(chunk_size=1000, chunk_overlap=200)
chunks = splitter.split_documents(docs)
embeddings = OpenAIEmbeddings()
db = Chroma.from_documents(chunks, embeddings)Casos de uso para LangChain Document Loaders modernos
Exemplo 1: carregar e dividir arquivos para indexação
from langchain_community.document_loaders import TextLoader
from langchain.text_splitter import RecursiveCharacterTextSplitter
loader = TextLoader("article.txt")
docs = loader.load()
splitter = RecursiveCharacterTextSplitter(
chunk_size=800, chunk_overlap=150
)
chunks = splitter.split_documents(docs)Exemplo 2: ingestão de CSV para entendimento de dados
from langchain_community.document_loaders import CSVLoader
loader = CSVLoader("data.csv")
docs = loader.load()
for doc in docs:
print(doc.page_content)Exemplo 3: carregar transcrições do YouTube (versão correta para 2025)
from langchain_community.document_loaders import YoutubeLoader
loader = YoutubeLoader.from_youtube_url(
"https://www.youtube.com/watch?v=O5nskjZ_GoI",
add_video_info=True
)
docs = loader.load()Nenhum tokenizer/modelo manual é necessário — LangChain cuida apenas do carregamento de texto.
Exemplo 4: Pandas DataFrame → Documents
from langchain_community.document_loaders import DataFrameLoader
loader = DataFrameLoader(dataframe, page_content_column="text")
docs = loader.load()Aplicações reais para LangChain Document Loaders
Abaixo estão três exemplos úteis e modernos.
Construir um app de perguntas e respostas sobre PDF ao estilo ChatGPT (RAG moderno)
from langchain_community.document_loaders import PyPDFLoader
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain_openai import OpenAIEmbeddings, ChatOpenAI
from langchain_community.vectorstores import Chroma
# 1. Load
pages = PyPDFLoader("./SpaceX.pdf").load()
# 2. Split
splitter = RecursiveCharacterTextSplitter(chunk_size=1000, overlap=150)
chunks = splitter.split_documents(pages)
# 3. Embed & store
db = Chroma.from_documents(chunks, OpenAIEmbeddings())
# 4. Ask questions
retriever = db.as_retriever()
llm = ChatOpenAI(model="gpt-4.1")
from langchain.chains import RetrievalQA
qa = RetrievalQA.from_chain_type(llm, retriever=retriever)
qa.run("Summarize the mission in 3 bullet points.")Construir um app de QA sobre transcrições do YouTube
loader = YoutubeLoader.from_youtube_url(url)
docs = loader.load()
chunks = RecursiveCharacterTextSplitter.from_tiktoken_encoder().split_documents(docs)
db = Chroma.from_documents(chunks, OpenAIEmbeddings())
qa.run("Explain the main argument of this video")Construir um chatbot de QA sobre um site (via sitemap)
from langchain_community.document_loaders.sitemap import SitemapLoader
loader = SitemapLoader("https://docs.chainstack.com/sitemap.xml")
docs = loader.load()Execute o mesmo pipeline chunk → embed → retrieve → chat usado para PDF/YouTube.
Conclusão
LangChain Document Loaders são a base de qualquer workflow de RAG. Eles ajudam você a:
- Carregar dados de qualquer fonte
- Normalizar texto em um formato
Documentconsistente - Construir datasets prontos para recuperação
- Habilitar chat, sumarização e QA sobre o seu próprio conteúdo
Com loaders atualizados e padrões corretos do LangChain em 2025, você pode criar aplicações de IA poderosas em cima de PDFs, sites, vídeos do YouTube, CSVs e muito mais.
FAQ
O que é um LangChain Document Loader?
Um Document Loader converte arquivos, URLs, APIs e outras fontes em objetos Document do LangChain para uso posterior no pipeline.
Document Loaders criam embeddings ou índices?
Não. Loaders apenas carregam texto bruto. Embeddings e indexação são etapas separadas.
Qual loader devo usar para PDFs?
PyPDFLoader é a escolha mais confiável para extração de texto no LangChain.
Como funcionam os loaders do YouTube?
Eles obtêm transcrições usando a API do YouTube ou legendas da comunidade, retornando uma transcrição textual como um Document.