Поиск с фильтрами в Milvus

Урок 263 из 299 курса «OpenAI Cookbook»: официальный курс OpenAI Academy (ОпенАИ) на русском языке. Урок входит в платный доступ; первые уроки курса бесплатно.

О чём урок

В этом notebook мы рассмотрим генерацию embedding'ов описаний фильмов с помощью OpenAI и использование этих embedding'ов в Milvus для поиска релевантных фильмов. Чтобы сузить результаты поиска и попробовать что-то новое, мы будем использовать фильтрацию для поиска по метаданным. Набор данных в этом примере взят из HuggingFace datasets и содержит чуть более 8 тысяч записей фильмов. Начнем с загрузки необходимых библиотек для этого notebook: openai используется для связи с сервисом embedding'ов OpenAI pymilvus используется для связи с сервером Milvus datasets используется для загрузки набора данных tqdm используется для индикаторов прогресса После установки необходимых пакетов мы можем начать работу. Начнем с запуска сервиса Milvus. Запускаемый файл — это docker-compose.yaml, находящийся в той же папке, что и этот файл. Эта команда запускает автономный (standalone) экземпляр Milvus, который мы будем использовать для этого теста. Когда Milvus запущен, мы можем настроить наши глобальные переменные: HOST: Адрес хоста Milvus PORT: Номер порта Milvus COLLECTION_NAME: Имя для коллекции в Milvus DIMENSION: Размерность embedding'ов OPENAI_ENGINE: Какую модель embedding'ов использовать openai.api_key: Ваш ключ учетной записи OpenAI INDEX_PARAM: Настройки индекса для использования с коллекцией QUERY_PARAM: Параметры поиска для использования BATCH_SIZE: Сколько фильмов встраивать (embed) и вставлять (insert) за один раз Когда Milvus запущен и работает, мы можем начать получать наши данные. Hugging Face Datasets — это хаб, содержащий множество различных пользовательских наборов данных, и для этого примера мы используем набор данных netflix-shows от HuggingLearners. Этот набор данных содержит фильмы и их пары метаданных для более чем 8 тысяч фильмов. Мы собираемся создать embedding для каждого описания и сохранить его в Milvus вместе с его названием (title), типом (type), годом выпуска (release_year) и рейтингом (rating). Теперь, когда данные находятся на нашей машине, мы можем начать создавать их embedding'и и вставлять их в Milvus. Функция embedding'а принимает текст и возвращает embedding'и в формате списка.

План урока

  1. Находим ваш следующий фильм
  2. Набор данных
  3. Вставка данных
  4. Запрос к базе данных

Урок входит в полный доступ. Полный текст и видео открываются после оплаты. Первые уроки каждого курса бесплатны.

Урок входит в темы

Полезные гиды