логотип PurpleSchool
логотип PurpleSchool

Работа с Qdrant в Docker

Автор

Алексей Иванов

Введение

Qdrant – это современный движок для векторного поиска и управления, предназначенный для оптимизации работы с высокоразмерными векторами. Благодаря этому инструменту, вы сможете эффективно обрабатывать и искать вектора, что особенно актуально в эпоху машинного обучения и искусственного интеллекта. Docker, в свою очередь, упрощает процесс развертывания таких приложений, обеспечивая им изоляцию и легкую масштабируемость. В этой статье мы рассмотрим, как использовать Qdrant в Docker, чтобы быстро и эффективно интегрировать возможности векторного поиска в ваши проекты.

Установка Qdrant с использованием Docker

Подготовка к установке

Прежде чем мы начнем, убедитесь, что у вас установлен Docker. Если это не так, вы можете скачать и установить Docker, следуя официальной документации на веб-сайте Docker. Docker сделает процесс развертывания Qdrant намного проще и эффективнее.

Запуск контейнера Qdrant

Docker позволяет быстро запустить Qdrant, используя образ из Docker Hub. Давайте начнем с команды, которая загрузит и запустит для вас Qdrant:

docker run -p 6333:6333 qdrant/qdrant

Эта команда делает следующее:

  • docker run – команда для запуска нового контейнера.
  • -p 6333:6333 – опция перенаправления порта. Она связывает порт 6333 на вашей машине с портом 6333 в контейнере Qdrant, таким образом вы сможете обращаться к Qdrant из вашей системы.
  • qdrant/qdrant – это указание на образ Qdrant, который будет использоваться для создания контейнера.

Проверка работы Qdrant

После запуска Qdrant в Docker, стоит проверить его работоспособность. Вы можете использовать команду curl, чтобы отправить простой запрос к Qdrant и убедиться, что он работает:

curl http://localhost:6333/collections

Результат должен вернуть пустой список коллекций:

{
  "result": [],
  "status": "ok",
  "time": 0.000123
}

Основные функции Qdrant

Создание коллекций

Коллекции в Qdrant – это контейнеры для ваших векторных данных. Каждая коллекция может хранить векторы, и вы можете управлять ими с помощью API. Давайте создадим простую коллекцию:

curl -X POST 'http://localhost:6333/collections' \
-H 'Content-Type: application/json' \
-d '{
    "name": "my_collection",
    "vector_size": 512,
    "distance": "Cosine"
}'

В этом примере создана коллекция с названием my_collection, ожидающая векторы размером 512, которая будет использовать косинусное расстояние для измерения близости между векторами.

Добавление векторов

После создания коллекции следующим шагом будет добавление векторов. Давайте добавим векторы в нашу коллекцию:

curl -X POST 'http://localhost:6333/collections/my_collection/points' \
-H 'Content-Type: application/json' \
-d '{
    "points": [
        {
            "id": 1,
            "vector": [0.1, 0.2, 0.3, ..., 0.512]
        },
        {
            "id": 2,
            "vector": [0.5, 0.9, 0.4, ..., 0.623]
        }
    ]
}'

Каждый вектор имеет уникальный идентификатор и сам вектор, который вы передаете массивом значений.

Поиск векторов

Одной из главных возможностей Qdrant является его быстрый и эффективный векторный поиск. Теперь, когда мы добавили векторы, давайте попробуем выполнить простой поиск:

curl -X POST 'http://localhost:6333/collections/my_collection/points/search' \
-H 'Content-Type: application/json' \
-d '{
    "vector": [0.1, 0.2, 0.3, ..., 0.512],
    "top": 2
}'

Этот запрос попытается найти два наиболее близких вектора в коллекции my_collection по заданному вектору.

Заключение

Вы изучили основы развертывания Qdrant в Docker и получили представление о его основных функциях: создании коллекций, добавлении и поиске векторов. Docker делает управление Qdrant простым и удобным, обеспечивая гибкость и масштабируемость. Теперь вы готовы использовать Qdrant в собственных проектах, извлекая пользу из мощного векторного поиска и управления данными.

Карта развития разработчика

Получите полную карту развития разработчика по всем направлениям: frontend, backend, devops, mobile