This content originally appeared on DEV Community and was authored by Matheus Filipe de Deus
Introdução
Como criar um agente capaz de pensar, agir e se conectar com o mundo real usando apenas Python e LLMs? Essa Ă© exatamente a proposta do LangChain, um dos frameworks mais poderosos e flexĂveis para quem quer sair do âprompt isoladoâ e construir aplicaçÔes inteligentes de verdade.
Neste artigo, vocĂȘ vai entender, de forma prĂĄtica e progressiva, os conceitos fundamentais e avançados do LangChain: templates, chains, caching, router chains, tools e agentes ReAct.
Tudo o que vocĂȘ precisa para começar a desenvolver suas prĂłprias soluçÔes de IA Generativa.
1. O que Ă© LangChain e por que ele importa
LangChain é um framework open-source que ajuda desenvolvedores a construir aplicaçÔes com LLMs de forma modular, escalåvel e produtiva.
Ele fornece uma estrutura padronizada para lidar com:
- Prompt engineering e templates
- Encadeamento lĂłgico de tarefas (chains)
- Interação com APIs e ferramentas externas
- MemĂłria e caching
- Criação de agentes que tomam decisÔes
Em resumo: o LangChain transforma simples chamadas de API em sistemas inteligentes com comportamento estruturado.
2. Conceitos Fundamentais
a) Prompt Templates
Um PromptTemplate define como o modelo receberĂĄ a entrada.
Em vez de escrever prompts fixos, vocĂȘ cria templates dinĂąmicos:
from langchain.prompts import PromptTemplate
template = "Traduza o texto a seguir para {idioma}: {texto}"
prompt = PromptTemplate.from_template(template)
print(prompt.format(idioma="inglĂȘs", texto="OlĂĄ, mundo!"))
Permite padronizar e escalar prompts de forma reproduzĂvel. Ă essencial em pipelines de LLMOps.
b) Chains
Chains sĂŁo sequĂȘncias de etapas que processam entradas e saĂdas entre componentes.
Um exemplo simples Ă© o LLMChain, que conecta um modelo e um template:
from langchain.chains import LLMChain
from langchain.llms import OpenAI
chain = LLMChain(llm=OpenAI(), prompt=prompt)
result = chain.run({"idioma": "inglĂȘs", "texto": "OlĂĄ, mundo!"})
As chains permitem criar fluxos de raciocĂnio como âanalisar â resumir â responderâ.
3. Conceitos IntermediĂĄrios
a) Sequential Chains
Uma Sequential Chain conecta mĂșltiplas LLMChains, passando o resultado de uma como entrada da prĂłxima:
from langchain.chains import SimpleSequentialChain
chain1 = LLMChain(llm=OpenAI(), prompt=PromptTemplate.from_template("Resuma: {texto}"))
chain2 = LLMChain(llm=OpenAI(), prompt=PromptTemplate.from_template("Traduza para o inglĂȘs: {texto}"))
seq_chain = SimpleSequentialChain(chains=[chain1, chain2])
output = seq_chain.run("LangChain ajuda a criar agentes com LLMs.")
Modela fluxos complexos de processamento de linguagem, mantendo tudo organizado.
b) Router Chains
Quando vocĂȘ precisa decidir qual chain executar com base no contexto, entra a Router Chain.
Imagine uma aplicação que escolhe automaticamente se deve resumir, traduzir ou analisar sentimento:
from langchain.chains.router import MultiRouteChain
# cada rota teria sua prĂłpria LLMChain
Cria sistemas adaptativos, a base para agentes autÎnomos mais avançados.
4. Conceitos Avançados
a) Caching
LangChain oferece caching automĂĄtico para evitar chamadas repetidas a modelos, economizando custo e tempo.
from langchain.cache import InMemoryCache
import langchain
langchain.llm_cache = InMemoryCache()
Essencial para MLOps e LLMOps, garantindo eficiĂȘncia e reprodutibilidade.
b) Tools (Ferramentas)
Tools são funçÔes externas que o agente pode usar como: chamar uma API, consultar um banco de dados ou enviar uma mensagem.
Exemplo simples de tool:
from langchain.tools import tool
@tool
def calcular_media(numeros: list):
"""Calcula a mĂ©dia de uma lista de nĂșmeros."""
return sum(numeros) / len(numeros)
Transforma LLMs em agentes Ășteis, capazes de interagir com o mundo real.
5. Agents e ReAct Agents
Os Agents do LangChain são o coração do framework.
Eles decidem quais ferramentas usar, quando e como, com base em raciocĂnio interno (chain-of-thought).
O tipo mais usado Ă© o ReAct Agent (Reason + Act), que combina raciocĂnio com ação:
from langchain.agents import initialize_agent, AgentType
from langchain.llms import OpenAI
agent = initialize_agent(
tools=[calcular_media],
llm=OpenAI(temperature=0),
agent_type=AgentType.ZERO_SHOT_REACT_DESCRIPTION,
verbose=True,
)
agent.run("Calcule a média de 5, 7 e 10.")
Representa a interação entre LLMs e sistemas externos, o tipo de abordagem usada em soluçÔes reais de GenAI.
6. Mini-demo: Conectando Tudo
Para ilustrar, imagine um pequeno agente de suporte que responde perguntas sobre uma base de textos.
from langchain.chains import RetrievalQA
from langchain.vectorstores import Chroma
from langchain.embeddings import OpenAIEmbeddings
from langchain.llms import OpenAI
# cria um vetor a partir de documentos
db = Chroma.from_texts(["O LangChain Ă© um framework de IA modular."], embedding=OpenAIEmbeddings())
# cria a chain de perguntas e respostas
qa_chain = RetrievalQA.from_chain_type(
llm=OpenAI(),
chain_type="stuff",
retriever=db.as_retriever(),
)
print(qa_chain.run("O que Ă© LangChain?"))
Por que esse exemplo Ă© Ăștil:
Mostra como chains, embeddings e agentes se conectam para formar um fluxo funcional, uma base real para criar aplicaçÔes completas.
7. ConclusĂŁo
LangChain Ă© o elo entre engenharia de software e inteligĂȘncia artificial aplicada. Dominar seus conceitos, especialmente tools, chains e agents, Ă© o primeiro passo para criar soluçÔes reais e escalĂĄveis.
Notas Finais
Este conteĂșdo nasce dos meus estudos contĂnuos sobre GenAI e do desejo de transformar aprendizado em prĂĄtica, explorando LLMs e IA para desenvolver soluçÔes. Ă parte de uma jornada de aprendizado guiada pela curiosidade em aplicar IA de forma real e com impacto.
This content originally appeared on DEV Community and was authored by Matheus Filipe de Deus