File size: 5,755 Bytes
a686b1b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
[
  {
    "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"
  }
]