Изучение схемы Azure OpenAI
Включив Azure OpenAI в базу данных PostgreSQL, вы можете создавать высокомасштабируемые приложения СИ. Эта интеграция позволяет использовать знакомый язык SQL и гибкость PostgreSQL для создания интеллектуальных решений на уровне базы данных. Azure OpenAI усиливает ваши приложения, будь то обработка естественного языка, системы рекомендаций или создание контента.
Схема azure_openai
, установленная расширением azure_ai
, позволяет подключаться к экземпляру Службы OpenAI Azure и взаимодействовать с ним. Эта схема обеспечивает простую интеграцию со службой Azure OpenAI, что позволяет создавать мощные приложения искусственного интеллекта непосредственно из базы данных PostgreSQL.
Создание встраиваний
С помощью azure_openai
схемы можно вызвать функцию create_embeddings()
, которая создает векторные встраивания на уровне слоя базы данных. Эти внедрения позволяют эффективно хранить, индексировать и запрашивать высокомерные векторы. Функция может принимать две формы:
azure_openai.create_embeddings(text,text,integer,boolean,integer,integer)
azure_openai.create_embeddings(text,text[],integer,integer,boolean,integer,integer)
В следующей таблице описаны аргументы, ожидаемые функцией:
Аргумент | Тип | По умолчанию | Описание |
---|---|---|---|
имя_развертывания | text |
Имя развертывания модели встраивания в Azure OpenAI Studio. Обычно это название относится к развертыванию модели text-embeddings-ada-002 . |
|
ввод |
text или text[] |
Входной текст (или массив входного текста), для которого создаются векторные внедрения. | |
размер пакета | integer |
100 |
Применяется только в том случае, если input аргумент является массивом значений text .
batch_size указывает количество записей из массива для одновременной обработки. |
таймаут_мс | integer |
NULL::integer |
Время ожидания в миллисекундах, после которого операция остановлена. |
выбрасывать_при_ошибке | boolean |
true |
Флаг, указывающий, должна ли функция при ошибке вызывать исключение, что приводит к откату транзакций упаковки. |
максимум_попыток | integer |
1 |
Количество попыток повторного вызова службы Azure OpenAI в случае сбоя. |
задержка_повтора_мс | integer |
1000 |
Время ожидания в миллисекундах перед попыткой повторить вызов конечной точки службы Azure OpenAI. |
Настройка подключения к Azure OpenAI
До использования возможностей azure_openai
сконфигурируйте расширение с помощью конечной точки и ключа службы Azure OpenAI. Следующая команда представляет запросы, которые будут использоваться для задания конечной точки и ключа, необходимого для подключения к экземпляру Azure OpenAI:
SELECT azure_ai.set_setting('azure_openai.endpoint', '{endpoint}');
SELECT azure_ai.set_setting('azure_openai.subscription_key', '{api-key}');
Затем можно использовать функцию get_setting()
для проверки параметров, записанных в azure_ai.settings
таблице конфигурации:
SELECT azure_ai.get_setting('azure_openai.endpoint');
SELECT azure_ai.get_setting('azure_openai.subscription_key');
Включите поддержку векторов с помощью расширения vector
Функция azure_openai.create_embeddings()
в azure_ai
расширении позволяет создавать внедрения для входного текста. Чтобы обеспечить сохранение созданных векторов вместе с остальными данными в базе данных, необходимо также установить расширение
Вы можете установить расширение vector
с помощью команды CREATE EXTENSION.
CREATE EXTENSION IF NOT EXISTS vector;
Создание и хранение векторов
В приложении рекомендаций по аренде на основе ИИ, которое вы разрабатываете для Margie's Travel, необходимо добавить новый столбец в целевую таблицу с помощью vector
типа данных для хранения внедрения в эту таблицу после добавления векторной поддержки в базу данных. Векторы включены в listings
таблице, чтобы разрешить семантические возможности поиска при выполнении запросов для поиска доступных свойств. Модель text-embedding-ada-002
создает векторы с 1536 измерениями, поэтому необходимо указать 1536
в качестве размера вектора.
ALTER TABLE listings
ADD COLUMN description_vector vector(1536);
Теперь таблица listings
готова к хранению внедренных данных. Используя функцию azure_openai.create_embeddings()
, вы создаете векторы для description
поля и вставляете их в только что созданный description_vector
столбец в listings
таблице.
UPDATE listings
SET description_vector = azure_openai.create_embeddings('{your-deployment-name}', description);
Каждое внедрение является вектором чисел с плавающей запятой, поэтому расстояние между двумя внедрениями в векторное пространство сопоставляется с семантической сходством между двумя входными данными в исходном формате.