Настройка расширения pgvector в Azure PostgreSQL для использования с Spring AI
Что такое поиск сходства векторов?
Поиск сходства векторов — это метод, используемый для поиска похожих элементов в наборе данных путем сравнения их векторных представлений. Сходство векторов обычно вычисляется с помощью метрик расстояния, таких как расстояние Евклиида или cosine сходство. В контексте искусственного интеллекта и машинного обучения векторные представления или внедрения являются числовыми представлениями точек данных, таких как слова, изображения или запросы пользователей. Эти векторы фиксируют семантический смысл точек данных, что позволяет эффективно выполнять поиск по сходству.
Например, в системе ответа на вопросы запросы пользователей можно преобразовать в векторные внедрения. Затем эти внедрения можно сравнить с базой данных предварительно вычисляемых внедренных запросов и ответов, чтобы найти наиболее похожие. Этот процесс называется поиском сходства векторов.
Что такое расширение pgvector?
Расширение pgvector — это расширение для PostgreSQL, которое добавляет поддержку типов и операций векторных данных. Он позволяет хранить и запрашивать векторные внедрения непосредственно в базу данных PostgreSQL. С pgvectorпомощью функции эффективного поиска сходства можно выполнять с помощью векторных операций, что делает его идеальным выбором для приложений, требующих семантических возможностей поиска.
Расширение pgvector включает следующие ключевые функции:
- Поддержка типов векторных данных.
- Эффективное индексирование и запросы векторных данных.
- Интеграция с существующими функциями и расширениями PostgreSQL.
Расширение pgvector в Azure PostgreSQL
Расширение pgvector добавляет поиск сходства векторов с открытым исходным кодом в PostgreSQL.
Прежде чем включить pgvector на своём экземпляре гибкого сервера базы данных Azure для PostgreSQL, необходимо добавить его в список разрешенных, как описано в разделе "Разрешить расширения". Чтобы определить правильно ли его добавление, используйте следующую команду: SHOW azure.extensions;
Это важно
Сообщество PostgreSQL часто относится к этому расширению под именем pgvector. Однако имя двоичного файла и самого расширения vector — это имя, которое необходимо использовать в белом списке и при создании его в PostgreSQL с помощью команды CREATE EXTENSION.
После добавления расширения в список разрешений установите расширение с помощью следующей команды SQL:
CREATE EXTENSION IF NOT EXISTS vector;
Операции pgvector
Расширение pgvector обеспечивает эффективный поиск сходства, как показано в следующем примере:
SELECT id, prompt, response
FROM chat_history
ORDER BY embedding <-> '[0.1,0.2,...]'::vector
LIMIT 3;
Реализация Spring AI pgvector
Spring AI представляет собой абстракцию pgvector, именованную VectorStore. Для этой реализации требуется два других расширения PostgreSQL: hstore и uuid-ossp.
При запуске Spring Boot устанавливает необходимые расширения и создает требуемую vector_store таблицу с индексом, если он еще не существует.
Сводка по единицам
Поиск сходства векторов и pgvector расширение предоставляют мощные возможности для создания приложений, на основе ИИ, требующих семантического поиска. С помощью этих средств в Azure PostgreSQL вы можете эффективно хранить, индексировать и запрашивать векторные встраивания, обеспечивая расширенные функции поиска и извлечения в ваших приложениях.
В следующем уроке вы выполните действия по созданию и настройке базы данных PostgreSQL, включению pgvector расширения и созданию необходимых таблиц для использования с Spring AI.