Tarefa
📝 **Pergunta:** **Escreva a função** \`recommend_vector_db(stack, vector_count, ops_burden_ok)\` que retorna \`(db_name, reason)\`. Use esta árvore de decisão (em ordem):
1. If \`vector_count >= 10_000_000\` → \`("Qdrant or Pinecone", "10M+ vetores excedem o intervalo confortável do pgvector")\`
2. Caso contrário, if \`stack == "postgres"\` → \`("pgvector", f"Já no Postgres + {vector_count:,} vetores — um banco de dados, menos operações")\`
3. Else if \`ops_burden_ok\` → \`("Qdrant", "Auto-hospedado, Rust, excelente filtragem de metadados")\`
4. Else → \`("Pinecone", "Gerenciado, mais fácil de operar; pague pela conveniência")\`
Em seguida, execute-o em quatro formas de inicialização reais:
\`\`\`
stack=postgres n= 500.000 ops_ok=True -> pgvector (Já no Postgres + 500.000 vetores — um banco de dados, menos operações)
stack=postgres n=50.000.000 ops_ok=True -> Qdrant ou Pinecone (mais de 10 milhões de vetores excedem o intervalo confortável do pgvector)
stack=none n= 100.000 ops_ok=False -> Pinecone (Gerenciado, mais fácil de operar; pague pela conveniência)
stack=none n= 100.000 ops_ok=True -> Qdrant (auto-hospedado, Rust, excelente filtragem de metadados)
\`\`\`
O caso 500K-on-Postgres é a **resposta de produção mais comum** e aquela que os juniores erram ao buscar o Pinecone – a simplicidade operacional (um banco de dados, um backup, um pool de conexão) supera a vantagem marginal de desempenho do Pinecone nesta escala. Migre SOMENTE quando você tiver medido os limites de atingimento do pgvector.
📋 Escolha a resposta certa.
💡 **Dica:** Releia a teoria acima se não tiver certeza.