Construa seu Próprio GPT Especialista
Um guia interativo para criar chatbots com RAG
Visão Geral: Por que RAG?
Grandes Modelos de Linguagem (LLMs) são poderosos, mas seu conhecimento é estático. A Geração Aumentada por Recuperação (RAG) resolve isso conectando o LLM a uma base de conhecimento externa em tempo real, transformando-o em um especialista de domínio confiável.
RAG vs. Fine-Tuning
RAG é para adicionar conhecimento, enquanto Fine-Tuning é para ensinar um comportamento.
Primeiros Passos: Construindo o Núcleo
Esta seção é o guia prático para construir seu pipeline RAG. Visualizamos o processo e apresentamos o código.
import os
from langchain_openai import OpenAIEmbeddings, ChatOpenAI
from langchain_community.document_loaders import TextLoader
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain_community.vectorstores import FAISS
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.runnables import RunnablePassthrough
from langchain_core.output_parsers import StrOutputParser
loader = TextLoader("meu_documento.txt")
documentos = loader.load()
text_splitter = RecursiveCharacterTextSplitter(chunk_size=1000, chunk_overlap=200)
chunks = text_splitter.split_documents(documentos)
embeddings_model = OpenAIEmbeddings(model="text-embedding-3-small")
vector_store = FAISS.from_documents(chunks, embeddings_model)
retriever = vector_store.as_retriever()
template = "Contexto: {context}\n\nPergunta: {question}\n\nResposta:"
prompt = ChatPromptTemplate.from_template(template)
llm = ChatOpenAI(model_name="gpt-4o-mini", temperature=0)
output_parser = StrOutputParser()
def formatar_documentos(docs):
return "\n\n".join(doc.page_content for doc in docs)
rag_chain = (
{"context": retriever | formatar_documentos, "question": RunnablePassthrough()}
| prompt
| llm
| output_parser
)
Técnicas Avançadas
Para aplicações de produção, um pipeline RAG básico pode não ser suficiente. Explore estas técnicas avançadas.
Re-ranking com Cross-Encoders
O Re-ranking usa um modelo mais sofisticado para reavaliar os documentos recuperados, melhorando a precisão da seleção final para o LLM.
Transformação de Consultas (MultiQuery)
Esta técnica usa um LLM para gerar múltiplas variantes da pergunta original, buscando por todas e combinando os resultados para criar um contexto mais rico.
Produção e Avaliação
Levar um protótipo para produção exige avaliação rigorosa e atenção à experiência do usuário.
Métricas Essenciais de RAG
Definindo a Personalidade
"Você é um Assistente de Pesquisa de IA. Forneça respostas factuais e objetivas."
Playground Interativo
Veja o RAG em ação! Este chatbot é alimentado pela API Gemini. Clique em uma pergunta para ver o sistema funcionando.