🧠Inteligência em Código
📚 Tutoriais2 min de leitura

Primeiros Passos com LangChain em Python

Aprenda a construir aplicações de IA com LangChain: chains, prompts, memória e RAG em um tutorial completo.

#langchain#python#rag#tutorial

O que é LangChain?

LangChain é o framework mais popular para construir aplicações com LLMs (Large Language Models). Ele simplifica a criação de pipelines complexos como chatbots com memória, sistemas RAG e agentes autônomos.

Instalação

pip install langchain langchain-openai langchain-community

1. Primeiro Chat

from langchain_openai import ChatOpenAI
from langchain_core.messages import HumanMessage

llm = ChatOpenAI(model="gpt-4", temperature=0.7)

response = llm.invoke([
    HumanMessage(content="O que é machine learning em uma frase?")
])

print(response.content)

2. Templates de Prompt

from langchain_core.prompts import ChatPromptTemplate

prompt = ChatPromptTemplate.from_messages([
    ("system", "Você é um professor de IA que explica conceitos de forma simples."),
    ("human", "Explique {conceito} para um iniciante.")
])

chain = prompt | llm

response = chain.invoke({"conceito": "redes neurais"})
print(response.content)

3. Memória de Conversa

from langchain.memory import ConversationBufferMemory
from langchain.chains import ConversationChain

memory = ConversationBufferMemory()
conversation = ConversationChain(llm=llm, memory=memory)

# O modelo lembra do contexto anterior
print(conversation.predict(input="Meu nome é João"))
print(conversation.predict(input="Qual é meu nome?"))

4. RAG Básico (Retrieval-Augmented Generation)

from langchain_community.document_loaders import TextLoader
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain_openai import OpenAIEmbeddings
from langchain_community.vectorstores import FAISS
from langchain.chains import RetrievalQA

# 1. Carregar documento
loader = TextLoader("meu_documento.txt")
docs = loader.load()

# 2. Dividir em chunks
splitter = RecursiveCharacterTextSplitter(chunk_size=1000, chunk_overlap=200)
chunks = splitter.split_documents(docs)

# 3. Criar índice vetorial
embeddings = OpenAIEmbeddings()
vectorstore = FAISS.from_documents(chunks, embeddings)

# 4. Criar chain de perguntas
qa = RetrievalQA.from_chain_type(
    llm=llm,
    retriever=vectorstore.as_retriever(),
    return_source_documents=True
)

result = qa.invoke({"query": "Qual é o tema principal do documento?"})
print(result["result"])

Próximos Passos

  • Agentes: Crie agentes que usam ferramentas (pesquisa web, calculadora, APIs)
  • Streaming: Implemente respostas em tempo real
  • Deploy: Publique com LangServe ou FastAPI

No próximo tutorial, vamos construir um chatbot com RAG completo que responde perguntas sobre seus documentos!