Развертывание векторной базы данных
Векторная база данных предоставляет возможность выполнять быстрый поиск похожих и связанных с основным запросом документов и их чанков – частей файла заранее заданного размера.
База данных делится на коллекции, внутри которых можно производить поиск. Коллекции можно отождествлять с таблицами в привычных баз данных SimpleOne. При загрузке документа или текста происходит его дробление на чанки.
Подготовка при развертывании
Создайте резервную копию данных. Это позволит восстановить данные в случаи их потери.
Свойства векторной базы данных
Перед развертыванием векторной базы данных создайте URL для подключения к ней, а также получите токен от вендора. Эти данные необходимо указать в системных свойствах, для этого:
- Перейдите в навигаторе в Свойства системы → Все свойства.
- Найдите записи свойств ain.vctrdb.token и ain.vctrdb.url и укажите их значения.
| Свойство | Значение | 
|---|---|
| ain.vctrdb.token | Токен, полученный от вендора. | 
| ain.vctrdb.url | URL векторной базы данных. | 
- Нажмите Сохранить или Сохранить и выйти, чтобы применить изменения.
Инструкция по развертыванию
Следуйте инструкции, чтобы развернуть векторную базу данных. Дополнительно вы можете настроить создание резервных копий и мониторинг.
В инструкции ниже приведена полная версия решения.
- Инструкция воспроизводима на сервере с Ubuntu 22.04.
- Минимальные системные требования: 1 CPU, 2 RAM, 50 SSD.
- Рекомендуемые системные требования: 4 CPU, 8 GB RAM, 100 GB NVMe SSD.
- Скорость накопителей влияет на пропускную способность.
Чтобы развернуть векторную базу данных и приступить к работе с Vector Collection Definition, введите последовательно следующие команды:
- 
Создайте целевую директорию: mkdir -p chromadb
- 
Создайте .env-файл в целевой директории: touch .env, вставьте текст из файла и дополните его нужными значениями.Содержание .env файла: - AUTH_TOKEN=xxx – укажите Client-API HTTP Bearer token для авторизации.
- NEXUS=ain.e5-large.embedding
- NEXUS_AUTH_TOKEN=xxx – используйте токен, полученный от вендора.
- NEXUS_URL=https://your_instance/v1/you_client_code/ask – укажите URL, как в ш аблоне.
- CHROMA_DB_SERVER_HOST=chromadb-server – укажите адрес экземпляра сервера ChromaDB. По умолчанию указано имя контейнера внутри Docker-сети.
- CHROMA_DB_SERVER_PORT=8000 – укажите порт экземпляра сервера ChromaDB. По умолчанию указан внутренний порт контейнера внутри Docker-сети.
- AWS_ENDPOINT=xxx – укажите путь к вашему хранилищу S3.
- AWS_ACCESS_KEY_ID=xxx – укажите логин.
- AWS_SECRET_ACCESS_KEY=xxx – укажите пароль.
- AWS_BUCKET_NAME=xxx – укажите имя бакета.
- AWS_FOLDER_NAME=xxx – укажите название папки внутри бакета, куда будет производиться резервная копия данных.
- SCHEDULE=0 0 * * * – укажите частоту формирования резервной копии данных в формате Cron.
 
- 
Создайте файл compose.yml в целевой директории. 
- 
Создайте Docker-сеть: docker network create chromadb-net
- 
docker compose pull
- 
docker compose up -d
В результате сервис будет доступен по порту 4005.
Настройка мониторинга
Настройте мониторинг, чтобы получать опов ещения в Telegram-боте. Для этого выполните следующие шаги:
- 
Скачайте архив и разархивируйте его при помощи команды tar -zxvf monitoring_vectordb.tar.gz
- 
Выполните команду cd Docker-Prometheus-Blackbox-Exporter, чтобы перейти в папку Docker-Prometheus-Blackbox-Exporter.
- 
Создайте бота в приложении Telegram, для этого выполните следующее: - Откройте приложение Telegram и введите в поиске BotFather.
- Нажмите на контакт, чтобы открыть чат с ним.
- Нажмите Start, чтобы начать общение с BotFather.
- Выберите из предложенного списка /newbotили отправьте это сообщением.
- Далее FatherBot предложит создать название вашего бота и уникальное имя пользователя – после выполнения этих шагов вы получите сообщение об успешном создании бота, в котором также будет содержаться токен.
- Скопируйте токен и вставьте его в файл docker-compose в поле --telegram.token.
 
- 
Выполните последовательно команды cd configиnano prometheus.yml, чтобы открыть документ prometheus.yml
- 
Замените конечные точки static_configs на собственные. 
- 
Выполните команду nano blackbox.ymlи вставьте свой токен авторизации AUTH_TOKEN в поле Authorization.
- 
Чтобы завершить настройку мониторинга, выполните команду docker compose up -d.
Конечные точки
| Метод | Конечная точка | Описание | 
|---|---|---|
| POST | load_document_to_collection | Загрузка документов в векторную базу (.pdf, .docx). | 
| POST | load_text_to_collection | Загрузка текста в векторную базу. | 
| POST | get_relevant_documents | Получение релевантных чанков. | 
| POST | get_content_by_tag | Получение чанков с определенными тегами. | 
| GET | get_content_by_id | Получение чанков с определённым ID. | 
| GET | get_list_of_documents_names | Получение списка документов из коллекции. | 
| GET | delete_document_from_collection | Удаление документа из коллекции. | 
| GET | get_list_of_collection | Получение списка коллекций. | 
| GET | delete_collection | Удаление коллекции. | 
| DELETE | delete_document_from_collection | Удаление документа из коллекции. | 
| DELETE | delete_collection | Удаление к оллекции. | 
Читайте подробнее о вызове конечной точки в статье Настройки REST API.