Руководство по Подключение к базе данных вектора Qdrant в приложениях контейнеров Azure (предварительная версия)
Приложения контейнеров Azure используют надстройки , чтобы упростить подключение к различным облачным службам уровня разработки. Вместо того чтобы заранее создавать экземпляры служб для установления подключений с сложными параметрами конфигурации, можно использовать надстройку для подключения приложения-контейнера к базе данных, такой как Qdrant.
Полный список поддерживаемых служб см. в статье Подключение службам в приложениях контейнеров Azure.
Пример приложения, развернутого в этом руководстве, позволяет интерфейсировать с подсистемой рекомендаций по музыке на основе векторной базы данных Qdrant. Образ контейнера содержит Записную книжку Jupyter, содержащую код, который можно запустить в базе данных:
- Интерфейс с данными песни
- Создание внедрения для каждой песни
- Просмотр рекомендаций по песням
После развертывания вы сможете запустить код в Jupyter Notebook для взаимодействия с данными песни в базе данных.
Изучив этот учебник, вы:
- Создание приложения-контейнера
- Подключение к базе данных Qdrant с помощью надстройки "Приложения-контейнеры"
- Взаимодействие с Записной книжкой Jupyter для изучения данных
Важно!
В этом руководстве используются службы, которые могут повлиять на счет Azure. Если вы решите выполнить пошаговые инструкции, убедитесь, что вы деактивируете или удалите ресурсы, описанные в этой статье, чтобы избежать непредвиденных выставления счетов.
Необходимые компоненты
Чтобы завершить этот проект, вам потребуется следующее:
Требование | Instructions |
---|---|
Учетная запись Azure | Если у вас нет учетной записи, создайте бесплатную учетную запись. Чтобы продолжить, вам потребуется разрешение участника или владельца подписки Azure. Дополнительные сведения см. в статье "Назначение ролей Azure" с помощью портал Azure. |
Azure CLI | Установите интерфейс командной строки Azure. |
Настройка
Прежде чем приступить к работе с базой данных Qdrant, сначала необходимо создать приложение-контейнер и необходимые ресурсы.
Выполните следующие команды, чтобы создать группу ресурсов, среду приложений контейнеров и профиль рабочей нагрузки.
Настройте переменные имени приложения и группы ресурсов. Эти значения можно изменить на ваши предпочтения.
export APP_NAME=music-recommendations-demo-app export RESOURCE_GROUP=playground
Создайте переменные для поддержки конфигурации приложения. Эти значения предоставляются для вас в целях этого урока. Не изменяйте эти значения.
export SERVICE_NAME=qdrantdb export LOCATION=southcentralus export ENVIRONMENT=music-recommendations-demo-environment export WORKLOAD_PROFILE_TYPE=D32 export CPU_SIZE=8.0 export MEMORY_SIZE=16.0Gi export IMAGE=simonj.azurecr.io/aca-ephemeral-music-recommendation-image
Переменная Description SERVICE_NAME
Имя службы надстройки, созданной для приложения контейнера. В этом случае создается экземпляр уровня разработки базы данных Qdrant. LOCATION
Расположение региона Azure, в котором создается приложение контейнера и надстройка. ENVIRONMENT
Имя среды "Приложения контейнеров Azure" для демонстрационного приложения. WORKLOAD_PROFILE_TYPE
Тип профиля рабочей нагрузки, используемый для приложения контейнера. В этом примере используется профиль рабочей нагрузки общего назначения с 32 ядрами 128 ГиБ памяти. CPU_SIZE
Выделенный размер ЦП. MEMORY_SIZE
Выделенный объем памяти. IMAGE
Образ контейнера, используемый в этом руководстве. Этот образ контейнера включает Jupyter Notebook, который позволяет взаимодействовать с данными в базе данных Qdrant. Войдите в Azure с помощью Azure CLI.
az login
Создать группу ресурсов.
az group create --name $RESOURCE_GROUP --location $LOCATION
Создайте среду приложений контейнеров.
az containerapp env create \ --name $ENVIRONMENT \ --resource-group $RESOURCE_GROUP \ --location $LOCATION \ --enable-workload-profiles
Создайте профиль выделенной рабочей нагрузки с достаточным количеством ресурсов для работы с векторной базой данных.
az containerapp env workload-profile add \ --name $ENVIRONMENT \ --resource-group $RESOURCE_GROUP \ --workload-profile-type $WORKLOAD_PROFILE_TYPE \ --workload-profile-name bigProfile \ --min-nodes 0 \ --max-nodes 2
Использование надстройки Qdrant
Теперь, когда у вас есть существующая среда и профиль рабочей нагрузки, вы можете создать приложение-контейнер и привязать его к экземпляру Qdrant надстройки.
Создайте службу надстройки Qdrant.
az containerapp add-on qdrant create \ --environment $ENVIRONMENT \ --resource-group $RESOURCE_GROUP \ --name $SERVICE_NAME
Создайте приложение-контейнер.
az containerapp create \ --name $APP_NAME \ --resource-group $RESOURCE_GROUP \ --environment $ENVIRONMENT \ --workload-profile-name bigProfile \ --cpu $CPU_SIZE \ --memory $MEMORY_SIZE \ --image $IMAGE \ --min-replicas 1 \ --max-replicas 1 \ --env-vars RESTARTABLE=yes \ --ingress external \ --target-port 8888 \ --transport auto \ --query properties.outputs.fqdn
Эта команда возвращает полное доменное имя приложения контейнера. Скопируйте это расположение в текстовый редактор по мере необходимости в предстоящем шаге.
Предстоящий шаг указывает вам запросить маркер доступа для входа в приложение, размещенное приложением контейнера. Перед попыткой выполнить запрос маркера доступа после создания приложения-контейнера обязательно подождите три–пять минут, чтобы предоставить достаточно времени для настройки всех необходимых ресурсов.
Привязать службу надстройки Qdrant к приложению-контейнеру.
az containerapp update \ --name $APP_NAME \ --resource-group $RESOURCE_GROUP \ --bind qdrantdb
Настройка приложения-контейнера
Теперь, когда приложение-контейнер запущено и подключено к Qdrant, вы можете настроить приложение контейнера для принятия входящих запросов.
Настройте параметры CORS в приложении контейнера.
az containerapp ingress cors enable \ --name $APP_NAME \ --resource-group $RESOURCE_GROUP \ --allowed-origins "*" \ --allow-credentials true
Подождите три–пять минут, пока приложение завершит операции установки, запросите маркер доступа для размещенной записной книжки Jupyter Notebook.
echo Your access token is: `az containerapp logs show -g $RESOURCE_GROUP --name $APP_NAME --tail 300 | \ grep token | cut -d= -f 2 | cut -d\" -f 1 | uniq`
При выполнении этой команды маркер выводится в терминал. Сообщение должно выглядеть следующим образом.
Your access token is: 348c8aed080b44f3aaab646287624c70aed080b44f
Скопируйте значение маркера в текстовый редактор, чтобы использовать для входа в Jupyter Notebook.
Использование Jupyter Notebook
Откройте веб-браузер и вставьте URL-адрес приложения контейнера, которое вы задали в текстовом редакторе.
При загрузке страницы появится поле ввода для ввода маркера доступа.
Рядом с меткой "Пароль для маркера " введите маркер в поле ввода и выберите "Войти".
После проверки подлинности вы сможете взаимодействовать с кодом и данными в Jupyter Notebook.
После запуска записной книжки следуйте инструкциям по взаимодействию с кодом и данными.
Очистка ресурсов
Ресурсы, созданные в этом руководстве, влияют на счет Azure. Если вы не собираетесь использовать эти службы в долгосрочной перспективе, выполните следующую команду, чтобы удалить все, созданное в этом руководстве.
az group delete \
--resource-group $RESOURCE_GROUP