Sarcină
📝 **Întrebare:** **Scrieți funcția** \`recommend_vector_db(stack, vector_count, ops_burden_ok)\` care returnează \`(db_name, reason)\`. Utilizați acest arbore de decizie (în ordine):
1. Dacă \`vector_count >= 10_000_000\` → \`("Qdrant sau Pinecone", "10M+ vectori depășesc intervalul confortabil al pgvector")\`
2. Altfel, dacă \`stack == "postgres"\` → \`("pgvector", f"Deja pe Postgres + {vector_count:,} vectori — un DB, mai puține operațiuni")\`
3. Altfel, dacă \`ops_burden_ok\` → \`(„Qdrant”, „Auto-găzduit, Rust, filtrare excelentă a metadatelor”)\`
4. Altfel → \`(„Pinecone”, „Gestionat, cel mai ușor de operat; plătiți pentru comoditate”)\`
Apoi rulați-l pe patru forme de pornire reale:
\`\`\`
stack=postgres n= 500.000 ops_ok=True -> pgvector (Deja pe Postgres + 500.000 de vectori — un DB, mai puține operațiuni)
stack=postgres n=50.000.000 ops_ok=True -> Qdrant sau Pinecone (10M+ vectori depășesc intervalul confortabil al pgvector)
stack=none n= 100.000 ops_ok=False -> Pinecone (Gestionat, cel mai ușor de operat; plătiți pentru comoditate)
stack=none n= 100.000 ops_ok=True -> Qdrant (Auto-găzduit, Rust, filtrare excelentă a metadatelor)
\`\`\`
Cazul 500.000 pe Postgres este **cel mai comun răspuns de producție** și cel mai des înțeles juniorii atingând Pinecone — simplitatea operațională (o DB, o rezervă, un pool de conexiuni) depășește avantajul marginal de performanță al Pinecone la această scară. Migrați NUMAI când ați măsurat limitele de atingere a pgvectorului.
📋 Alegeți răspunsul potrivit.
💡 **Sugestie:** Recitiți teoria de mai sus dacă nu sunteți sigur.