Zadanie
📝 **Pytanie:** **Napisz funkcję** \`recommend_vector_db(stack, wektor_count, ops_burden_ok)\`, która zwraca \`(nazwa_bazy danych, powód)\`. Użyj tego drzewa decyzyjnego (w kolejności):
1. Jeśli \`vector_count >= 10_000_000\` → \`("Qdrant lub Pinecone", "10M+ wektorów przekracza komfortowy zakres pgvectora")\`
2. Inaczej if \`stack == "postgres"\` → \`("pgvector", f"Już w Postgresie + wektory {vector_count:,} — jeden DB, mniej operacji")\`
3. Inaczej if \`ops_burden_ok\` → \`("Qdrant", "Własny hosting, Rust, doskonałe filtrowanie metadanych")\`
4. Else → \`("Pinecone", "Zarządzany, najłatwiejszy w obsłudze; płać za wygodę")\`
Następnie uruchom go przeciwko czterem prawdziwym start-upom:
\`\`\`
stack=postgres n= 500 000 ops_ok=True -> pgvector (Już w Postgresie + 500 000 wektorów — jeden DB, mniej operacji)
stack=postgres n=50 000 000 ops_ok=True -> Qdrant lub Pinecone (10M+ wektorów przekracza wygodny zakres pgvector)
stack=none n= 100 000 ops_ok=False -> Pinecone (zarządzany, najłatwiejszy w obsłudze; płać za wygodę)
stack=none n= 100 000 ops_ok=True -> Qdrant (samodzielny hosting, Rust, doskonałe filtrowanie metadanych)
\`\`\`
Przypadek 500 tys. na Postgres jest **najczęstszą odpowiedzią produkcyjną** i jedyną, którą juniorzy mylą się, sięgając po Pinecone — prostota operacyjna (jedna baza danych, jedna kopia zapasowa, jedna pula połączeń) pokonuje marginalną przewagę wydajności Pinecone w tej skali. Przeprowadź migrację TYLKO wtedy, gdy zmierzysz limity trafień pgvector.
📋 Wybierz właściwą odpowiedź.
💡 **Wskazówka:** Jeśli nie jesteś pewien, przeczytaj ponownie powyższą teorię.