Изучение схемы 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);

Каждое внедрение является вектором чисел с плавающей запятой, поэтому расстояние между двумя внедрениями в векторное пространство сопоставляется с семантической сходством между двумя входными данными в исходном формате.