Навыки similarity-search-patterns
🔍

similarity-search-patterns

Безопасно

Построение полнотекстового поиска сходства с использованием векторных баз данных

Также доступно от: wshobson

Векторный поиск по сходству необходим для семантического поиска и систем RAG, но требует тщательного выбора и настройки индексов. Этот навык предоставляет готовые шаблоны для Pinecone, Qdrant, pgvector и Weaviate с поддержкой гибридного поиска и переупорядочивания.

Поддерживает: Claude Codex Code(CC)
📊 71 Адекватно
1

Скачать ZIP навыка

2

Загрузить в Claude

Перейдите в Settings → Capabilities → Skills → Upload skill

3

Включите и начните использовать

Протестировать

Использование «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

Аудит безопасности

Безопасно
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
Просканировано файлов
594
Проанализировано строк
0
находки
1
Всего аудитов
Проблем безопасности не найдено
Проверено: claude

Оценка качества

38
Архитектура
100
Сопровождаемость
87
Контент
22
Сообщество
100
Безопасность
100
Соответствие спецификации

Что вы можете построить

Разработчик 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 по мере роста данных
  • Всегда измеряйте полноту при целевой задержке перед развертыванием приближенных индексов
  • Используйте предварительную фильтрацию по метаданным для уменьшения пространства поиска перед векторным сравнением

Избегать

  • Использование индексов приближенных ближайших соседей без измерения деградации полноты
  • Хранение сырых векторов без квантования при ограниченной памяти
  • Запросы без предварительных фильтров, вызывающие полное сканирование индекса на больших коллекциях

Часто задаваемые вопросы

Какую векторную базу данных выбрать для моего проекта?
Для быстрых прототипов используйте Pinecone (управляемый сервис, без инфраструктуры). Для проектов на PostgreSQL pgvector добавляет минимальную сложность. Для высокопроизводительных задач Qdrant или Weaviate предлагают расширенные функции. Учитывайте размер данных, требования к задержке запросов и существующую инфраструктуру.
В чем разница между косинусной схожестью и скалярным произведением?
Косинусная схожесть измеряет только угол (игнорирует величину), что делает её идеальной для нормализованных эмбеддингов. Скалярное произведение включает эффекты величины. Для большинства моделей эмбеддингов (OpenAI, Sentence Transformers) косинусная схожесть является стандартным выбором.
Как улучшить полноту поиска без ущерба для задержки?
Постепенно увеличивайте параметры индекса (ef_search для HNSW, nprobe для IVF), измеряя P99-задержку. Используйте переупорядочивание для восстановления точности после извлечения с высокой полнотой. Рассмотрите двухэтапное извлечение: быстрый приближенный поиск с последующим точным переупорядочиванием на топ-K результатах.
Можно ли обновлять векторы после вставки?
Да, все поддерживаемые векторные базы данных поддерживают upsert-операции. Повторная вставка вектора с тем же ID обновляет его на месте. Обратите внимание, что частые обновления могут потребовать перестройки индекса для оптимальной производительности.
Какую размерность эмбеддингов использовать?
Используйте собственную размерность вашей модели эмбеддингов (например, 1536 для text-embedding-ada-002, 384 для all-MiniLM-L6-v2). Более высокие размерности захватывают больше нюансов, но увеличивают хранение и вычисления. Согласуйте метрику индекса с целевой функцией обучения модели эмбеддингов.
Как обрабатывать многоязычный поиск?
Используйте многоязычные модели эмбеддингов, такие как multilingual-e5 или LaBSE, которые отображают разные языки в одно векторное пространство. Запросы и документы на разных языках всё равно будут извлекать релевантные результаты, если модель эмбеддингов их поддерживает.

Сведения для разработчиков

Автор

sickn33

Лицензия

MIT

Ссылка

main

Структура файлов