[ { "query": "O que e RAG?", "ground_truth": "RAG (Retrieval-Augmented Generation) e uma tecnica que combina busca de informacoes relevantes (retrieval) com geracao de texto por um LLM. O sistema primeiro busca documentos relevantes e depois usa esses documentos como contexto para gerar uma resposta mais precisa e fundamentada.", "contexts": [ "RAG combina retrieval com generation usando LLMs", "O sistema busca documentos relevantes e usa como contexto" ], "difficulty": "easy", "topic": "basics" }, { "query": "Como funciona hybrid search?", "ground_truth": "Hybrid search combina busca vetorial semantica com busca por palavras-chave (BM25). A busca vetorial encontra documentos semanticamente similares, enquanto BM25 encontra correspondencias exatas de termos. Os resultados sao combinados usando um parametro alpha que controla o peso de cada metodo.", "contexts": [ "Hybrid search usa BM25 e busca vetorial", "Alpha controla o peso entre os dois metodos", "BM25 encontra termos exatos, vetorial encontra semantica" ], "difficulty": "medium", "topic": "search" }, { "query": "Qual a diferenca entre chunking fixo e semantico?", "ground_truth": "Chunking fixo divide o texto em pedacos de tamanho fixo (ex: 500 caracteres), podendo quebrar no meio de sentencas. Chunking semantico respeita limites naturais do texto como paragrafos, preservando coerencia semantica, mas pode gerar chunks de tamanhos variaveis.", "contexts": [ "Chunking fixo usa tamanho fixo de caracteres", "Chunking semantico respeita paragrafos e sentencas", "Semantico preserva coerencia mas tem tamanhos variaveis" ], "difficulty": "medium", "topic": "chunking" }, { "query": "Para que serve reranking?", "ground_truth": "Reranking melhora a ordem dos resultados apos a busca inicial. Usa um cross-encoder que avalia a relevancia de cada par (query, documento) de forma mais precisa que a busca vetorial inicial. Tipicamente recupera-se mais documentos (ex: 20) e reordena-se para selecionar os melhores (ex: top 5).", "contexts": [ "Reranking melhora a ordem dos resultados de busca", "Cross-encoder avalia pares query-documento", "Recupera mais docs inicialmente e seleciona os melhores" ], "difficulty": "medium", "topic": "reranking" }, { "query": "Quais sao os LLM providers suportados?", "ground_truth": "O sistema suporta 4 providers de LLM: HuggingFace Inference API (modelos como Mistral), OpenAI (GPT-3.5, GPT-4), Anthropic (Claude 3 Haiku/Sonnet/Opus) e Ollama (modelos locais). A selecao e feita via variavel LLM_PROVIDER no arquivo .env.", "contexts": [ "Suporta HuggingFace, OpenAI, Anthropic e Ollama", "Configuracao via LLM_PROVIDER no .env", "Cada provider tem suas proprias API keys" ], "difficulty": "easy", "topic": "llm" }, { "query": "Como configurar o Supabase?", "ground_truth": "Para configurar Supabase: 1) Crie conta e projeto, 2) Habilite extensao pgvector em Database > Extensions, 3) Copie connection string em Settings > Database, 4) Configure DATABASE_URL no .env com formato postgresql://postgres:PASSWORD@db.PROJECT_REF.supabase.co:5432/postgres", "contexts": [ "Crie projeto no Supabase e habilite pgvector", "Connection string em Settings > Database", "Configure DATABASE_URL no .env" ], "difficulty": "medium", "topic": "database" }, { "query": "Qual a diferenca entre temperature 0.1 e 0.9?", "ground_truth": "Temperature controla a criatividade do LLM. Temperature baixa (0.1-0.3) gera respostas mais deterministicas e focadas, ideal para RAG onde queremos respostas precisas baseadas no contexto. Temperature alta (0.7-1.0) gera respostas mais criativas e variadas, mas pode desviar do contexto.", "contexts": [ "Temperature controla criatividade do LLM", "Baixa (0.1-0.3) = mais focado e deterministico", "Alta (0.7-1.0) = mais criativo mas pode desviar" ], "difficulty": "medium", "topic": "llm" }, { "query": "O que e query expansion?", "ground_truth": "Query expansion gera multiplas variantes da pergunta original para aumentar recall. Existem 3 metodos: LLM (gera variantes contextuais), Template (templates predefinidos) e Paraphrase (sinonimos). Busca com todas variantes e combina resultados.", "contexts": [ "Query expansion gera variantes da pergunta", "3 metodos: LLM, Template, Paraphrase", "Aumenta recall combinando resultados" ], "difficulty": "hard", "topic": "search" }, { "query": "Como funciona o cache de embeddings?", "ground_truth": "O cache armazena embeddings ja calculados para evitar reprocessamento. Usa SHA-256 do texto + model_id como chave. Tem cache em memoria (LRU) e em disco (persistente). Acelera significativamente quando processa documentos repetidos ou queries similares.", "contexts": [ "Cache armazena embeddings ja calculados", "Chave: hash SHA-256 de texto + model_id", "Cache em memoria (LRU) e disco (persistente)" ], "difficulty": "hard", "topic": "performance" }, { "query": "Quantos documentos o sistema suporta?", "ground_truth": "O sistema foi testado e suporta mais de 100.000 documentos. Performance de busca vetorial fica abaixo de 100ms mesmo com essa quantidade. Para escalabilidade maior, pode-se usar indices HNSW ou particionar por session_id.", "contexts": [ "Testado com 100k+ documentos", "Busca em <100ms mesmo com muitos docs", "Indices HNSW para ainda mais escala" ], "difficulty": "easy", "topic": "performance" } ]