Skip to content
LangChain: Construa Apps Rapidamente com a OpenAI API

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-cpu

Se 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.