Завдання
📝 **Питання:** **Напишіть функцію** \`recommend_vector_db(stack, vector_count, ops_burden_ok)\`, яка повертає \`(db_name, reason)\`. Використовуйте це дерево рішень (у порядку):
1. Якщо \`vector_count >= 10_000_000\` → \`("Qdrant або Pinecone", "10M+ векторів перевищують комфортний діапазон pgvector")\`
2. Інакше, якщо \`stack == "postgres"\` → \`("pgvector", f"Вже на Postgres + {vector_count:,} вектори — одна БД, менше операцій")\`
3. Інакше, якщо \`ops_burden_ok\` → \`("Qdrant", "Self-hosted, Rust, відмінна фільтрація метаданих")\`
4. Інше → \`("Шишка", "Керований, найпростіший у використанні; платіть за зручність")\`
Потім запустіть його проти чотирьох реальних форм запуску:
\`\`\`
stack=postgres n= 500 000 ops_ok=True -> pgvector (вже на Postgres + 500 000 векторів — одна БД, менше операцій)
stack=postgres n=50 000 000 ops_ok=True -> Qdrant або Pinecone (10M+ векторів перевищують комфортний діапазон pgvector)
stack=none n= 100 000 ops_ok=False -> Pinecone (Керований, найпростіший у використанні; платіть за зручність)
stack=none n= 100 000 ops_ok=True -> Qdrant (саморозміщений, Rust, чудова фільтрація метаданих)
\`\`\`
Випадок 500K-on-Postgres є **найпоширенішим виробничим рішенням**, і молодші помиляються, звертаючись до Pinecone — простота роботи (одна БД, одна резервна копія, один пул з’єднань) перевершує граничну продуктивність Pinecone у цьому масштабі. Виконуйте міграцію ЛИШЕ після вимірювання лімітів відвідування pgvector.
📋 Виберіть правильну відповідь.
💡 **Підказка:** Перечитайте наведену вище теорію, якщо не впевнені.