Compito
📝 **Domanda:** **Scrivi la funzione** \`recommend_ctor_db(stack, vector_count, ops_burden_ok)\` che restituisce \`(db_name, Reason)\`. Utilizza questo albero decisionale (in ordine):
1. Se \`conteggio_vettori >= 10_000_000\` → \`("Qdrant o Pinecone", "10M+ vettori superano l'intervallo confortevole di pgvettore")\`
2. Altrimenti se \`stack == "postgres"\` → \`("pgvettoriale", f"Già su Postgres + {vettori_count:,} vettori — un DB, meno operazioni")\`
3. Altrimenti se \`ops_burden_ok\` → \`("Qdrant", "Self-hosted, Rust, eccellente filtraggio dei metadati")\`
4. Altro → \`("Pigna", "Gestito, più facile da usare; paga per la comodità")\`
Quindi eseguilo contro quattro forme di avvio reali:
\`\`\`
stack=postgres n= 500.000 ops_ok=True -> pgctor (Già su Postgres + 500.000 vettori — un DB, meno operazioni)
stack=postgres n=50.000.000 ops_ok=True -> Qdrant o Pinecone (oltre 10 milioni di vettori superano l'intervallo confortevole di pgctor)
stack=none n= 100.000 ops_ok=False -> Pigna (gestito, più semplice da utilizzare; paga per comodità)
stack=none n= 100.000 ops_ok=True -> Qdrant (self-hosted, Rust, eccellente filtraggio dei metadati)
\`\`\`
Il caso 500K-on-Postgres è la **risposta di produzione più comune** e quella che i principianti sbagliano quando scelgono Pinecone: la semplicità operativa (un DB, un backup, un pool di connessioni) batte il margine prestazionale marginale di Pinecone su questa scala. Migra SOLO dopo aver misurato i limiti di raggiungimento dei limiti di pgvettori.
📋 Scegli la risposta giusta.
💡 **Suggerimento:** Rileggi la teoria sopra se non sei sicuro.