
Nesta aula de introdução, você entende a proposta do curso: aprender, de forma simplificada (sem perder o rigor), como criar e usar um motor de busca inteligente que não apenas en contra documentos, mas também responde perguntas sobre eles com base em evidências. A ideia é reproduzir manualmente o que buscadores modernos vêm fazendo: sair do formato “lista de resultados” e caminhar para “resposta contextualizada”. Para isso, você vai percorrer uma trilha de Information Retrieval (recuperação de informação), busca léxica e semântica, técnicas híbridas e rerank, até chegar a uma aplicação completa em FastAPI integrada ao Elasticsearch, capaz de indexar PDFs, documentos e páginas, e permitir que você “converse com os seus documentos”.
Nesta aula, você define o problema central do curso: Recuperação de Informação (Information Retrieval / IR). A partir de um exemplo simples (pesquisar um termo e ver um resumo por IA), fica claro que não basta um modelo “escrever bem”: ele precisa ser contextualizado com fontes adequadas. Esse “segundo problema” — escolher e ordenar documentos/trechos por relevância para alimentar o modelo—é exatamente o que IR estuda e o que um sistema de RAG precisa fazer bem para reduzir alucinações e aumentar a precisão. A aula também antecipa a ferramenta central do curso (Elastic Stack), que existe para indexar e buscar informação textual em escala, permitindo ranquear e recuperar os melhores resultados para cada consulta.
Nesta aula, você entende o coração de um sistema de RAG (Retrieval‐Augmented Generation): em vez de pedir para um modelo de linguagem “inventar” a resposta apenas com o que ele lem‐ bra do treinamento, você primeiro recupera trechos relevantes de uma base de textos e então entrega esses trechos como contexto para o modelo gerar uma resposta mais alinhada à inten‐ ção do usuário. Para chegar nisso, a aula introduz a primeira grande estratégia de recuperação do curso: a consulta semântica, que não busca apenas palavras exatas, e sim significado. A intuição é representar textos e consultas como vetores (embeddings) em um espaço de muitas dimensões e então buscar os trechos mais próximos da consulta nesse espaço.
Nesta aula, você prepara o ambiente que será usado nas próximas etapas do curso: o Google Colab, um serviço de notebooks que permite executar Python diretamente no navegador, sem precisar instalar nada no seu computador. Você aprende a acessar o Colab com sua conta Google e a abrir o notebook fornecido como material anexo (chamado “Consulta léxica versus semântica”). Esse notebook centraliza a teoria e os exercícios que serão utilizados na aula seguinte, servindo como “terminal interativo” para os testes e demonstrações que conectam busca léxica e busca semântica no contexto do sistema de RAG.
Nesta aula, você abre o Google Colab para testar, na prática, a consulta semântica. A ideia cen‐ tral é transformar textos em embeddings(vetores numéricos) usando um modelo pré‐treinado da biblioteca Sentence‐Transformers (SBERT). Em seguida, você mede o quão “parecidos” dois textos são calculando a similaridade de cosseno (o cosseno do ângulo entre vetores). Por fim, você gera uma matriz de similaridade para comparar todas as frases entre si e observa casos interessantes, como frases em idiomas diferentes aparecendo como semanticamente próximas (ex.: cat e gato), além de perceber por que o mesmo termo pode ser ambíguo dependendo do contexto (ex.: banco).
Nesta aula, você entende por que um sistema de RAG costuma combinar duas peças: (1) um modelo de embeddings para representar textos em vetores e permitir busca semântica (simi‐ laridade entre sentenças) e (2) um modelo gerador de linguagem para produzir a resposta final usando os trechos recuperados. Embora existam modelos abertos de embeddings (como os da família Sentence‐BERT/Sentence Transformers) que podem rodar localmente, o curso adota a OpenAI por conveniência: ela fornece tanto embeddings quanto modelos geradores via API. Você aprende a criar uma conta na OpenAI Platform, gerar uma API key, armazená‐la corretamente como variável de ambiente (sem colar em bloco de notas ou no código) e configurar créditos/billing para conseguir usar a API nas próximas aulas.
Nesta aula, você aprende por que a consulta léxica (consulta por termos) é uma peça essencial em sistemas modernos de busca e RAG: há casos em que a busca semântica pode falhar (por exemplo, termos raros, siglas, nomes próprios ou expressões muito específicas), e a busca por termos exatos é a forma mais confiável de trazer documentos que contêm literalmente aquilo que você digitou. Em seguida, você conhece o Okapi BM25, um algoritmo clássico de ranqueamento usado em mecanismos de busca (e que está por trás do comportamento padrão de motores como Lucene/Elasticsearch). No Colab, você monta uma versão didática e simpli‐ ficada: normaliza texto, tokeniza frases, cria um índice invertido e implementa um retriever BM25 com parâmetros k1 e b. Por fim, você testa queries ambíguas (como “banco”) e vê como adicionar contexto (“juros” vs “praça”) melhora o ranqueamento, preparando o terreno para combinar o melhor da busca léxica com o melhor da busca semântica em uma busca híbrida.
Nesta aula, você adiciona uma peça central de sistemas modernos de busca (e de RAG): o rerank (reclassificação/fusão de resultados). A ideia é simples: em vez de confiar em um único motor de busca, você gera candidatos com dois motores diferentes — um léxico (por termos, como BM25) e um semântico (por embeddings, como similaridade de cosseno) — e então funde esses rankings para produzir uma ordem final mais útil. Você implementa duas técnicas muito usadas: RRF (Reciprocal Rank Fusion), que mistura rankings olhando apenas a posição dos itens em cada lista, e WLF (Weighted Linear Fusion), que mistura usando scores normalizados e um peso alpha. Embora no seu sistema real esses rankings venham do Elasticsearch, aqui você simula tudo localmente para focar no conceito e entender exatamente o que o código está fazendo.
Nesta aula você faz um experimento controlado para comparar como os resultados de busca mudam quando você usa (1) busca puramente léxica (BM25), (2) busca puramente semântica (embeddings + cosseno) e (3) busca híbrida (união de candidatos + rerank). O foco aqui é entender o comportamento do rerank usando duas técnicas clássicas: RRF (Reciprocal Rank Fusion), que combina rankings usando apenas posições, e WLF (Weighted Linear Fusion), que combina scores normalizados com um peso α. A ideia é observar, com cuidado, por que certos resultados sobem ou descem no ranking dependendo do tipo de consulta (palavras‐chave exatas vs. perguntas/paráfrases), e como ajustar k e α para refletir o perfil de busca dos usuários.
Nesta aula, você conhece o que é o Elasticsearch e por que ele é uma peça central no curso: ele funciona como um “Google interno” para os dados que você alimenta no sistema, criando índices para permitir busca full‐text e consultas rápidas. Você também entende o papel do Kibana, uma interface web que facilita explorar dados, montar visualizações e inspecionar consultas. O Logstash aparece apenas como contexto: uma ferramenta de pipeline (ETL) que pode enviar dados para o Elasticsearch, mas que não será usada no curso. Ao final, fica claro que existem formas diferentes de instalar essa stack, e que a abordagem recomendada aqui (e mais próxima do mundo real) é instalar via Docker, assunto da próxima aula.
Nesta aula, você aprende o que é o Docker e por que ele é tão usado no mercado: ele permite empacotar uma aplicação junto com tudo que ela precisa (dependências, bibliotecas, configurações e serviços de apoio) em unidades isoladas chamadas containers. O objetivo é garantir reprodutibilidade: aquilo que roda na sua máquina também roda do mesmo jeito em outro computador, em um servidor ou no ambiente de alguém da equipe, evitando conflitos de versão e “na minha máquina funciona”. Na prática, você baixa e instala o Docker Desktop no Windows, entende a opção de usar WSL 2 (Linux dentro do Windows) e valida a instalação pelo terminal executando comandos básicos do Docker.
Nesta aula, você sobe (“liga”) dois serviços essenciais do ecossistema do curso usando Docker Compose: o Elasticsearch (onde os dados/indexação ficam) e o Kibana (a interface web para visualizar e administrar o Elasticsearch). A instalação é feita em modo de desenvolvimento, ou seja, sem autenticação e sem HTTPS, para facilitar o primeiro contato e acelerar testes locais. Ao final, você valida que ambos estão no ar acessando as portas 5601 (Kibana) e 9200 (Elasticsearch) no localhost.
Nesta aula, você faz o primeiro “teste de vida” do Elasticsearch usando o Kibana como inter‐ face prática. Você aprende onde fica o Dev Tools (o console do Kibana), entende que você está chamando a API REST do Elasticsearch usando verbos HTTP (GET, POST, PUT, DELETE) e ob‐ serva como as respostas têm status code (como 404). Na prática, você cria um índice simples (documentos_teste), insere documentos (com ID fixo e com ID automático) e realiza consultas básicas para confirmar que indexação e busca estão funcionando — preparando o terreno para, depois, modelar índices e campos do jeito certo para uma aplicação de RAG.
Nesta aula, você instala o Elasticsearch e o Kibana em um modo mais seguro (com autenticação e comunicação via HTTPS) usando Docker Compose. A ideia é sair de um ambiente “aberto” para um ambiente onde o acesso exige usuário e senha (usuário padrão elastic), com a se‐ nha definida por uma variável de ambiente (ELASTIC_PASSWORD). Você também aprende a concluir a configuração inicial do Kibana usando um enrollment token (token de matrícula) e um verification code (código de verificação), obtidos via comandos docker exec ou via logs. Por fim, você valida que tudo está funcionando acessando o Kibana e também o Elasticsearch diretamente.
Nesta aula, você dá um passo além do “BM25 puro” e começa a entender um dos superpoderes do Elasticsearch: a análise de texto (analysis) por meio de analyzers. Em vez de tratar um texto como uma string crua, o Elasticsearch o transforma em tokens (unidades pesquisáveis), e você aprende a inspecionar esse processo com o endpoint _analyze. Você vê como funciona uma tokenização padrão e como refinar o processamento com filtros (como lowercase e stemmer para Português), aumentando a tolerância a plurais e flexões. Por fim, você entende que a análise pode ocorrer no momento da indexação (quando os dados são armazenados) e/ou no momento da consulta (quando você busca), o que é essencial para portar esse comportamento para uma aplicação RAG real.
Nesta aula você cria, de forma controlada e explícita, um índice de testes no Elasticsearch (documentos_teste) já “pronto para busca”. Em vez de deixar o Elasticsearch decidir tudo sozinho, você define como o texto será lido (analyzers e filtros, incluindo stop words em Português, remoção de acentos, e stemmer) e como os documentos serão armazenados(mappings e tipos de campos). Você também cria subcampos para autocomplete com edge n‐gram e um subcampo mais exato, além de preparar o campo vetorial (dense_vector) para buscas semân‐ ticas. Por fim, você valida a criação no Index Management e aprende o básico sobre shards (partições) e réplicas (redundância), entendendo por que um índice pode ficar “amarelo” e como isso se relaciona ao ambiente do cluster.
Nesta aula, você aprende a fazer operações básicas (CRUD) em documentos dentro de um índice do Elasticsearch, usando o Console do Kibana (Dev Tools). Você cria dois documentos de teste no índice documentos_teste, entendendo por que eles têm campos como doc_id e chunk_id (para representar um documento grande dividido em trechos), além de metadados como source e file_path. Em seguida, você vê duas formas diferentes de atualizar: a atualização parcial via POST .../_update, que muda só um pedaço do documento, e o full update via PUT, que substitui o documento inteiro (e pode apagar campos se você não reenviar tudo). Por fim, você aprende a deletar documentos com DELETE e a checar rapidamente se um documento existe com HEAD. Tudo isso é a base prática para entender como uma aplicação RAG indexa, corrige e mantém documentos ao longo do tempo.
Nesta aula você aprende a fazer consultas mais próximas do que a aplicação RAG usa no dia a dia: uma busca léxica multi‐campos (com multi_match e pesos por campo para favorecer título, conteúdo e fonte) e uma busca vetorial (semântica) usando kNN no campo de embeddings. Você também aprende a controlar quais campos voltam na resposta (com _source) para deixar o resultado mais leve e prático. Ao final, fica claro o papel de cada busca dentro do RAG: a busca textual é precisa para termos; a vetorial é forte para significado; e a aplicação combina ambas e depois faz rerank (tema das próximas aulas).
Nesta aula, você aprende que o Kibana não é “obrigatório” para fazer consultas, indexação e operações comuns do Elasticsearch: ele é apenas uma interface visual conveniente. Como o Elasticsearch expõe tudo por endpoints HTTP, você pode executar as mesmas ações com ferra‐ mentas de requisição como Postman e Insomnia (interface gráfica) ou diretamente pelo terminal com cURL. Você vê como configurar o método HTTP correto (GET/POST/PUT/DELETE), como enviar um payload em JSON, como incluir cabeçalhos (headers) e como autenticar usando Basic Auth. Por fim, você entende como ler a resposta do Elasticsearch (campos como took e hits) e por que isso é útil para depuração e para ambientes onde você não quer (ou não pode) instalar o Kibana.
Nesta aula, você começa a transição do laboratório no Kibana/Elasticsearch para uma aplicação RAG completa já pronta. O objetivo aqui não é programar do zero, e sim entender a estrutura do projeto (pastas e arquivos), como o Docker Compose configura o ambiente de execução e, principalmente, como a aplicação depende de variáveis de ambiente do sistema operacional (OPENAI_API_KEY, ELASTIC_PASS e variáveis administrativas). Você também aprende por que é recomendado trocar valores padrão (e‐mail/senha de admin e SECRET_KEY) e como gerar uma chave segura usando um gerenciador como o Bitwarden. Ao final, você fica pronto para, nas próximas aulas, rodar o projeto e estudar a ponte “Kibana → Python”.
Nesta aula, você aprende a transpor os comandos do Kibana Dev Tools (onde você executa JSON diretamente) para o Python, usando o cliente oficial do Elasticsearch. A principal mudança é que, no Python, você precisa criar uma conexão (incluindo autenticação via usuário e senha vindos de variáveis de ambiente) e então chamar métodos da biblioteca (como indices.create, search e helpers.bulk). Ao final, fica claro como o código da aplicação organiza tudo: configuração, criação do índice (settings/mappings), indexação em lote (bulk) e execução de buscas (léxica, semântica e híbrida), preparando os melhores contextos para o LLM no pipeline de RAG.
Nesta aula você conhece os serviços centrais do backend da aplicação de RAG: (1) o serviço de LLM, responsável por definir como o chat inteligente se comporta (incluindo o System Prompt, o modelo usado e o streaming de resposta com citações); (2) o serviço de indexação/busca, que concentra as definições do Elasticsearch (settings e mappings), o processo de chunking, geração de embeddings em lote e as estratégias de busca léxica, semântica e híbrida com rerank (RRF/WLF); e (3) o serviço de parser de documentos, que extrai texto de arquivos e URLs para que tudo possa ser corretamente indexado. O objetivo aqui não é “decorar” o código, e sim saber onde mexer para personalizar comportamento, entender limitações e diagnosticar problemas.
Nesta aula, você aprende uma das peças mais importantes de qualquer aplicação que envolve LLMs e RAG: o chunker (serviço de chunking). A ideia é simples: documentos geralmente são grandes demais para serem usados de uma vez (tanto para embeddings quanto para o contexto do modelo), então você divide o texto em trechos menores medidos em tokens. Além disso, você aplica overlap (sobreposição) entre os trechos para evitar que a divisão “corte” uma ideia no meio e deixe os chunks desconexos. O resultado é um conjunto de chunks mais coerentes para: (1) gerar embeddings com melhor qualidade, (2) indexar e recuperar trechos relevantes, e (3) fornecer ao LLM um contexto mais contínuo na etapa de geração.
Nesta aula, você aprende a executar o aplicativo completo de RAG usando Docker Compose, exatamente como indicado no README do projeto (o arquivo de instruções que costuma vir na raiz do repositório). Em seguida, você acessa a interface web do App, faz login com o usuário administrador configurado por variáveis de ambiente, e entende a estrutura das telas: busca (com modos léxico, semântico e híbrido, além de rerank e resposta com IA), indexação (upload de documentos e indexação por URL) e painel administrativo (aprovação de usuários e gerenciamento de papéis). Ao final, você vê na prática o fluxo de cadastro de um novo usuário, a tentativa de login bloqueada por falta de aprovação, e a liberação do acesso pelo administrador.
Nesta aula, você aprende o fluxo prático de indexação de documentos dentro da aplicação didática de RAG. Primeiro, você entende a diferença entre acessar o painel como admin (configura usuários e recursos) e como manager (faz buscas e indexação). Em seguida, você revisa a aba Configurações para ligar/desligar funcionalidades globais (embeddings/busca semântica, respostas por IA no chat e chat com documento), sempre pensando em custo e necessidade. Por fim, você indexa documentos de três formas — upload de arquivo (.docx), upload de PDF e indexação via URL — entendendo como o app cria chunks, gera embeddings (quando habilitado), grava no Elasticsearch e como usar IDs para editar (atualizar) ou remover documentos com segurança.
Nesta aula, você pratica o uso do app final do curso como um RAG completo: faz consultas híbridas (misturando busca léxica e semântica), compara com busca puramente léxica (muito rápida e com destaque de palavras‐chave) e com busca puramente semântica (focada em significado). O foco principal é entender a rastreabilidade do sistema: cada resposta da IA vem acompanhada de referências que apontam para os chunks (trechos) usados como contexto. Você também aprende a usar um modo de chat restrito a um documento (filtrando por ID) e vê como o app lida com PDFs. A mensagem final é: RAG é “gerar com base em recuperação”, isto é, selecionar trechos relevantes para reduzir alucinação e aumentar precisão.
Nesta aula (um “extra” de curiosidade), você inspeciona como os dados do RAG estão sendo armazenados no Elasticsearch após a indexação. Em vez de poucos textos grandes, o sistema quebra cada texto em vários chunks (trechos menores) com overlap (um pedacinho repetido entre trechos) e indexa cada chunk como um documento no índice (por isso, por exemplo, 3 textos podem virar 49 documentos). Você também entende como os IDs (da aplicação, do do‐ cumento e do chunk) ajudam a localizar e editar um trecho específico, e como os embeddings (vetores com milhares de dimensões) ficam associados a cada chunk para permitir buscas por similaridade (kNN / vizinhos mais próximos), geralmente usando similaridade do cosseno.
Ao longo das aulas, você entenderá o problema central que o RAG (Retrieval Augmented Generation) resolve: como evitar que modelos de IA "alucinem" informações, fornecendo contexto recuperado de bases de conhecimento reais. E, como brinde, você receberá uma aplicação web completa e funcional, pronta para rodar, que estudaremos juntos para entender o funcionamento e a portabilidade da tecnologia em sistemas reais de produção.
Neste curso, você descobrirá do zero, na prática e com as próprias mãos, como funcionam os sistemas de busca inteligentes que estão por trás de ferramentas como Google, ChatGPT, Perplexity e Bing AI. Através de uma trilha estruturada e progressiva, você implementará manualmente os algoritmos fundamentais de recuperação de informação antes mesmo de usar frameworks profissionais, garantindo compreensão profunda de cada conceito.
Você vai construir um RAG usando o Elasticsearch como sua vector store (vector database, banco vetorial), com embeddings, vector search, busca léxica e busca híbrida, manualmente, sem a necessidade de frameworks como Langchain ou LlamaIndex.
A metodologia é a seguinte: primeiro você constrói os algoritmos do zero (full-text search, embeddings semânticos, reranking) usando Python puro e bibliotecas básicas como NumPy, SentenceTransformers e Torch. Só depois de entender como tudo funciona por baixo dos panos, você aprende a usar Elasticsearch e Kibana, ferramentas industriais usadas por empresas como Uber, Netflix e Tinder para processar bilhões de documentos.
O material completo que acompanha o curso
Além das videoaulas práticas, você terá acesso a:
Roteiro escrito detalhado com explicações teóricas, comandos e checklists, com quase 250 páginas
Código Python de todos os algoritmos implementados manualmente (busca, embeddings, reranking)
Aplicação web FastAPI completa pronta para rodar e estudar
Notebooks Jupyter (Google Colab) com experimentos práticos de S-BERT
Scripts Elasticsearch com queries, mappings e analyzers configurados
Docker Compose para subir Elasticsearch + Kibana com um comando
Você não depende só do vídeo — pode seguir o texto, executar os scripts, experimentar no Colab e revisitar o material sempre que precisar.
O que você vai aprender na prática
Ao longo do curso "RAG End-to-End com Elastic", você vai implementar do zero e entender:
Fase 1: Implementação Manual dos Algoritmos (Aprendizado Profundo)
Busca léxica do zero: índices invertidos, tokenização, TF-IDF, BM25 implementados em Python puro
Embeddings semânticos: vetorização de texto com Sentence Transformers (S-BERT) no Google Colab
Similaridade cossenoidal: cálculo manual com NumPy (produto interno, norma vetorial) e com utilitários do Sentence Transformers
Algoritmos de reranking: RRF e WLF implementados linha por linha para entender a lógica
Fase 2: Elasticsearch Profissional (Escalabilidade Real)
Migração para Elasticsearch/Kibana: entender como levar conceitos manuais para produção
Mapeamentos e analyzers: configuração avançada com stop words, n-grams, campos multi-analisados
REST API: manipulação de índices e documentos via DevTools Console
Dense vectors: armazenamento e busca KNN em vetores da OpenAI
Busca híbrida: combinação de BM25 (lexical) + KNN (semântica) em uma única query
Brinde: Aplicação Web Completa e Funcional (Estudo de Caso Real)
Você receberá uma aplicação totalmente funcional já implementada, que serve como referência profissional para seus próprios projetos com:
Backend Robusto: FastAPI com autenticação JWT, roles (admin/user), SQLAlchemy ORM
Interface Moderna: Templates Jinja2 + CSS moderno com design responsivo
Upload de Documentos: Suporte para PDF, DOCX, TXT, HTML (URLs)
Processamento Inteligente:
Chunking automático com controle de overlap
Geração de embeddings via OpenAI API
Fallback para busca puramente léxica se IA indisponível
Busca Híbrida Completa:
Lexical (BM25): multi-match com boost em campos, fuzziness, wildcards
Semantic (KNN): similaridade cossenoidal em vetores 1536-d
Reranking Manual: RRF e WLF implementados em Python
Features Profissionais:
Autocomplete com n-grams
Highlight de termos encontrados
Paginação com field collapsing
Gerenciamento de documentos (CRUD, batch delete)
Painel administrativo completo
Sistema de aprovação de usuários
Pronto para Docker: docker-compose.yml para subir toda a stack (App + Elasticsearch 9.2 + Kibana)
Configuração por Variáveis de Ambiente: Sem arquivos .env, seguindo padrão de mercado (K8s, Lambda, etc.)
O que você aprenderá estudando o código:
Estrutura de projeto FastAPI profissional (routers, services, models, schemas)
Integração Python - Elasticsearch com client oficial
Implementação real de algoritmos de reranking (RRF, WLF)
Gestão de embeddings em lote (batching) para otimização de custos
Analyzers customizados para língua portuguesa
Mapeamentos avançados (dense_vector, multi-fields, ngrams)
Autenticação e autorização em aplicações RAG
A aplicação final não é construída do zero no curso; eu a entrego de brinde já funcional. O foco é entender profundamente a tecnologia e sua portabilidade. Você implementará os algoritmos fundamentais manualmente primeiro para dominar a lógica, depois aprenderá a usar ferramentas profissionais como Elasticsearch, e por fim estudará a aplicação completa para entender como tudo se integra em um ambiente de produção real.
Tecnologias e conceitos que você dominará na prática
Ao final do curso, você terá construído um sistema RAG completo e terá aprendido a trabalhar com:
1. Information Retrieval: O Problema Central
Por que LLMs precisam de contexto externo para evitar alucinações
Como documentos são indexados, ranqueados e recuperados em motores de busca modernos
Índices invertidos e consultas full-text
2. Docker e Elasticsearch Stack
Instalação do Docker e Docker Compose
Configuração do Elasticsearch e Kibana via containers
Elastic Stack (Elasticsearch + Kibana)
Baseado no Apache Lucene (motor de busca de alta performance)
3. Elasticsearch: Criação e Manipulação de Índices
REST API completa: GET, POST, PUT, DELETE via DevTools Console
Index Management: criação, listagem, exclusão de índices
Documentos JSON: inserção, atualização, busca
Shards e Replicas: configuração para escalabilidade
4. Analyzers e Processamento de Texto
Analyzers personalizados: tokenização, normalização, stemming
Stop Words: remoção de palavras irrelevantes (artigos, preposições)
N-grams (2-grams, 3-grams): autocomplete e busca fuzzy
Filtros: lowercase, ASCII-folding, tamanho de caracteres
Analyzers em Português: configuração específica para PT-BR
5. Mappings e Tipos de Campos
Tipos de dados: text, keyword, dense_vector, integer, date
Campos multi-analisados: texto exato + n-grams + analyzer PT
Sub-campos (fields): múltiplas formas de indexar o mesmo conteúdo
Dense Vector: armazenamento de embeddings (768, 1536 dimensões)
Index vs. Search Analyzers: otimização de escrita e leitura
6. Busca Semântica: Embeddings e Vetorização
Sentence Transformers (S-BERT): modelos pré-treinados multilinguais
Google Colab: prototipagem rápida com notebooks Jupyter
Encoders de texto: transformação de frases em vetores numéricos
Espaço latente: representação semântica de N-dimensões
Similaridade: cálculo de proximidade entre vetores
NumPy: operações vetoriais
OpenAI Embeddings API: integração com modelos de produção
7. Configuração de Variáveis de Ambiente
Armazenamento seguro de API Keys e segredps
Variáveis de ambiente em Windows, Linux e WSL
Boas práticas de segurança (evitar vazamento em repositórios)
8. Kibana: Interface de Visualização
DevTools Console: execução de queries Elasticsearch
Index Management UI: visualização e gerenciamento de índices
Descoberta de dados: exploração visual de documentos indexados
9. Busca Híbrida: Combinando Lexical + Semantic
Quando usar cada abordagem (keywords vs. significado)
Queries multi-campo no Elasticsearch
Normalização e balanceamento de scores
Boosting de campos específicos
10. Reranking: Algoritmos de Fusão
RRF (Reciprocal Rank Fusion): fusão sem pesos
WLF (Weighted Linear Fusion): ajuste de importância relativa
Implementação em Python com lógica customizada
11. RAG: Integração com LLMs
Estruturação de prompts com contexto recuperado
API da OpenAI
Citação de fontes: rastreamento de chunks utilizados
12. Aplicação Web FastAPI
Estrutura de projeto: rotas, templates, static files
Integração Elasticsearch - Python
Interface de consulta interativa
Exibição de resultados ranqueados + resposta do LLM
Deploy e testes locais
Para quem é este curso
Este curso é para você que:
Quer entender como Google, ChatGPT, Perplexity e Bing AI funcionam por trás das cortinas (spoiler: é RAG!)
Tem curiosidade sobre busca inteligente, embeddings e IA generativa, mas ainda não encontrou um caminho estruturado e prático
Deseja construir chatbots empresariais que respondem com base em documentação interna (manuais, políticas, conhecimento corporativo)
Já programa, mas nunca implementou um sistema de busca com ML/AI do zero
Quer dominar Elasticsearch, uma skill extremamente valorizada no mercado, aplicado a Ingeligência Artificial
Precisa criar sistemas de Q&A automático ou assistentes virtuais baseados em dados reais
Quer construir aplicações de IA que não alucinem, porque estão fundamentadas em documentos verificáveis