Buscar dados corporativos vastos e federados é um grande desafio. Em um ambiente como o da Netflix, com centenas de UIs e domínios diversos, os usuários enfrentavam uma curva de aprendizado íngreme, precisando dominar uma complexa Linguagem de Domínio Específico (DSL) de Filtros para encontrar as informações necessárias. Para derrubar essa barreira, a equipe de engenharia do Netflix aproveitou a IA, especificamente os Grandes Modelos de Linguagem (LLMs), para construir um sistema que converte perguntas em linguagem natural em instruções de filtro estruturadas da Graph Search. Este post é baseado no material fonte que detalha sua abordagem e principais insights. 🚀

AI and Large Language Model concept illustration Coding Session Visual

O Desafio Central: Correção Sintática, Semântica e Pragmática

Quando um LLM converte linguagem natural para a DSL de Filtro da Graph Search, ele deve garantir correção em três níveis:

  1. Correção Sintática: A instrução gerada segue a gramática da DSL?
  2. Correção Semântica: A instrução usa apenas campos que existem no índice e valores que são permitidos? (Prevenindo alucinações)
  3. Correção Pragmática: O filtro gerado captura com precisão a verdadeira intenção do usuário?

A estratégia principal para garantir a correção semântica foi aplicar um padrão RAG (Geração Aumentada por Recuperação) separadamente tanto aos campos quanto aos vocabulários controlados.

Server rack and cloud infrastructure representing backend systems Software Concept Art

Estratégia de Otimização de Contexto Usando RAG

Fornecer todas as centenas de campos e milhares de valores de vocabulário controlado ao LLM é ineficiente e reduz a precisão. O Netflix refinou o contexto usando uma abordagem RAG em dois estágios.

AlvoMétodoObjetivo
RAG de CamposCria embeddings dos nomes, descrições e tipos dos campos, indexando-os em um vetor store. Realiza busca de similaridade entre trechos da pergunta e os embeddings para selecionar os Top-K campos.Incluir no contexto apenas campos relevantes à pergunta, reduzindo ruído e melhorando a precisão.
RAG de Vocabulário ControladoCria embeddings dos valores do vocabulário controlado (nomes de exibição, descrições, sinônimos), indexando-os. Busca valores similares à pergunta para fornecer como valores permitidos para campos relevantes.Prevenir alucinação de valores pelo LLM e inferir campos adicionais relacionados.

Esse processo resolve cada pergunta em uma combinação otimizada de campos e valores relevantes. ✨

Data flow and analysis diagram on a digital screen Dev Environment Setup

Construindo Confiança do Usuário e Estratégias Pragmáticas

Para enfrentar o problema mais difícil — a correção pragmática — o Netflix introduziu duas estratégias práticas de UI/UX.

  1. Mostrando o Trabalho: Em vez de exibir a consulta DSL complexa crua, o sistema a analisa em uma AST (Árvore de Sintaxe Abstrata) e a visualiza como 'Chips' ou 'Facetas' na interface do usuário. Os usuários podem ver intuitivamente como sua pergunta foi interpretada em condições de filtro e fazer ajustes. 🎯
  2. Seleção Explícita de Entidades (@Menções): Quando um usuário menciona uma entidade específica como @dark, o sistema ignora a etapa de inferência RAG e codifica rigidamente esse vocabulário controlado no contexto. Isso remove a ambiguidade e aumenta simultaneamente a precisão e a confiança do usuário. 💪

Conclusão: Este sistema está evoluindo além de um simples tradutor para uma plataforma extensível. Ele representa um estudo de caso de melhor prática, combinando a flexibilidade dos LLMs, a robustez da infraestrutura existente da Graph Search, os ganhos de precisão dos padrões RAG e mecanismos de feedback centrados no usuário. É uma referência essencial para qualquer equipe que queira integrar IA em sistemas complexos de busca corporativa. Vamos lá! 🚀