Подготовка окружения#

Настройка окружения#

Минимальные требования#

Перед установкой Platform V Vector DB (далее - Vector DB) убедитесь, что система соответствует минимальным аппаратным требованиям:

  • ОС: Linux (x86_64, ARM64) / macOS (x86_64, M1/M2) / Windows (WSL2);

  • память: ≥ 2 GB RAM (рекомендуется 4+ GB для production);

  • диск: SSD/NVMe (HDD не рекомендуется из-за низкой скорости поиска).

Убедитесь, что имеется учетная запись пользователя с sudo правами.

Хранилище#

Для постоянного хранилища Platform V Vector DB (далее - Vector DB) требуется блочный доступ к устройствам хранения с файловой системой, совместимой с POSIX. Системы сетевого доступа, такие как iSCSI, предоставляющие блочный доступ, также приемлемы. Vector DB не будет работать с сетевыми файловыми системами (NFS), или с системами объектного хранилища (S3).

Сеть#

Каждому экземпляру Vector DB требуются три открытых порта:

  • 6333 - для HTTP API, конечных точек мониторинга состояния и метрик;

  • 6334 - для API gRPC;

  • 6335 - для распределенного развертывания.

Все экземпляры Vector DB в кластере должны иметь возможность:

  • общаться друг с другом по указанным портам;

  • разрешать входящие соединения на порты 6333 и 6334 от клиентов, использующих Vector DB.

Безопасность#

Стандартная конфигурация Vector DB может оказаться недостаточно безопасной для каждой ситуации. Дополнительную информацию см. в документации по безопасности.

Выпуск и подготовка сертификатов#

При работе с SecMan необходимо:

  1. Получить данные для доступа в SecMan (role_id и secret_id).

  2. Сохранить role_id и secret_id в конфигурационном файле сервера в засекреченном виде в файле формата config.yaml, одновременно настроив остальные параметры для работы с SecMan:

    #Secman
    client_encryption_options:
       enabled: true
       ssl_context_factory:
          class_name: com.sbt.cassandra.secman.SecmanSslContextFactory
          parameters:
             secman.endpoint: <адрес сервера SecMan>
             secman.namespace: <namespace для Vector DB в SecMan>
             secman.role_id: <зашифрованное значение role_id>
             secman.secret_id: <зашифрованное значение secret_id>
             secman.fetch.role: <имя роли для доступа к PKI>
             secman.fetch.mount.path: <путь до PKI движка>
             secman.fetch.cn: <none>
             secman.fetch.refresh.before.sec: <интервал времени перед моментом устаревания текущего сертификата, в течении которого производятся попытки обновления сертификата. В секундах>
       truststore: /path/to/truststore.jks
       truststore_password: <password>
    

Для засекречивания можно воспользоваться утилитой из поставки — vdb-encrypt-secret.

Для работы через cqlshrc:

  1. Получите или сгенерируйте pem-сертификат.

  2. Измените конфигурационный файл cqlshrc, например:

 [connection]
 hostname = { IP_ADDRESS }
 port = { PORT }

 [ssl]
 certfile = /path/to/pem/cert.pem

Пример создания pem-сертификата:

  1. Получите токен от SecMan:

    $ curl --insecure \
       --request POST \
       --header 'X-Vault-Namespace: { VAULT_NAME }' \
       --data '{"role_id": "{ ROLE_ID }", "secret_id": "{ SECRET_ID}"}' "{ SECMAN_ADDRESS}"
    

    Значение токена будет в поле client_token.

  2. Сгенерируйте сертификат:

    $ curl --insecure \
       -k \
       --header 'X-Vault-Namespace: { VAULT_NAME }' \
       --header "X-Vault-Token: {Значение токена}" \
       --data '{"common_name": "{COMMON_NAME}", "alt_names": "{ALT_NAME}", "format": "pem"}' \
       "{ SECMAN_ADDRESS}"
    

Клиентские библиотеки#

Помимо самого сервиса, Vector DB предлагает разнообразные клиентские библиотеки для различных языков программирования.

Репозиторий клиента

Установка

Версия

Python + (Документация по клиенту)

pip install qdrant-client[fastembed]

Последняя версия

JavaScript / Typescript

npm install @qdrant/js-client-rest

Последняя версия

Rust

cargo add qdrant-client

Последняя версия

Go

go get github.com/qdrant/go-client

Последняя версия

.NET

dotnet add package qdrant.Client

Последняя версия

Java

Доступно на Maven Central

Последняя версия

Скачайте и установите соответствующую библиотеку для работы.