Phase 19 - Lesson 08
Projeto Final 08 — Chatbot RAG em Produção para Setor Regulado
Harvey, Glean, Mendable e LlamaCloud executam todos o mesmo modelo de produção em 2026. Ingestão com docling ou Unstructured e ColPali para elementos visuais. Busca híbrida. Reclassificação (re-rank) com bge-reranker-v2-gemma. Síntese com Claude Sonnet 4.7 usando prompt caching com uma taxa de acerto de 60-80% em regime permanente. Proteção com Llama Guard 4 e NeMo Guardrails. Monitoramento com Langfuse e Phoenix. Avaliação com RAGAS em um conjunto de dados padrão (golden set) de 200 perguntas. Construa um em um domínio regulado (jurídico, clínico, de seguros), e o projeto final consistirá em passar no golden set, na equipe vermelha (red team) e no painel de desvio (drift dashboard).
Tipo: Projeto Final Idiomas: Python (pipeline + API), TypeScript (interface de chat) Pré-requisitos: Fase 5 (Processamento de Linguagem Natural), Fase 7 (Transformers), Fase 11 (Engenharia de LLM), Fase 12 (Multimodal), Fase 17 (Infraestrutura), Fase 18 (Segurança) Fases exercitadas: P5 · P7 · P11 · P12 · P17 · P18 Tempo: 30 horas
Problema
O RAG em domínios regulados (contratos jurídicos, protocolos de ensaios clínicos, apólices de seguro) é o modelo de produção mais implementado de 2026, pois o ROI é óbvio e as implicações são concretas. A Harvey (Allen & Overy) o desenvolveu para o setor jurídico. A Mendable fornece a versão para documentação de desenvolvedores. A Glean cobre a busca corporativa. O padrão consiste em: realizar a ingestão com alta fidelidade, recuperar de forma híbrida com reclassificação, sintetizar com aplicação de citações e prompt caching, proteger com múltiplas camadas de segurança e monitorar o desvio continuamente.
As partes difíceis não estão no modelo. Elas envolvem conformidade ciente de jurisdição (HIPAA, GDPR, SOC2), auditabilidade em nível de citação, controle de custos (o prompt caching oferece um desconto de 60-90% quando a taxa de acerto é alta), detecção de alucinações por meio da fidelidade do RAGAS e detecção de desvio quando os documentos de origem são atualizados sem que o índice os acompanhe. Este projeto final exige que você implemente tudo isso sob um golden set de 200 perguntas acompanhado de uma suíte de red team.
Conceito
O pipeline possui duas frentes. Ingestão: o docling ou o Unstructured analisa documentos estruturados; o ColPali lida com os visualmente ricos; os blocos (chunks) recebem resumos, tags e rótulos de acesso baseados em funções. Os vetores vão para o pgvector + pgvectorscale (para menos de 50 milhões de vetores) ou Qdrant Cloud; a busca esparsa BM25 é executada em paralelo. Conversação: o LangGraph gerencia a memória e as interações de múltiplos turnos; cada consulta executa uma recuperação híbrida, reclassifica com o bge-reranker-v2-gemma-2b, sintetiza com o Claude Sonnet 4.7 (com prompt caching), passa a saída pelo Llama Guard 4 e pelo NeMo Guardrails, e emite uma resposta ancorada em citações.
A pilha de avaliação possui quatro camadas. Golden set (200 perguntas/respostas rotuladas com citações) para exatidão. Red team (jailbreaks, tentativas de extração de PII, perguntas fora de domínio) para segurança. RAGAS para fidelidade / relevância da resposta / precisão do contexto de forma automática a cada turno. Painel de desvio (Arize Phoenix) monitorando semanalmente a qualidade da recuperação e a pontuação de alucinação.
O prompt caching é o mecanismo de controle de custos. O Claude 4.5+ e o GPT-5+ suportam o cache de prompts do sistema + contexto recuperado. Com uma taxa de acerto de 60-80%, o custo por consulta cai de 3 a 5 vezes. O pipeline deve ser projetado para prefixos estáveis (prompt do sistema + contexto reclassificado primeiro) para alcançar altas taxas de acerto de cache.
Architecture
documents (contracts, protocols, policies)
|
v
docling / Unstructured parse + ColPali for visuals
|
v
chunks + summaries + role-labels + jurisdiction tags
|
v
pgvector + pgvectorscale + BM25 (Tantivy)
|
query + role + jurisdiction
|
v
LangGraph conversational agent
+--- retrieve (hybrid)
+--- filter by role + jurisdiction
+--- rerank (bge-reranker-v2-gemma-2b or Voyage rerank-2)
+--- synthesize (Claude Sonnet 4.7, prompt cached)
+--- guard (Llama Guard 4 + NeMo Guardrails + Presidio output PII scrub)
+--- cite + return
|
v
eval:
RAGAS faithfulness / answer_relevance / context_precision (online)
Langfuse annotation queue (sampled)
Arize Phoenix drift (weekly)
red team suite (pre-release)
Pilha Tecnológica
- Ingestão: Unstructured.io ou docling para documentos estruturados; ColPali para PDFs ricos em elementos visuais
- Banco de Dados Vetorial: pgvector + pgvectorscale para menos de 50 milhões de vetores; Qdrant Cloud para volumes superiores
- Busca Esparsa: Tantivy BM25 com pesos de campo
- Orquestração: LlamaIndex Workflows (ingestão) + LangGraph (conversação)
- Reclassificador (Reranker): bge-reranker-v2-gemma-2b auto-hospedado ou Voyage rerank-2 hospedado
- LLM: Claude Sonnet 4.7 com prompt caching; alternativa Llama 3.3 70B auto-hospedado
- Avaliação: RAGAS 0.2 online, DeepEval para suítes de alucinação e jailbreak
- Observabilidade: Langfuse auto-hospedado com fila de anotação; Arize Phoenix para desvio (drift)
- Barreiras de Segurança (Guardrails): classificador de entrada/saída Llama Guard 4, políticas NeMo Guardrails v0.12, remoção de PII do Presidio
- Conformidade: rótulos de acesso baseados em funções nos blocos; tags de jurisdição para GDPR/HIPAA
Passo a Passo do Desenvolvimento
Ingestão. Analise o seu corpus (de 1.000 a 10.000 documentos para uma implementação robusta) com o Unstructured ou o docling. Para páginas digitalizadas ou com muitos elementos visuais, direcione pelo ColPali. Gere blocos com resumos, rótulos de função e tags de jurisdição.
Indexação. Embeddings densos (Voyage-3 ou Nomic-embed-v2) no pgvector + pgvectorscale. Índice secundário BM25 via Tantivy. Filtros de função e jurisdição incluídos como carga útil (payload).
Recuperação híbrida. Filtre por função+jurisdição primeiro; depois execute a busca densa e o BM25 em paralelo; combine-os com reciprocal rank fusion; envie os 20 melhores resultados para o reclassificador e os 5 melhores para a síntese.
Síntese com prompt caching. Defina o prompt do sistema + políticas estáticas no cabeçalho do cache; o contexto reclassificado como extensão do cache; a pergunta do usuário como sufixo não armazenado em cache. Busque atingir uma taxa de acerto de cache de 60-80% em regime permanente.
Barreiras de segurança. Llama Guard 4 na entrada; políticas do NeMo Guardrails bloqueiam perguntas fora do domínio ou tópicos proibidos por política; o Presidio higieniza dados pessoais (PII) acidentais na saída; pós-filtro para aplicação de citações.
Golden set. 200 pares de perguntas e respostas rotulados por um especialista no domínio com (resposta, citações). Pontue o agente na correspondência exata de citações, corretude da resposta e fidelidade (RAGAS).
Red team. 50 prompts adversários: jailbreaks (PAIR, TAP), tentativas de exfiltração de PII, vazamentos fora do domínio e entre jurisdições. Pontue com aprovação/falha e gravidade.
Painel de desvio. O Arize Phoenix rastreia semanalmente a qualidade da recuperação (nDCG, fidelidade de citação). Alerte em caso de queda de 5%.
Relatório de custos. Langfuse: taxa de acerto de prompt-caching, tokens por consulta, detalhamento de $/consulta por etapa.
Use It
$ chat --role=analyst --jurisdiction=GDPR
> what is the data-retention obligation for EU user profiles under our contract?
[retrieve] hybrid top-20 filtered to GDPR + analyst-role
[rerank] top-5 kept
[synth] claude-sonnet-4.7, cache hit 74%, 0.8s
answer:
The contract (Section 12.4, Master Services Agreement dated 2024-03-11)
obligates EU user profile deletion within 30 days of termination per GDPR
Article 17. The DPA amendment (DPA-v2.1, Section 5) extends this to 14 days
for "restricted" category data.
citations: [MSA-2024-03-11 s12.4, DPA-v2.1 s5]
Entrega
outputs/skill-production-rag.md descreve o entregável. Um chatbot para domínio regulado implantado com rótulos de conformidade, avaliado pelos critérios da rubrica e monitorado com acompanhamento de desvio em tempo real.
| Peso | Critério | Como é medido |
|---|---|---|
| 25 | Fidelidade RAGAS + relevância da resposta | Pontuações online no golden set (200 perguntas/respostas) |
| 20 | Correção das citações | Fração de respostas com âncoras de origem verificáveis |
| 20 | Cobertura de barreiras de segurança | Taxa de aprovação do Llama Guard 4 + resultados da suíte de jailbreak |
| 20 | Engenharia de custo / latência | Taxa de acerto de prompt-cache, latência p95, $/consulta |
| 15 | Painel de monitoramento de desvio | Painel em tempo real do Phoenix com a tendência semanal de qualidade de recuperação |
| 100 |
Exercícios
Construa uma segunda partição do corpus sob uma jurisdição diferente (por exemplo, HIPAA junto com a GDPR). Demonstre que o filtragem por função+jurisdição impede vazamentos cruzados em um teste de 20 perguntas que cruzam jurisdições.
Meça a taxa de acerto de prompt-cache ao longo de uma semana de tráfego de produção. Identifique quais consultas invalidam o prefixo do cache. Reestruture.
Adicione memória de múltiplos turnos com um buffer de resumo de 10k tokens. Meça se a fidelidade cai à medida que a conversa se alonga.
Substitua o Claude Sonnet 4.7 pelo Llama 3.3 70B auto-hospedado. Meça a diferença em $/consulta e na fidelidade.
Adicione um modo "inseguro": se as maiores pontuações de reclassificação estiverem abaixo de um limiar, o agente dirá "Não tenho citações confiáveis" em vez de responder. Meça a redução da falsa confiança.
Termos-Chave
| Termo | O que dizem | O que realmente significa |
|---|---|---|
| Prompt caching | "Sistema + contexto em cache" | Recurso do Claude/OpenAI: tokens de prefixo em cache recebem desconto de 60-90% no acerto |
| RAGAS | "Avaliador de RAG" | Pontuação automatizada de fidelidade, relevância da resposta e precisão do contexto |
| Golden set | "Avaliação rotulada" | Mais de 200 perguntas/respostas rotuladas por especialistas com citações; a verdade fundamental |
| Jurisdiction tag | "Rótulo de conformidade" | Escopo de GDPR/HIPAA/SOC2 anexado aos blocos; aplicado pelo filtro de recuperação |
| Citation faithfulness | "Taxa de resposta fundamentada" | Fração de afirmações sustentadas por trechos de origem recuperáveis |
| Drift | "Declínio de qualidade de recuperação" | Mudança semanal no nDCG ou pontuação de citação; limite de alerta em 5% |
| Red team | "Avaliação adversária" | Teste de segurança antes do lançamento contendo jailbreak, extração de PII e sondagens fora do domínio |
Leituras Adicionais
- Harvey AI — pilha de referência para produção jurídica
- Glean enterprise search — referência de RAG em escala empresarial
- Mendable documentation — referência de RAG para documentação de desenvolvedores
- LlamaCloud Parse + Index — Ingestão gerenciada
- Anthropic prompt caching — referência para o mecanismo de controle de custos
- RAGAS 0.2 documentation — a estrutura canônica de avaliação de RAG
- Arize Phoenix — referência para observabilidade de desvio (drift)
- Llama Guard 4 — classificador de segurança de 2026
- NeMo Guardrails v0.12 — estrutura para barreiras de políticas (policy rails)