similarity-search-patterns
Построение полнотекстового поиска сходства с использованием векторных баз данных
Также доступно от: wshobson
Векторный поиск по сходству необходим для семантического поиска и систем RAG, но требует тщательного выбора и настройки индексов. Этот навык предоставляет готовые шаблоны для Pinecone, Qdrant, pgvector и Weaviate с поддержкой гибридного поиска и переупорядочивания.
Скачать ZIP навыка
Загрузить в Claude
Перейдите в Settings → Capabilities → Skills → Upload skill
Включите и начните использовать
Протестировать
Использование «similarity-search-patterns». Настроить Qdrant для 1 миллиона эмбеддингов продуктов с целевой полнотой 95%
Ожидаемый результат:
- Коллекция создана с индексом HNSW (m=16, ef_construct=64)
- Скалярное квантование включено (INT8), уменьшение памяти в 4 раза
- Рекомендуемые параметры поиска: ef=128 для полноты 95% при P99 ~50 мс
Использование «similarity-search-patterns». Гибридный поиск по документам о 'машинном обучении и оптимизации'
Ожидаемый результат:
- Векторный поиск извлекает 20 семантически похожих документов
- BM25 фильтрует точные совпадения терминов по 'оптимизации'
- Переупорядоченные результаты комбинируют оба сигнала с весами 0.6/0.4
Аудит безопасности
Безопасно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.
Оценка качества
Что вы можете построить
Разработчик RAG-приложений
Реализация генерации с дополнением извлечения (RAG) с эффективным векторным поиском по эмбеддингам документов. Поддерживает гибридный поиск, комбинирующий семантическое и ключевое сопоставление для точного извлечения контекста.
Разработчик рекомендательных систем
Построение рекомендательных систем ближайших соседей с использованием векторных эмбеддингов. Использует индексирование HNSW для субсекундных запросов по миллионам элементов с настраиваемыми порогами полноты.
Инженер поисковой платформы
Развертывание производственной инфраструктуры поиска по сходству с PostgreSQL pgvector или управляемыми сервисами. Реализация конвейеров предварительной фильтрации и переупорядочивания для качества корпоративного поиска.
Попробуйте эти промпты
Мне нужно хранить и искать эмбеддинги документов. Помогите настроить векторный индекс Pinecone с косинусной схожестью для 1536-мерных эмбеддингов. Включите функции upsert и search с фильтрацией по метаданным.
Создайте функцию гибридного поиска, которая комбинирует векторное сходство с ключевым сопоставлением с использованием pgvector. Установите вес векторного поиска 0.7 и полнотекстового поиска 0.3. Включите SQL-схему с индексом HNSW.
У меня есть 50 результатов векторного поиска, но нужно лучшее ранжирование. Покажите, как переупорядочить с помощью модели cross-encoder. Включите код sentence-transformers и объясните компромисс между задержкой и точностью.
У меня 10 миллионов векторов, и нужна P99-задержка менее 100 мс с полнотой 95%. Порекомендуйте тип индекса и параметры для Qdrant. Объясните настройки ef_construct, nprobe и квантования для моего случая использования.
Лучшие практики
- Начинайте с flat-индекса для небольших наборов данных (менее 100K векторов) и переходите на HNSW по мере роста данных
- Всегда измеряйте полноту при целевой задержке перед развертыванием приближенных индексов
- Используйте предварительную фильтрацию по метаданным для уменьшения пространства поиска перед векторным сравнением
Избегать
- Использование индексов приближенных ближайших соседей без измерения деградации полноты
- Хранение сырых векторов без квантования при ограниченной памяти
- Запросы без предварительных фильтров, вызывающие полное сканирование индекса на больших коллекциях
Часто задаваемые вопросы
Какую векторную базу данных выбрать для моего проекта?
В чем разница между косинусной схожестью и скалярным произведением?
Как улучшить полноту поиска без ущерба для задержки?
Можно ли обновлять векторы после вставки?
Какую размерность эмбеддингов использовать?
Как обрабатывать многоязычный поиск?
Сведения для разработчиков
Автор
sickn33Лицензия
MIT
Репозиторий
https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/similarity-search-patternsСсылка
main
Структура файлов