Задача
📝 **Въпрос:** **Напишете функцията** \`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:,} вектори — една DB, по-малко операции")\`
3. Друго, ако \`ops_burden_ok\` → \`("Qdrant", "Сам хостван, Rust, отлично филтриране на метаданни")\`
4. Друго → \`("Pinecone", "Управляван, най-лесен за работа; платете за удобството")\`
След това го стартирайте срещу четири реални стартови форми:
\`\`\`
stack=postgres n= 500 000 ops_ok=True -> pgvector (Вече в Postgres + 500 000 вектора — една DB, по-малко операции)
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 — оперативната простота (една DB, едно резервно копие, един пул за свързване) надминава маргиналното предимство на Pinecone в производителността в този мащаб. Мигрирайте САМО, когато сте измерили границите на попадение на pgvector.
📋 Изберете правилния отговор.
💡 **Съвет:** Прочетете отново теорията по-горе, ако не сте сигурни.