similarity-search-patterns
Construire une recherche de similarité en production avec des bases de données vectorielles
Également disponible depuis: wshobson
La recherche de similarité vectorielle est essentielle pour les systèmes de recherche sémantique et RAG, mais nécessite une sélection et un réglage minutieux des index. Cette compétence fournit des modèles prêts à l'emploi pour Pinecone, Qdrant, pgvector et Weaviate avec recherche hybride et reranking.
Télécharger le ZIP du skill
Importer dans Claude
Allez dans Paramètres → Capacités → Skills → Importer un skill
Activez et commencez à utiliser
Tester
Utilisation de "similarity-search-patterns". Configurer Qdrant pour 1 million d'embeddings de produits avec une cible de rappel de 95%
Résultat attendu:
- Collection créée avec index HNSW (m=16, ef_construct=64)
- Quantification scalaire activée (INT8) réduisant la mémoire par 4x
- Paramètres de recherche recommandés : ef=128 pour 95% de rappel à ~50ms P99
Utilisation de "similarity-search-patterns". Recherche hybride pour des documents sur 'l'optimisation du machine learning'
Résultat attendu:
- La recherche vectorielle récupère 20 documents sémantiquement similaires
- BM25 filtre pour les correspondances de termes exacts sur 'optimization'
- Les résultats rerankés combinent les deux signaux avec une pondération 0.6/0.4
Audit de sécurité
SûrAll 31 static analysis findings are false positives. The scanner incorrectly flagged Markdown documentation syntax as executable code. Backticks are code fence markers, URLs are documentation links, and API key parameters represent secure credential handling. The skill contains Python code examples for vector database implementations with no security concerns.
Score de qualité
Ce que vous pouvez construire
Constructeur d'applications RAG
Implémenter la génération augmentée par récupération avec une recherche vectorielle efficace sur les embeddings de documents. Prend en charge la recherche hybride combinant correspondance sémantique et par mots-clés pour une récupération de contexte précise.
Développeur de moteur de recommandation
Construire des systèmes de recommandation par plus proches voisins utilisant des embeddings vectoriels. Exploiter l'indexation HNSW pour des requêtes en moins d'une seconde sur des millions d'éléments avec des seuils de rappel configurables.
Ingénieur de plateforme de recherche
Déployer une infrastructure de recherche de similarité en production avec pgvector PostgreSQL ou des services managés. Implémenter des pipelines de pré-filtrage et de reranking pour une qualité de recherche d'entreprise.
Essayez ces prompts
Je dois stocker et rechercher des embeddings de documents. Aidez-moi à configurer un index vectoriel Pinecone avec similarité cosinus pour des embeddings de 1536 dimensions. Inclure des fonctions upsert et search avec filtrage par métadonnées.
Créez une fonction de recherche hybride qui combine la similarité vectorielle avec la correspondance par mots-clés en utilisant pgvector. Pondérez la recherche vectorielle à 0.7 et la recherche en texte intégral à 0.3. Inclure le schéma SQL avec index HNSW.
J'ai 50 résultats de recherche vectorielle mais j'ai besoin d'un meilleur classement. Montrez-moi comment reranker avec un modèle cross-encoder. Inclure le code sentence-transformers et expliquer le compromis entre latence et précision.
J'ai 10 millions de vecteurs et j'ai besoin d'une latence P99 inférieure à 100ms avec 95% de rappel. Recommandez un type d'index et des paramètres pour Qdrant. Expliquez les réglages ef_construct, nprobe et de quantification pour mon cas d'usage.
Bonnes pratiques
- Commencer avec un index flat pour les petits ensembles de données (moins de 100K vecteurs) et migrer vers HNSW à mesure que les données croissent
- Toujours mesurer le rappel à votre latence cible avant de déployer des index approximatifs
- Utiliser le pré-filtrage par métadonnées pour réduire l'espace de recherche avant la comparaison vectorielle
Éviter
- Utiliser des index approximate nearest neighbor sans mesurer la dégradation du rappel
- Stocker des vecteurs bruts sans quantification lorsque la mémoire est contrainte
- Interroger sans pré-filtres causant des scans d'index complets sur de grandes collections
Foire aux questions
Quelle base de données vectorielle devrais-je choisir pour mon projet ?
Quelle est la différence entre similarité cosinus et produit scalaire ?
Comment améliorer le rappel de recherche sans sacrifier la latence ?
Puis-je mettre à jour les vecteurs après insertion ?
Quelle dimension d'embedding devrais-je utiliser ?
Comment gérer la recherche multilingue ?
Détails du développeur
Auteur
sickn33Licence
MIT
Dépôt
https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/similarity-search-patternsRéf
main
Structure de fichiers