hybrid-search-implementation
Реализация гибридного поиска для RAG
Чисто векторный поиск пропускает точные совпадения, а поиск по ключевым словам не справляется с семантическими запросами. Этот навык предоставляет готовые к использованию шаблоны для объединения обоих подходов с использованием RRF-фьюжн, линейной комбинации и переранжирования кросс-энкодером.
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 "hybrid-search-implementation". How do I combine vector and keyword search results?
Résultat attendu:
- Use Reciprocal Rank Fusion (RRF):
- 1. Run both searches to get ranked lists
- 2. For each result, calculate score = sum(weight / (k + rank))
- 3. Fuse by sorting combined scores
- Example:
- vector_results = [('doc1', 0.9), ('doc2', 0.8)]
- keyword_results = [('doc2', 0.95), ('doc3', 0.7)]
- fused = rrf_fusion([vector_results, keyword_results])
- # Returns [('doc2', 0.03), ('doc1', 0.016), ('doc3', 0.016)]
Utilisation de "hybrid-search-implementation". What's the difference between RRF and linear fusion?
Résultat attendu:
- RRF (Reciprocal Rank Fusion):
- - Score = sum(1 / (k + rank))
- - Rank-based, no score normalization needed
- - k=60 is standard constant
- - Works well without tuning
- Linear Combination:
- - Score = alpha * vector_score + (1-alpha) * keyword_score
- - Requires score normalization to [0,1]
- - Alpha needs empirical tuning per dataset
- - More controllable but requires tuning
Utilisation de "hybrid-search-implementation". Should I add reranking to my hybrid search?
Résultat attendu:
- Yes, reranking improves quality significantly:
- 1. Fetch more candidates from hybrid search (50-100)
- 2. Use cross-encoder to score query-document pairs
- 3. Return top-k reranked results
- Trade-offs:
- - + Better precision and relevance
- - - Additional latency (cross-encoder inference)
- - Model: cross-encoder/ms-marco-MiniLM-L-6-v2 is a good starting point
Audit de sécurité
SûrAll static findings are false positives. The skill contains documentation templates for hybrid search algorithms (RRF, linear fusion) with PostgreSQL, Elasticsearch, and custom RAG pipelines. Static scanner misidentified mathematical formulas as crypto operations, markdown code fences as command execution, and benign terminology as security risks. No malicious code or credential exfiltration present.
Facteurs de risque
⚡ Contient des scripts (1)
📁 Accès au système de fichiers (1)
Score de qualité
Ce que vous pouvez construire
Создание систем RAG с улучшенным полнотой поиска
Объедините семантическое понимание с точным сопоставлением для улучшения поиска документов в контексте LLM. Обрабатывайте запросы, требующие как концептуального сходства, так и конкретной терминологии.
Реализация корпоративного поиска
Создавайте поисковые системы, которые находят как семантически связанный контент, так и документы, содержащие точные термины, такие как коды продуктов, названия или идентификаторы.
Улучшение метрик качества поиска
Применяйте методы фьюжн, такие как RRF, для повышения полноты без ущерба для точности. Логируйте отдельные показатели для отладки и настройки качества поиска.
Essayez ces prompts
Помогите мне реализовать Reciprocal Rank Fusion для объединения результатов векторного поиска и поиска по ключевым словам. У меня есть два списка кортежей (doc_id, score). Покажите, как их объединить.
Покажите, как настроить таблицу PostgreSQL с pgvector для эмбеддингов и tsvector для полнотекстового поиска. Включите определения индексов HNSW и GIN.
Помогите написать запрос гибридного поиска Elasticsearch, который объединяет dense vector kNN с текстовым сопоставлением BM25 с использованием функции ранжирования RRF.
Создайте полный класс HybridRAGPipeline, который выполняет векторный поиск и поиск по ключевым словам параллельно, объединяет результаты с настраиваемыми методами (RRF или линейный) и опционально переранжирует с помощью кросс-энкодера.
Bonnes pratiques
- Начните с RRF-фьюжн, так как он хорошо работает без настройки параметров. Используйте k=60 как стандартную константу.
- Получайте больше кандидатов из отдельных поисков (в 3 раза больше финального лимита) перед слиянием для обеспечения хорошей полноты поиска.
- Логируйте отдельно показатели векторного поиска и поиска по ключевым словам во время разработки. Это помогает отлаживать случаи, когда результаты отсутствуют.
- Используйте переранжирование кросс-энкодером для производственных систем. Улучшение качества значительно.
Éviter
- Не предполагайте, что один вес фьюжн работает для всех запросов. Некоторым запросам нужно больше семантического сопоставления, другим — поиск по ключевым словам.
- Не отказывайтесь полностью от поиска по ключевым словам. Точное сопоставление терминов лучше работает с именами, кодами и конкретными фразами, чем векторы.
- Не запрашивайте слишком много кандидатов. Балансируйте потребности полноты поиска с задержкой. Обычно достаточно 50-100 кандидатов перед переранжированием.