Construção de um sistema de perguntas e respostas com RAG de ponta a ponta
Cadeia RetrievalQA, prompts personalizados, atribuição de fontes e avaliação de RAG com RAGAS.
Construção de um sistema de perguntas e respostas com RAG de ponta a ponta é uma aula grátis de Learn AI with Python no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Learn AI with Python, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Learn AI with Python inclui 4 aulas no total.
O que é RAG?
Geração Aumentada por Recuperação fundamenta um LLM nos seus próprios dados. No momento da consulta, você recupera partes relevantes de um armazenamento vetorial e as insere na instrução, para que o modelo responda com base em fatos em vez de tentar adivinhar.
O fluxo do RAG
Toda consulta RAG segue quatro etapas: (1) gerar a representação vetorial da pergunta, (2) recuperar partes semelhantes, (3) inseri-las na instrução como contexto, (4) o LLM gera uma resposta fundamentada nesse contexto.
Transformando um armazenamento em um recuperador
Converta seu armazenamento vetorial em um recuperador com as_retriever. O dicionário search_kwargs controla a recuperação, principalmente k, o número de partes a buscar por pergunta.
retriever = db.as_retriever(
search_kwargs={"k": 4}
)Ajustando os parâmetros da busca
search_kwargs também pode definir um limite de pontuação ou opções de MMR. Comece com k=4; aumente-o se as respostas não tiverem contexto, ou reduza-o para diminuir o custo de tokens e o excesso de informações.
retriever = db.as_retriever(
search_type="similarity_score_threshold",
search_kwargs={"k": 6, "score_threshold": 0.5}
)Cadeia RetrievalQA
A cadeia RetrievalQA conecta a recuperação e a geração. Crie-a com from_chain_type, passando seu llm e seu retriever. Agora, uma única chamada responde a perguntas com base nos seus documentos.
from langchain.chains import RetrievalQA
from langchain_openai import ChatOpenAI
qa = RetrievalQA.from_chain_type(
llm=ChatOpenAI(model="gpt-4o"),
retriever=retriever
)Tipo de cadeia: como o contexto é combinado
chain_type controla como as partes recuperadas entram na instrução. "stuff" (padrão) coloca todas as partes em uma única instrução; é simples e funciona melhor quando elas cabem na janela de contexto. Outros tipos, como "map_reduce", lidam com muitas partes grandes.
qa = RetrievalQA.from_chain_type(
llm=llm,
chain_type="stuff",
retriever=retriever
)Fazendo uma pergunta
Execute a cadeia com invoke, passando sua pergunta na chave query. A cadeia recupera os dados, cria a instrução e retorna a resposta fundamentada.
response = qa.invoke({"query": "What is the refund window?"})
print(response["result"])Retornando os documentos de origem
Defina return_source_documents=True para obter as partes usadas na resposta. Isso permite incluir citações e possibilita que os usuários verifiquem de onde veio cada fato, algo essencial para a confiança.
qa = RetrievalQA.from_chain_type(
llm=llm,
retriever=retriever,
return_source_documents=True
)
resp = qa.invoke({"query": "Refund window?"})
for d in resp["source_documents"]:
print(d.metadata)Por que avaliar o RAG?
O RAG pode falhar de duas maneiras: a recuperação traz as partes erradas ou a geração produz informações inventadas apesar de as partes serem boas. Você precisa de métricas para saber qual parte corrigir. Avaliar as respostas manualmente não é viável em grande escala.
Métricas do RAGAS
RAGAS é uma biblioteca que atribui pontuações à qualidade do RAG. As principais métricas são: faithfulness (resposta apoiada pelo contexto), answer_relevancy (resposta aborda a pergunta) e context_precision (partes recuperadas são relevantes).
pip install ragas
from ragas.metrics import faithfulness, answer_relevancy, context_precisionExecutando uma avaliação
Crie um conjunto de dados com perguntas, respostas geradas, contextos recuperados e respostas de referência; depois, chame evaluate. As pontuações informam se você deve melhorar a divisão em partes, o valor de k da recuperação ou a instrução.
from ragas import evaluate
result = evaluate(
dataset,
metrics=[faithfulness, answer_relevancy, context_precision]
)
print(result)Verificação rápida
Teste seu conhecimento sobre RAG.
Recapitulação: RAG de ponta a ponta
Você criou um fluxo RAG completo: db.as_retriever com search_kwargs, uma cadeia RetrievalQA.from_chain_type sobre seu llm e seu recuperador, e return_source_documents=True para incluir citações. Você também aprendeu a medir a qualidade com métricas do RAGAS, como fidelidade e precisão do contexto.
Perguntas Frequentes
A aula “Construção de um sistema de perguntas e respostas com RAG de ponta a ponta” é grátis?
Sim — o texto completo de “Construção de um sistema de perguntas e respostas com RAG de ponta a ponta” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Learn AI with Python, atualize para CoddyKit PRO. O curso de Learn AI with Python inclui 4 aulas no total.
O que vou aprender em “Construção de um sistema de perguntas e respostas com RAG de ponta a ponta”?
Cadeia RetrievalQA, prompts personalizados, atribuição de fontes e avaliação de RAG com RAGAS. Você pratica Learn AI with Python com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Learn AI with Python?
Nenhuma experiência prévia é necessária. Learn AI with Python no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.
Quanto tempo leva a aula “Construção de um sistema de perguntas e respostas com RAG de ponta a ponta”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Learn AI with Python?
Sim. Cada aula de Learn AI with Python inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Arquitetura do LangChain e LCEL
- Carregamento, divisão e embedding de documentos
- Armazenamentos vetoriais: Chroma e FAISS
- Construção de um sistema de perguntas e respostas com RAG de ponta a ponta