Compétences similarity-search-patterns
🔍

similarity-search-patterns

Sûr

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.

Prend en charge: Claude Codex Code(CC)
📊 71 Adéquat
1

Télécharger le ZIP du skill

2

Importer dans Claude

Allez dans Paramètres → Capacités → Skills → Importer un skill

3

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ûr
v1 • 2/25/2026

All 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.

2
Fichiers analysés
594
Lignes analysées
0
résultats
1
Total des audits
Aucun problème de sécurité trouvé
Audité par: claude

Score de qualité

38
Architecture
100
Maintenabilité
87
Contenu
22
Communauté
100
Sécurité
100
Conformité aux spécifications

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

Configuration de base du magasin vectoriel
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.
Implémentation de la recherche hybride
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.
Pipeline de reranking
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.
Sélection et réglage d'index
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 ?
Pour des prototypes rapides, utilisez Pinecone (managé, pas d'infrastructure). Pour les environnements PostgreSQL, pgvector ajoute une complexité minimale. Pour des besoins haute performance, Qdrant ou Weaviate offrent des fonctionnalités avancées. Considérez la taille des données, les exigences de latence des requêtes et l'infrastructure existante.
Quelle est la différence entre similarité cosinus et produit scalaire ?
La similarité cosinus mesure uniquement l'angle (ignore l'amplitude), ce qui la rend idéale pour les embeddings normalisés. Le produit scalaire inclut les effets d'amplitude. Pour la plupart des modèles d'embedding (OpenAI, Sentence Transformers), la similarité cosinus est le choix standard.
Comment améliorer le rappel de recherche sans sacrifier la latence ?
Augmentez progressivement les paramètres d'index (ef_search pour HNSW, nprobe pour IVF) tout en mesurant la latence P99. Utilisez le reranking pour récupérer la précision après une récupération à haut rappel. Envisagez une récupération en deux étapes : recherche approximative rapide suivie d'un reranking exact sur les résultats top-K.
Puis-je mettre à jour les vecteurs après insertion ?
Oui, toutes les bases de données vectorielles prises en charge prennent en charge les opérations upsert. Réinsérer un vecteur avec le même ID le met à jour en place. Notez que des mises à jour fréquentes peuvent nécessiter une reconstruction d'index pour des performances optimales.
Quelle dimension d'embedding devrais-je utiliser ?
Utilisez la dimension native de votre modèle d'embedding (par exemple, 1536 pour text-embedding-ada-002, 384 pour all-MiniLM-L6-v2). Les dimensions plus élevées capturent plus de nuances mais augmentent le stockage et le calcul. Faites correspondre votre métrique d'index à l'objectif d'entraînement du modèle d'embedding.
Comment gérer la recherche multilingue ?
Utilisez des modèles d'embedding multilingues comme multilingual-e5 ou LaBSE qui mappent différentes langues vers le même espace vectoriel. Les requêtes et documents en différentes langues récupéreront toujours des résultats pertinents si le modèle d'embedding les prend en charge.

Détails du développeur

Structure de fichiers