Libere o Potencial do LangChain no Desenvolvimento Moderno de Aplicações de IA
Updated on
LangChain evoluiu dramaticamente desde 2023. O que começou como um simples wrapper em torno de LLMs agora é um framework completo de aplicações de IA, com suporte a:
- LCEL (LangChain Expression Language)
- Runnables
- LangGraph (fluxos de trabalho de agentes com estado e alta confiabilidade)
- OpenAI function calling
- Tool calling
- Sistemas de memória avançados
- Pipelines modernos de documentos para RAG
Este guia atualizado oferece uma visão pronta para 2025 do LangChain e de como construir aplicações reais com LLM usando a OpenAI API mais recente.
Conceitos Básicos de LangChain
🌟 LangChain Hoje: Um Framework Moderno para Apps de IA
Aplicações modernas com LLM precisam de muito mais que geração de texto bruta:
- ferramentas
- memória
- recuperação de documentos
- gerenciamento de estado
- fluxos de trabalho multi-etapas
- tratamento de erros
- determinismo
LangChain fornece esses blocos fundamentais por meio de Runnables, LCEL e LangGraph, permitindo que desenvolvedores construam sistemas confiáveis de agentes e de workflow.
🔗 Workflows Sequenciais com LCEL (Atualizado)
LCEL permite compor pipelines de LLM como se fossem funções:
from langchain_openai import ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate
model = ChatOpenAI(model="gpt-4.1")
prompt = ChatPromptTemplate.from_messages([
("system", "You are a helpful assistant."),
("user", "{question}")
])
chain = prompt | model
chain.invoke({"question": "Explain LangChain LCEL in one paragraph."})Isso substitui as antigas APIs “SequentialChain”.
Começando com LangChain
📦 Instalação
pip install langchain langchain-openai langgraph faiss-cpuSe for usar LangGraph:
pip install langgraph💬 LLMs e Prompt Templates (API Moderna)
LangChain agora usa interfaces de ChatModel:
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(model="gpt-4.1", temperature=0)Prompt Templates continuam poderosos:
from langchain_core.prompts import ChatPromptTemplate
prompt = ChatPromptTemplate.from_template(
"Summarize the following text:\n\n{text}"
)⛓️ Chains com LCEL (em vez da antiga “Chains API”)
Você constrói chains com LCEL:
chain = prompt | llm⚙️ Ferramentas & Agentes (Boas Práticas 2025)
Os estilos antigos de initialize_agent, “ReAct agent” e MiniChain estão obsoletos.
A abordagem recomendada é:
Usar LangGraph para workflows de agentes
LangGraph oferece:
- gerenciamento de estado
- políticas de retry
- edges determinísticos
- tool calling
- persistência
Exemplo de nó de agente:
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(
model="gpt-4.1",
temperature=0,
streaming=False
)Exemplo de tool calling:
from langchain_core.tools import tool
@tool
def search_wiki(query: str):
"""Search Wikipedia topics."""
import wikipedia
return wikipedia.summary(query)
tools = [search_wiki]Conectar com o LLM:
result = llm.invoke({
"messages": [
{"role": "user", "content": "Find me information about LangChain."}
],
"tools": tools
})🧠 Memória
A memória no LangChain agora suporta:
- BufferMemory
- ConversationSummaryMemory
- Memória baseada em SQL / Redis
- Memória em grafo de estado (LangGraph)
Exemplo:
from langchain.memory import ConversationBufferMemory
memory = ConversationBufferMemory()
memory.save_context(
{"input": "Hello"},
{"output": "Hi, how can I help?"}
)
memory.load_memory_variables({})📄 Carregamento de Dados, Text Splitters & Retrieval (RAG Moderno)
Exemplo atualizado usando FAISS + embeddings da OpenAI:
from langchain_community.document_loaders import TextLoader
from langchain_text_splitters import RecursiveCharacterTextSplitter
from langchain_openai import OpenAIEmbeddings
from langchain_community.vectorstores import FAISS
loader = TextLoader("./state_of_the_union.txt")
docs = loader.load()
splitter = RecursiveCharacterTextSplitter(chunk_size=1000)
chunks = splitter.split_documents(docs)
emb = OpenAIEmbeddings()
db = FAISS.from_documents(chunks, emb)
query = "What policies did the president highlight?"
results = db.similarity_search(query)🚀 Exemplo de Ponta a Ponta
Abaixo está um pipeline completo e executável em LangChain usando LCEL, a OpenAI API atualizada e retrieval.
from langchain_openai import ChatOpenAI, OpenAIEmbeddings
from langchain_core.prompts import ChatPromptTemplate
from langchain_text_splitters import RecursiveCharacterTextSplitter
from langchain_community.document_loaders import TextLoader
from langchain_community.vectorstores import FAISS
# 1. Load LLM
llm = ChatOpenAI(model="gpt-4.1", temperature=0)
# 2. Load + split documents
loader = TextLoader("./state_of_the_union.txt")
docs = loader.load()
splitter = RecursiveCharacterTextSplitter(chunk_size=800)
chunks = splitter.split_documents(docs)
# 3. Build vectorstore
db = FAISS.from_documents(chunks, OpenAIEmbeddings())
# 4. Retrieval chain
prompt = ChatPromptTemplate.from_messages([
("system", "Answer based on the provided context."),
("user", "{question}\n\nContext: {context}")
])
def retriever(q):
results = db.similarity_search(q, k=3)
return "\n".join([r.page_content for r in results])
chain = (
{
"question": lambda x: x,
"context": lambda x: retriever(x)
}
| prompt
| llm
)
# 5. Run end-to-end
response = chain.invoke("What economic topics were mentioned?")
print(response.content)Conclusão
LangChain em 2025 deixou de ser apenas um toolkit — agora é um framework completo de aplicações de IA para:
- agentes
- workflows
- sistemas de retrieval
- integrações de ferramentas
- aplicações conversacionais com memória rica
Com LCEL, Runnables e LangGraph, você pode construir apps de IA em produção com arquitetura limpa, fácil de manter e escalável.
Use este guia como base atualizada para criar aplicações de IA poderosas e competitivas.